:root{
  --navy:#0b2347;--navy-2:#071a36;--blue:#004fb0;--blue-soft:#e9f2ff;
  --pink:#f10075;--mint:#24a68a;--amber:#c97808;--red:#c23b50;
  --ink:#14233c;--muted:#66758c;--line:#dfe6ef;--cloud:#f3f6fa;--white:#fff;
  --shadow:0 24px 70px rgba(8,35,76,.13);--radius:22px;
}
*{box-sizing:border-box}html{min-height:100%;background:var(--cloud)}body{margin:0;min-height:100vh;color:var(--ink);font-family:Inter,system-ui,sans-serif;background:var(--cloud);-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round} [hidden]{display:none!important}

.boot{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(255,255,255,.25);-webkit-backdrop-filter:blur(26px) saturate(135%);backdrop-filter:blur(26px) saturate(135%);opacity:1;transition:opacity .28s ease,visibility .28s ease;animation:boot-in .18s ease}.boot.out{opacity:0;visibility:hidden;pointer-events:none}.boot-inner{display:flex;flex-direction:column;align-items:center;gap:24px}.boot-badge{position:relative;width:128px;height:128px;display:flex;align-items:center;justify-content:center}.boot-badge:before{content:"";position:absolute;inset:0;border:4px solid rgba(0,79,176,.12);border-top-color:var(--pink);border-right-color:var(--blue);border-radius:50%;animation:boot-spin 1s linear infinite}.boot-logo{width:76px;height:auto;filter:drop-shadow(0 8px 16px rgba(241,0,117,.28));animation:boot-beat 1.4s ease-in-out infinite}.boot-text{margin:0;color:var(--blue);font-size:13px;font-weight:600;letter-spacing:3px;text-transform:uppercase}.boot-dots i{font-style:normal;opacity:0;animation:boot-dots 1.4s infinite}.boot-dots i:nth-child(2){animation-delay:.2s}.boot-dots i:nth-child(3){animation-delay:.4s}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.boot{background:rgba(244,247,252,.92)}}
@keyframes boot-in{from{opacity:0}to{opacity:1}}@keyframes boot-spin{to{transform:rotate(360deg)}}@keyframes boot-beat{0%,100%{transform:scale(1)}15%{transform:scale(1.13)}30%{transform:scale(1)}45%{transform:scale(1.08)}60%{transform:scale(1)}}@keyframes boot-dots{0%,20%{opacity:0}50%{opacity:1}100%{opacity:0}}
@media(max-width:620px){.boot-badge{width:112px;height:112px}.boot-logo{width:68px}.boot-inner{gap:20px}.boot-text{font-size:12px}}
@media(prefers-reduced-motion:reduce){.boot{animation:none}.boot-badge:before,.boot-logo,.boot-dots i{animation:none}.boot-dots i{opacity:1}}

.access{min-height:100vh;padding:34px;display:grid;place-items:center;background:radial-gradient(circle at 80% 12%,#eef5ff 0 12%,transparent 34%),#f7f9fc}.back-home{position:fixed;top:25px;left:28px;z-index:2;display:flex;align-items:center;gap:6px;color:#294866;background:#fff;padding:10px 16px;border-radius:24px;text-decoration:none;font-size:13px;font-weight:700;box-shadow:0 4px 12px rgba(0,0,0,0.08)}.back-home svg{width:18px;stroke-width:2.5}.access-shell{width:min(1120px,100%);min-height:690px;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;border-radius:24px;background:#fff;box-shadow:var(--shadow);border:1px solid #e8edf3}.access-story{position:relative;overflow:hidden;padding:52px;color:#fff;background:linear-gradient(145deg,#071a36 0%,#0b2a5c 52%,#064f9d 100%)}.access-story:before{content:"";position:absolute;inset:0;opacity:.15;background:url("../../../images/logo/logo-160.webp") center/600px no-repeat;mix-blend-mode:overlay;filter:grayscale(1) brightness(2)}.access-story:after{content:"";position:absolute;width:410px;height:410px;right:-180px;top:-150px;border:1px solid rgba(255,255,255,.08);border-radius:50%;box-shadow:0 0 0 55px rgba(255,255,255,.02),0 0 0 110px rgba(255,255,255,.015)}.story-brand,.story-copy{position:relative;z-index:2}.story-brand{display:flex;align-items:center;gap:15px;color:#fff}.story-brand img{width:48px;height:auto;object-fit:contain;background:transparent;padding:0;border-radius:0}.story-brand-text{display:flex;flex-direction:column;gap:2px}.story-brand-text b{font-size:14px;font-weight:800;letter-spacing:1px;text-transform:uppercase}.story-brand-text span{font-size:11px;font-weight:400;color:#cbd5e1}.story-copy{margin-top:100px;max-width:510px}.eyebrow,.story-copy .eyebrow{margin:0 0 12px;color:var(--pink);font-size:10px;font-weight:800;letter-spacing:.2em;text-transform:uppercase}.story-copy h1{margin:0;font-family:'Fraunces',serif;font-size:clamp(44px,5vw,60px);line-height:1.05;letter-spacing:-.03em}.story-copy h1 em{color:var(--pink);font-style:normal;font-weight:600}.story-divider{width:48px;height:3px;background:var(--pink);margin:28px 0;border-radius:2px}.story-copy>p:last-child{max-width:445px;margin:24px 0 0;color:#c8d9ed;font-size:14px;line-height:1.8}
.access-form-wrap{align-self:center;padding:55px clamp(36px,5vw,70px)}.access-form-head h2{margin:0 0 7px;color:var(--navy);font-size:30px;letter-spacing:-.035em;font-family:'Fraunces',serif}.access-form-head>p:last-child{margin:0;color:var(--muted);font-size:13px}.mobile-logo{display:none}.login-tabs{display:flex;margin:30px 0 26px;padding:4px;border-radius:12px;background:#f1f5f9;box-shadow:inset 0 1px 2px rgba(0,0,0,0.03)}.login-tabs button{flex:1;padding:10px;border:0;border-radius:9px;background:transparent;color:#64748b;font-size:12px;font-weight:600;transition:.2s}.login-tabs button.active{color:var(--navy);background:#fff;box-shadow:0 1px 3px rgba(0,0,0,0.1);font-weight:700}.login-form{display:grid;gap:18px}.field label{display:block;margin:0 0 7px;color:#475569;font-size:11px;font-weight:600}.field-box{height:52px;display:flex;align-items:center;gap:11px;padding:0 14px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;transition:.2s}.field-box:focus-within{border-color:var(--navy);background:#fff;box-shadow:0 4px 12px rgba(11,42,92,.08)}.field-box svg{width:19px;color:#94a3b8}.field-box input{width:100%;min-width:0;border:0;outline:0;color:var(--ink);background:transparent;font-size:14px;font-weight:500}.field-box input::placeholder{color:#cbd5e1;font-weight:400}.field-hint{display:block;margin-top:6px;color:#94a3b8;font-size:10px}.reveal{border:0;background:transparent;color:var(--blue);font-size:10px;font-weight:600}.primary{min-height:53px;display:flex;align-items:center;justify-content:center;gap:12px;border:0;border-radius:12px;color:#fff;background:var(--navy);box-shadow:0 8px 16px rgba(11,42,92,.2),inset 0 1px 1px rgba(255,255,255,.1);font-size:14px;font-weight:600;transition:transform .2s,box-shadow .2s}.primary:hover{transform:translateY(-1px);background:#0f2c58;box-shadow:0 12px 20px rgba(11,42,92,.28),inset 0 1px 1px rgba(255,255,255,.1)}.primary:disabled{opacity:.58;cursor:wait;transform:none}.primary svg.btn-icon{width:20px;stroke-width:2.5}.form-msg{display:none;padding:10px 12px;border-radius:10px;color:#a72d43;background:#fff0f3;font-size:11px;line-height:1.55}.form-msg.show{display:block}.form-options{display:flex;justify-content:space-between;align-items:center;margin-top:2px;font-size:11px}.remember-me{display:flex;align-items:center;gap:6px;color:#64748b;font-weight:500;cursor:pointer}.remember-me input{width:14px;height:14px;accent-color:var(--navy);margin:0;cursor:pointer}.forgot-pin{color:var(--navy);font-weight:600;text-decoration:none}.forgot-pin:hover{text-decoration:underline}.access-footer{margin-top:40px;display:flex;align-items:center;justify-content:center;gap:6px;color:#94a3b8;font-size:10px;font-weight:500}.access-footer svg{width:14px;stroke-width:2}.access-support{margin-top:12px;display:flex;justify-content:center}.access-support a{color:#64748b;font-size:11px;text-decoration:underline;text-underline-offset:3px}.access-support a:hover{color:var(--navy)}
.secure-badge{display:flex;align-items:center;gap:12px;margin-bottom:12px}.secure-icon{width:36px;height:36px;display:grid;place-items:center;background:#eff3f8;border-radius:50%;color:var(--navy)}.secure-icon svg{width:18px}.secure-badge .eyebrow{margin:0;color:var(--navy);font-size:9px;letter-spacing:1px}

.story-features{position:absolute;z-index:2;left:52px;right:52px;bottom:44px;padding-top:20px}.story-features>p{margin:0 0 14px;color:#c5d9ed;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.story-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;background:rgba(255,255,255,.05);border-radius:12px;padding:22px 18px}.story-feature{min-width:0;display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:10px}.story-feature:not(:first-child){padding-left:14px;border-left:1px solid rgba(255,255,255,.08)}.story-feature svg{width:28px;height:28px;padding:0;border-radius:0;color:var(--pink);background:transparent;stroke-width:1.6}.story-feature small,.story-feature b{display:block}.story-feature small{margin-bottom:3px;color:#aac5df;font-size:7px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.story-feature b{overflow:hidden;color:#fff;font-size:10px;font-weight:600;white-space:nowrap;text-overflow:ellipsis}

@media (min-width:901px){
  .access{position:relative;isolation:isolate;overflow:hidden;padding:48px;background:url("../../../images/dashboard/fondo-1-1920.webp") center/cover no-repeat}
  .access:before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:rgba(24,48,87,0.45);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
  .back-home{top:24px;left:28px;min-height:42px;padding:0 18px;border:0;border-radius:24px;color:var(--navy);background:#fff;box-shadow:0 8px 24px rgba(10,37,70,.12);transition:transform 0.2s}
  .back-home:hover{transform:translateY(-2px)}
  .access-shell{position:relative;z-index:1;width:min(1080px,100%);height:clamp(620px,74vh,700px);min-height:620px;grid-template-columns:1fr 1fr;border:1px solid rgba(255,255,255,.4);border-radius:24px;background:#fff;box-shadow:0 25px 50px -12px rgba(8,20,50,.35)}
  .access-story{padding:60px;background:var(--navy)}
  .access-story:before{content:"";position:absolute;inset:0;opacity:.06;background:url("../../../images/logo/logo-160.webp") center/900px no-repeat;mix-blend-mode:screen}
  .access-story:after{width:460px;height:460px;right:-205px;top:-170px;border-color:rgba(255,255,255,.05);box-shadow:0 0 0 62px rgba(255,255,255,.015),0 0 0 124px rgba(255,255,255,.01)}
  .story-copy{margin-top:clamp(88px,11vh,110px);max-width:520px}
  .story-copy h1{max-width:13ch;font-size:clamp(48px,4.2vw,56px);line-height:1.05;letter-spacing:-.01em;text-wrap:balance}
  .story-copy>p:last-child{max-width:42ch;margin-top:25px;color:#d3e1f0;font-size:14px;line-height:1.75}
  .story-features{left:60px;right:60px;bottom:60px}
  .access-form-wrap{position:relative;align-self:stretch;display:flex;flex-direction:column;justify-content:center;padding:52px clamp(42px,4vw,68px);background:#fff}
  .access-form-head,.login-panel{position:relative;z-index:1;width:min(100%,440px);margin-inline:auto}
  .access-form-head h2{margin-bottom:8px;font-size:36px;line-height:1.15;letter-spacing:-.02em}
  .access-form-head>p:last-child{font-size:13px;line-height:1.6}
  .login-tabs{min-height:50px;margin:30px 0 25px;padding:4px;border-radius:12px;background:#eff3f8;border:0;box-shadow:none}
  .login-tabs button{min-height:40px;font-size:12px}
  .login-tabs button.active{background:#fff;box-shadow:0 4px 13px rgba(13,38,76,.08),inset 0 1px 0 rgba(255,255,255,.82);color:var(--navy)}
  .login-form{gap:19px}
  .field label{margin-bottom:8px;color:#29425f;font-size:11px}
  .field-box{height:56px;padding-inline:15px;border-color:#d9e1eb;background:#fff;box-shadow:none;border-radius:12px}
  .field-box:hover{border-color:#b4c5d6}
  .field-box:focus-within{border-color:var(--navy);background:#fff;box-shadow:0 0 0 3px rgba(11,42,92,.08)}
  .field-box input{font-size:15px}
  .reveal{width:44px;height:44px;display:grid;place-items:center;margin-right:-10px;padding:0;border-radius:10px}
  .reveal span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .reveal .eye-open{display:block;width:20px}.reveal.showing .eye-open{display:none}.reveal.showing .eye-closed{display:block;width:20px}
  .primary{min-height:56px;margin-top:1px;border-radius:13px;background:var(--navy);box-shadow:0 14px 28px rgba(11,42,92,.23);font-size:14px}
  .primary:hover{background:#071a36;box-shadow:0 17px 32px rgba(11,42,92,.28)}
  .form-note{color:#526b84;font-size:10px;font-weight:500;line-height:1.65}
}

@media (min-width:901px) and (max-width:1100px){
  .access{padding-inline:30px}.access-shell{grid-template-columns:minmax(0,1fr) minmax(410px,.92fr)}.access-story{padding:46px}.story-features{left:46px;right:46px}.story-features>p{margin-bottom:11px}.story-feature{grid-template-columns:30px minmax(0,1fr);gap:7px}.story-feature:not(:first-child){padding-left:10px}.story-feature svg{width:28px;height:28px;padding:6px}.story-feature b{font-size:9px}.access-form-wrap{padding-inline:36px}
}

.portal{min-height:100vh}.sidebar{position:fixed;z-index:50;inset:0 auto 0 0;width:258px;display:flex;flex-direction:column;padding:26px 18px 18px;color:#d8e5f4;background:linear-gradient(180deg,var(--navy-2),var(--navy));box-shadow:12px 0 30px rgba(8,29,59,.08)}.side-brand{height:54px;display:flex;align-items:center;gap:12px;padding:0 9px;color:#fff}.side-brand img{width:42px;height:42px;object-fit:contain;background:#fff;border-radius:13px;padding:4px}.side-brand span{font-size:16px}.side-brand b{font-weight:800}.side-nav{display:grid;gap:6px;margin-top:42px}.side-nav button{height:49px;display:flex;align-items:center;gap:13px;padding:0 14px;border:0;border-radius:12px;color:#9eb2cc;background:transparent;text-align:left;font-size:12px;font-weight:600;transition:.18s}.side-nav button svg{width:20px}.side-nav button:hover{color:#fff;background:rgba(255,255,255,.06)}.side-nav button.active{color:#fff;background:linear-gradient(100deg,rgba(0,103,214,.55),rgba(0,79,176,.25));box-shadow:inset 3px 0 0 #5eced0}.side-help{margin-top:auto;padding:16px;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:rgba(255,255,255,.04)}.side-help span{display:block;margin-bottom:5px;color:#8fa7c4;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.side-help a{color:#fff;font-size:11px;text-decoration:none}.side-user{display:grid;grid-template-columns:38px 1fr 30px;align-items:center;gap:9px;margin-top:15px;padding-top:15px;border-top:1px solid rgba(255,255,255,.09)}.avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;color:#fff;background:linear-gradient(135deg,var(--pink),#b80b79);font-size:11px;font-weight:800}.side-user span:nth-child(2){min-width:0}.side-user b,.side-user small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-user b{color:#fff;font-size:10px}.side-user small{margin-top:2px;color:#87a0bf;font-size:9px}.side-user button{width:30px;height:30px;padding:6px;border:0;border-radius:8px;color:#9bb0ca;background:transparent}.side-user button:hover{color:#fff;background:rgba(255,255,255,.08)}.mobile-head,.side-scrim{display:none}
.workspace{min-height:100vh;margin-left:258px;padding:44px clamp(28px,4vw,64px) 60px}.view{max-width:1240px;margin:0 auto}.view-head{display:flex;align-items:flex-start;justify-content:space-between;gap:25px;margin-bottom:32px}.view-head h1{margin:0;color:var(--navy);font-size:32px;line-height:1.15;letter-spacing:-.04em}.view-head>div>p:last-child{margin:8px 0 0;color:var(--muted);font-size:12px}.session-chip{display:flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid #dfe6ef;border-radius:30px;color:#67768b;background:#fff;font-size:9px;font-weight:600}.session-chip i{width:7px;height:7px;border-radius:50%;background:#25b888;box-shadow:0 0 0 4px rgba(37,184,136,.12)}.session-chip b{color:var(--ink)}
.today-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(250px,.72fr);gap:20px}.day-card,.progress-card,.month-card,.week-strip,.calendar-card,.profile-identity,.profile-data,.team-list,.team-summary{border:1px solid var(--line);background:#fff;box-shadow:0 12px 34px rgba(11,35,71,.055)}.day-card{min-height:395px;padding:27px 30px;border-radius:var(--radius)}.day-card-head{display:flex;justify-content:space-between;align-items:center}.day-card-head>span:first-child small,.day-card-head>span:first-child b{display:block}.day-card-head small{color:#8996a8;font-size:9px;font-weight:800;letter-spacing:.14em}.day-card-head b{margin-top:4px;color:var(--navy);font-size:16px}.status-pill{padding:7px 11px;border-radius:30px;color:#53657d;background:#edf1f5;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.status-pill.ok{color:#08785f;background:#e4f7f1}.status-pill.late{color:#9b5c00;background:#fff0d6}.status-pill.closed{color:#a4374a;background:#ffe9ed}.day-timeline{position:relative;display:grid;grid-template-columns:72px 1fr 72px;align-items:center;margin:74px 0 42px}.time-label small,.time-label b{display:block}.time-label small{color:#8a98aa;font-size:8px;font-weight:800;letter-spacing:.12em}.time-label b{margin-top:5px;color:var(--navy);font-size:22px;letter-spacing:-.04em}.time-label.end{text-align:right}.rail{position:relative;height:5px;margin:0 13px;border-radius:10px;background:#e6ebf1}.rail>i{position:absolute;inset:0 auto 0 0;width:0;border-radius:10px;background:linear-gradient(90deg,#004fb0,#38a9bf)}.rail:before,.rail:after{content:"";position:absolute;top:50%;width:13px;height:13px;border:3px solid #fff;border-radius:50%;background:#b9c5d3;box-shadow:0 0 0 2px #dfe5ed;transform:translateY(-50%)}.rail:before{left:-5px;background:var(--blue);box-shadow:0 0 0 2px #b8d4f5}.rail:after{right:-5px}.rail span{position:absolute;z-index:2;top:50%;left:50%;display:grid;justify-items:center;transform:translate(-50%,-50%)}.rail span em{width:18px;height:18px;border:4px solid #fff;border-radius:50%;background:var(--pink);box-shadow:0 0 0 5px rgba(241,0,117,.13)}.rail span b{position:absolute;top:25px;padding:5px 8px;border-radius:6px;color:#a30959;background:#ffe8f4;font-size:8px;white-space:nowrap}.day-context{display:flex;gap:8px;margin-bottom:25px}.day-context span{padding:7px 10px;border-radius:8px;color:#53657b;background:#f1f4f8;font-size:9px;font-weight:700}.day-action{display:grid;grid-template-columns:minmax(210px,1fr) 1fr;align-items:center;gap:18px;padding-top:20px;border-top:1px solid #edf0f4}.mark-button{height:50px;display:flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:12px;color:#fff;background:var(--navy);font-size:11px;font-weight:700;transition:.18s}.mark-button svg{width:18px}.mark-button:hover{background:var(--blue)}.mark-button:disabled{cursor:not-allowed;color:#7b8999;background:#e7ebf0}.day-action p{margin:0;color:#8390a1;font-size:9px;line-height:1.6}.day-aside{display:grid;grid-template-rows:1fr auto;gap:20px}.progress-card{padding:25px;border-radius:var(--radius);background:linear-gradient(150deg,#fff 55%,#f0f7ff)}.progress-number{margin:30px 0 20px}.progress-number strong{color:var(--navy);font-size:56px;line-height:1;letter-spacing:-.07em}.progress-number>span{margin-left:4px;color:var(--blue);font-size:20px;font-weight:700}.progress-number small{display:block;margin-top:9px;color:#8290a3;font-size:10px}.progress-track{height:7px;overflow:hidden;border-radius:8px;background:#dfe7f0}.progress-track i{display:block;width:0;height:100%;border-radius:8px;background:linear-gradient(90deg,var(--blue),#27a9ba);transition:width .55s ease}.progress-card>p:last-child{margin:14px 0 0;color:#6e7d90;font-size:9px;line-height:1.6}.month-card{display:flex;align-items:center;gap:14px;padding:20px;border-radius:18px}.month-icon{width:45px;height:45px;display:grid;place-items:center;border-radius:13px;color:#fff;background:linear-gradient(135deg,var(--pink),#bb0a6f)}.month-icon svg{width:22px}.month-card>span:last-child small,.month-card>span:last-child b,.month-card>span:last-child em{display:block}.month-card small{color:#8a96a6;font-size:8px;font-weight:800;letter-spacing:.1em}.month-card b{margin-top:2px;color:var(--navy);font-size:24px}.month-card em{color:#79889c;font-size:8px;font-style:normal}
.week-strip{margin-top:24px;padding:25px 28px;border-radius:var(--radius)}.section-title{display:flex;align-items:center;justify-content:space-between}.section-title h2{margin:0;color:var(--navy);font-size:18px}.section-title button{border:0;color:var(--blue);background:transparent;font-size:10px;font-weight:700}.week-days{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:20px}.week-day{min-height:85px;display:grid;align-content:center;justify-items:center;border:1px solid #e7ebf1;border-radius:13px;background:#fafbfd}.week-day small{color:#8997aa;font-size:8px;font-weight:700}.week-day b{margin:5px 0;color:var(--navy);font-size:15px}.week-day i{width:7px;height:7px;border-radius:50%;background:#c7d0dc}.week-day.today{border-color:#8bb7eb;background:#eff6ff}.week-day.p i{background:#20aa80}.week-day.t i{background:#e09a27}.week-day.j i{background:#518fe0}.week-day.ng i{background:#d35a70}
.month-toolbar{display:flex;align-items:center;justify-content:center;gap:18px;margin:-6px 0 23px}.month-toolbar button{width:36px;height:36px;border:1px solid var(--line);border-radius:10px;color:var(--navy);background:#fff;font-size:22px}.month-toolbar b{min-width:180px;text-align:center;color:var(--navy);font-size:15px;text-transform:capitalize}.attendance-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:18px}.att-stat{padding:17px;border:1px solid var(--line);border-radius:15px;background:#fff}.att-stat small,.att-stat b{display:block}.att-stat small{color:#8492a4;font-size:8px;font-weight:800;letter-spacing:.08em}.att-stat b{margin-top:5px;color:var(--navy);font-size:23px}.calendar-card{padding:24px;border-radius:var(--radius)}.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar-week span{padding:7px;text-align:center;color:#8a97a8;font-size:9px;font-weight:800}.cal-day{position:relative;min-height:74px;padding:10px;border:1px solid #e7ecf2;border-radius:12px;background:#fbfcfd}.cal-day.empty{border-color:transparent;background:transparent}.cal-day b{color:#3b4b61;font-size:11px}.cal-day i{position:absolute;left:10px;right:10px;bottom:9px;height:4px;border-radius:5px;background:#dce3eb}.cal-day.p i{background:#20aa80}.cal-day.t i{background:#e09a27}.cal-day.j i{background:#518fe0}.cal-day.ng i{background:#d35a70}.cal-day.today{border-color:#76a9e7;box-shadow:inset 0 0 0 1px #76a9e7}.cal-day.future{opacity:.42}.cal-day.off{background:#f5f6f8}.calendar-legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:20px;padding-top:18px;border-top:1px solid #edf0f4;color:#748296;font-size:9px}.calendar-legend span{display:flex;align-items:center;gap:6px}.calendar-legend i{width:8px;height:8px;border-radius:50%}.calendar-legend .p{background:#20aa80}.calendar-legend .t{background:#e09a27}.calendar-legend .j{background:#518fe0}.calendar-legend .ng{background:#d35a70}
.profile-layout{display:grid;grid-template-columns:285px 1fr;gap:20px}.profile-identity,.profile-data{border-radius:var(--radius)}.profile-identity{padding:34px 24px;text-align:center;background:linear-gradient(160deg,#fff,#edf5ff)}.profile-avatar{width:86px;height:86px;display:grid;place-items:center;margin:0 auto 20px;border:5px solid #fff;border-radius:26px;color:#fff;background:linear-gradient(145deg,var(--navy),var(--blue));box-shadow:0 12px 30px rgba(0,79,176,.2);font-size:24px;font-weight:800}.profile-identity h2{margin:0;color:var(--navy);font-size:20px}.profile-identity p{margin:7px 0 14px;color:#6b7a8f;font-size:11px}.profile-badge{display:inline-block;padding:7px 10px;border-radius:20px;color:#0c7465;background:#e3f6f1;font-size:9px;font-weight:700;text-transform:capitalize}.profile-data{padding:28px}.profile-data>div:first-child{display:grid;grid-template-columns:repeat(2,1fr);gap:0 24px}.profile-field{padding:17px 4px;border-bottom:1px solid #edf0f4}.profile-field small,.profile-field b{display:block}.profile-field small{color:#8996a8;font-size:8px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.profile-field b{margin-top:5px;color:#304158;font-size:12px;font-weight:600}.profile-notice{grid-column:1/-1;display:grid!important;grid-template-columns:36px 1fr auto!important;align-items:center;gap:12px;margin-top:26px;padding:15px;border-radius:14px;background:#f0f6fd}.profile-notice svg{width:24px;color:var(--blue)}.profile-notice span b,.profile-notice span{display:block}.profile-notice span{color:#718095;font-size:9px}.profile-notice span b{margin-bottom:2px;color:#33465f;font-size:10px}.profile-notice a{color:var(--blue);font-size:9px;font-weight:700;text-decoration:none}

/* Foto privada del perfil: las iniciales siguen visibles como respaldo. */
.avatar.has-photo,.profile-avatar.has-photo,.mobile-profile-avatar.has-photo,.rail-avatar.has-photo,.team-profile-avatar.has-photo{color:transparent;text-shadow:none;background-color:var(--navy);background-position:center;background-repeat:no-repeat;background-size:cover}
.avatar{position:relative;overflow:hidden}
.avatar>img[data-profile-photo]{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;background:#dfe8f0}
.profile-photo-wrap{position:relative;width:86px;margin:0 auto 20px}.profile-photo-wrap .profile-avatar{margin:0}.profile-photo-camera{position:absolute;right:-7px;bottom:-6px;width:36px;height:36px;display:grid;place-items:center;padding:0;border:3px solid #fff;border-radius:12px;color:#fff;background:var(--blue);box-shadow:0 7px 18px rgba(0,79,176,.24)}.profile-photo-camera svg{width:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.profile-photo-camera:hover{background:var(--navy)}.profile-photo-camera:focus-visible,.profile-photo-actions button:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.profile-photo-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:18px}.profile-photo-actions button{min-height:36px;padding:0 13px;border-radius:10px;font-size:9px;font-weight:800}.profile-photo-change{border:0;color:#fff;background:var(--navy)}.profile-photo-change:hover{background:var(--blue)}.profile-photo-remove{border:1px solid #efc6ce;color:#a4374a;background:#fff}.profile-photo-remove:hover{border-color:#df9aa8;background:#fff4f6}.profile-photo-actions button:disabled,.profile-photo-camera:disabled{cursor:wait;opacity:.58}.profile-photo-hint{display:block;margin-top:10px;color:#77879b;font-size:8px;line-height:1.5}.profile-photo-message{min-height:17px;margin:8px 0 0!important;color:#68798e!important;font-size:8px!important;line-height:1.5}.profile-photo-message.error{color:#a4374a!important}.profile-photo-message.success{color:#08785f!important}
.team-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-bottom:18px;padding:0;border-radius:18px;overflow:hidden}.team-kpi{padding:20px;border-right:1px solid #e6ebf1}.team-kpi:last-child{border:0}.team-kpi small,.team-kpi b{display:block}.team-kpi small{color:#8694a6;font-size:8px;font-weight:800;letter-spacing:.08em}.team-kpi b{margin-top:4px;color:var(--navy);font-size:25px}.team-list{overflow:hidden;border-radius:var(--radius)}.team-row{display:grid;grid-template-columns:44px minmax(160px,1fr) minmax(120px,.7fr) 100px 74px;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid #edf0f4}.team-row:last-child{border:0}.team-row .avatar{width:38px;height:38px}.team-row strong,.team-row small{display:block}.team-row strong{color:#263a55;font-size:11px}.team-row small{margin-top:2px;color:#8a96a6;font-size:9px}.team-state{justify-self:end;padding:6px 9px;border-radius:20px;color:#68778c;background:#edf1f5;font-size:8px;font-weight:800;text-transform:uppercase}.team-state.p{color:#08775d;background:#e4f7f1}.team-state.t{color:#9b5c00;background:#fff0d6}.team-state.ng{color:#a4374a;background:#ffe9ed}.team-profile-open{height:30px;padding:0 8px;border:1px solid #d7e0ea;border-radius:8px;color:#405873;background:#fff;font-size:7px;font-weight:800}.team-profile-open:hover{color:var(--blue);border-color:#a9c7e8;background:#f6faff}

.modal{position:fixed;z-index:200;inset:0;display:grid;place-items:center;padding:18px}.modal-backdrop{position:absolute;inset:0;background:rgba(4,18,39,.62);backdrop-filter:blur(5px)}.mark-sheet{position:relative;z-index:1;width:min(510px,100%);max-height:calc(100vh - 36px);overflow:auto;padding:30px;border-radius:24px;background:#fff;box-shadow:0 30px 90px rgba(0,18,45,.35)}.modal-close{position:absolute;right:18px;top:16px;width:34px;height:34px;border:0;border-radius:10px;color:#6e7c90;background:#f0f3f7;font-size:22px}.mark-sheet h2{margin:0 0 7px;color:var(--navy);font-size:25px}.mark-sheet>p:nth-of-type(2){margin:0 0 20px;color:#6f7e91;font-size:11px;line-height:1.6}.evidence-picker{border:1px dashed #b8c6d7;border-radius:17px;background:#f8fafc;overflow:hidden}.evidence-empty{padding:27px 18px;text-align:center}.evidence-empty>span{width:48px;height:48px;display:grid;place-items:center;margin:0 auto 10px;border-radius:14px;color:var(--blue);background:#e6f1ff}.evidence-empty svg{width:25px}.evidence-empty b{display:block;color:#31445e;font-size:12px}.evidence-empty p{margin:4px 0 16px;color:#8a97a7;font-size:9px}.evidence-empty>div{display:flex;justify-content:center;gap:8px}.evidence-empty button{padding:9px 12px;border:1px solid #cad6e4;border-radius:9px;color:#39516d;background:#fff;font-size:9px;font-weight:700}.evidence-empty button:first-child{border-color:var(--blue);color:#fff;background:var(--blue)}.evidence-preview{position:relative;width:100%;padding:0;border:0;background:#081b35}.evidence-preview img{display:block;width:100%;max-height:250px;object-fit:contain}.evidence-preview span{position:absolute;right:9px;bottom:9px;padding:6px 9px;border-radius:8px;color:#fff;background:rgba(4,18,39,.78);font-size:8px;font-weight:700}.mark-msg{display:none;margin:12px 0;padding:10px;border-radius:10px;color:#a52e43;background:#ffedf1;font-size:10px}.mark-msg.show{display:block}.mark-confirm{width:100%;margin-top:18px}.privacy-note{display:flex!important;align-items:flex-start;gap:8px!important;margin:13px 0 0!important;color:#8491a3!important;font-size:8px!important}.privacy-note svg{flex:0 0 16px;width:16px;color:#3e9d89}.toast{position:fixed;z-index:400;right:24px;bottom:24px;max-width:330px;padding:13px 16px;border-radius:12px;color:#fff;background:var(--navy);box-shadow:0 14px 35px rgba(0,25,60,.25);font-size:10px;font-weight:600;opacity:0;transform:translateY(10px);pointer-events:none;transition:.22s}.toast.show{opacity:1;transform:none}.toast.bad{background:#a92f45}

@media(max-width:900px){.access{padding:15px}.access-shell{grid-template-columns:1fr;min-height:0}.access-story{display:none}.access-form-wrap{padding:42px 28px}.mobile-logo{display:block;margin-bottom:22px}.mobile-logo img{width:58px}.back-home{position:absolute;top:18px;left:18px}.sidebar{transform:translateX(-105%);transition:transform .24s}.sidebar.open{transform:none}.side-scrim{position:fixed;z-index:40;inset:0;display:block;background:rgba(5,20,42,.45);opacity:0;pointer-events:none;transition:.2s}.side-scrim.show{opacity:1;pointer-events:auto}.mobile-head{position:sticky;z-index:35;top:0;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid #e5eaf1;background:rgba(255,255,255,.92);backdrop-filter:blur(12px)}.mobile-head>button{width:38px;height:38px;padding:8px;border:0;border-radius:10px;color:var(--navy);background:#edf2f8}.mobile-head svg{width:22px}.mobile-head img{width:48px;height:42px;object-fit:contain}.mobile-head .avatar{width:34px;height:34px}.workspace{margin-left:0;padding:30px 18px 45px}.today-layout{grid-template-columns:1fr}.day-aside{grid-template-columns:1fr 1fr;grid-template-rows:auto}.progress-card{min-height:220px}.profile-layout{grid-template-columns:1fr}.profile-identity{padding:25px}.attendance-stats{grid-template-columns:repeat(3,1fr)}.team-summary{grid-template-columns:repeat(2,1fr)}.team-kpi:nth-child(2){border-right:0}.team-kpi:nth-child(-n+2){border-bottom:1px solid #e6ebf1}}
@media(max-width:600px){.view-head{display:block;margin-bottom:24px}.view-head h1{font-size:27px}.session-chip{width:max-content;margin-top:15px}.day-card{min-height:0;padding:22px 18px}.day-timeline{grid-template-columns:58px 1fr 58px;margin:55px 0 38px}.time-label b{font-size:17px}.day-action{grid-template-columns:1fr}.day-action p{text-align:center}.day-aside{grid-template-columns:1fr}.progress-card{min-height:0}.week-strip{padding:20px 15px}.week-days{gap:4px}.week-day{min-height:70px}.week-day small{font-size:7px}.attendance-stats{grid-template-columns:repeat(2,1fr)}.attendance-stats .att-stat:last-child{grid-column:1/-1}.calendar-card{padding:14px 10px}.calendar-grid,.calendar-week{gap:4px}.cal-day{min-height:55px;padding:7px}.profile-data{padding:20px 16px}.profile-data>div:first-child{grid-template-columns:1fr}.profile-notice{grid-template-columns:30px 1fr!important}.profile-notice a{grid-column:2}.team-row{grid-template-columns:40px 1fr auto}.team-row>span:nth-child(3){display:none}.team-state{grid-column:3}.team-profile-open{grid-column:2/-1;width:100%}.mark-sheet{padding:27px 19px;border-radius:22px}.modal{align-items:end;padding:0}.mark-sheet{width:100%;max-height:92vh;border-radius:24px 24px 0 0}.toast{left:16px;right:16px;bottom:18px;max-width:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* ── Dashboard v2 · workspace KJA ─────────────────────────────────── */
:root{
  --shell:#ffffff;
  --paper:#ffffff;
  --workspace:#f5f7fa;
  --navy:#09244c;
  --navy-2:#061a38;
  --blue:#075abc;
  --cyan:#43c5d1;
  --pink:#ef0b72;
  --ink:#15243a;
  --muted:#738095;
  --line:#e3e8ee;
  --shadow-soft:0 12px 34px rgba(17,37,68,.055);
}

body{background:#fff}
.portal{
  width:100%;
  height:100vh;
  min-height:0;
  margin:0;
  display:grid;
  grid-template-columns:218px minmax(0,1fr) 308px;
  overflow:hidden;
  border:0;
  border-radius:0;
  background:var(--paper);
  box-shadow:none;
}

.sidebar{
  position:relative;
  inset:auto;
  width:auto;
  height:100%;
  min-height:0;
  overflow-y:auto;
  padding:22px 14px 14px;
  color:#506078;
  background:#fff;
  border-right:1px solid #edf0f4;
  box-shadow:none;
}
.side-brand{height:46px;padding:0 10px;color:var(--navy)}
.side-brand img{width:36px;height:36px;border:1px solid #edf0f4;box-shadow:0 7px 18px rgba(8,35,75,.08)}
.side-brand span{font-size:14px;letter-spacing:-.02em}
.side-nav{gap:5px;margin-top:22px}
.side-nav button{
  position:relative;
  height:42px;
  padding:0 13px;
  color:#68768a;
  border-radius:11px;
  font-size:11px;
}
.side-nav button:hover{color:var(--navy);background:#f4f7fa}
.side-nav button.active{
  color:var(--navy);
  background:#fff0f6;
  box-shadow:none;
}
.side-nav button.active:before{
  content:"";
  position:absolute;
  left:0;
  top:10px;
  bottom:10px;
  width:3px;
  border-radius:0 5px 5px 0;
  background:linear-gradient(180deg,#ff69a8,#FE037C);
}
.side-nav button.active svg{color:#FE037C}
.side-help{
  padding:13px;
  border:0;
  border-radius:14px;
  background:linear-gradient(145deg,var(--navy-2),#123b70);
  box-shadow:0 10px 22px rgba(7,29,62,.14);
}
.side-help span{color:#86a2c4}
.side-help a{font-size:10px;font-weight:600}
.side-user{border-color:#edf0f4}
.side-user b{color:var(--navy)}
.side-user small{color:#8290a3}
.side-user button{color:#7c8b9f}
.side-user button:hover{color:var(--blue);background:#edf4fc}

.workspace{
  min-width:0;
  height:100%;
  min-height:0;
  overflow-y:auto;
  margin-left:0;
  padding:22px clamp(18px,2vw,34px) 28px;
  background:var(--workspace);
}
.view{max-width:none}
.view-head{margin-bottom:14px}
.view-head h1{font-size:24px;letter-spacing:-.045em}
.view-head>div>p:last-child{font-size:10px}
.session-chip{background:rgba(255,255,255,.86);box-shadow:0 5px 16px rgba(20,40,70,.04)}

.today-layout{display:grid;grid-template-columns:1fr;gap:10px}
.day-card,.progress-card,.month-card,.week-strip,.calendar-card,.profile-identity,.profile-data,.team-list,.team-summary{
  border-color:#e2e7ed;
  box-shadow:var(--shadow-soft);
}
.day-card{min-height:0;padding:18px 22px;border-radius:16px}
.day-timeline{margin:38px 0 24px}
.day-aside{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(200px,.75fr);grid-template-rows:auto;gap:10px}
.progress-card{min-height:0;padding:16px 20px;border-radius:15px;background:#fff}
.progress-number{margin:10px 0 9px}
.progress-number strong{font-size:36px}
.progress-number small{display:inline;margin-left:6px}
.progress-card>p:last-child{margin-top:7px}
.month-card{min-height:0;padding:16px 18px;border-radius:15px;background:linear-gradient(145deg,#fff,#fff7fb)}
.month-icon{width:44px;height:44px;border-radius:13px}
.month-card b{font-size:26px}
.week-strip{margin-top:10px;padding:16px 20px;border-radius:16px}
.week-day{background:#fff;min-height:68px}
.week-day small{font-size:7px}
.week-day b{font-size:13px}

/* Columna derecha: el calendario y la jornada acompañan todas las vistas. */
.portal-rail{
  min-width:0;
  height:100%;
  min-height:0;
  padding:20px 18px 20px;
  overflow-y:auto;
  border-left:1px solid #edf0f4;
  background:#fff;
}
.rail-profile{text-align:center}
.rail-title,.rail-section-head{display:flex;align-items:center;justify-content:space-between}
.rail-title{color:var(--navy);font-size:13px;font-weight:700;text-align:left}
.rail-title button,.rail-section-head button{
  width:31px;
  height:31px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid #e7ebf0;
  border-radius:9px;
  color:#77869a;
  background:#fff;
}
.rail-title button:hover,.rail-section-head button:hover{color:var(--blue);border-color:#bfd4eb;background:#f3f8fe}
.rail-title svg,.rail-section-head svg{width:15px}
.rail-avatar{
  width:62px;
  height:62px;
  display:grid;
  place-items:center;
  margin:14px auto 9px;
  border:5px solid #edf6ff;
  border-radius:50%;
  color:#fff;
  background:linear-gradient(145deg,var(--navy),var(--blue));
  box-shadow:0 8px 20px rgba(5,79,167,.16);
  font-size:17px;
  font-weight:800;
}
.rail-profile h2{margin:0;color:var(--navy);font-size:13px;line-height:1.3;letter-spacing:-.02em}
.rail-profile p{margin:3px 0 7px;color:#8592a3;font-size:8px}
.rail-role{display:inline-flex;padding:4px 8px;border-radius:20px;color:#0c7465;background:#e7f7f3;font-size:7px;font-weight:800}

.rail-calendar,.rail-schedule{margin-top:16px}
.rail-calendar{padding:14px 13px 12px;border:1px solid #e8ecf1;border-radius:14px;background:#fafbfc;box-shadow:0 6px 18px rgba(15,36,66,.04)}
.rail-section-head span small,.rail-section-head span b{display:block}
.rail-section-head small{color:#8b97a7;font-size:7px;font-weight:800;letter-spacing:.13em}
.rail-section-head b{margin-top:2px;color:var(--navy);font-size:11px;text-transform:capitalize}
.rail-calendar-week,.rail-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.rail-calendar-week{margin:11px 0 3px}
.rail-calendar-week span{color:#9aa5b4;text-align:center;font-size:7px;font-weight:800}
.rail-cal-day{position:relative;min-height:24px;display:grid;place-items:center;border-radius:7px;color:#647287;font-size:8px}
.rail-cal-day b{font-weight:600}
.rail-cal-day.empty{background:transparent}
.rail-cal-day.off{color:#b6bec9}
.rail-cal-day.future{opacity:.45}
.rail-cal-day.registered{color:#08765e;background:#e7f7f2}
.rail-cal-day.registered i{position:absolute;bottom:2px;width:3px;height:3px;border-radius:50%;background:#1ba77e}
.rail-cal-day.today{color:#fff;background:var(--navy);box-shadow:0 4px 10px rgba(8,35,75,.18)}
.rail-cal-day.today i{background:#5ee0d3}
.rail-calendar-key{display:flex;gap:10px;margin-top:8px;padding-top:8px;border-top:1px solid #e8ecf1;color:#8a96a6;font-size:7px}
.rail-calendar-key span{display:flex;align-items:center;gap:4px}
.rail-calendar-key i{width:6px;height:6px;border-radius:50%;background:#25ad84}
.rail-calendar-key span:last-child i{background:var(--navy)}

.rail-schedule-list{display:grid;gap:7px;margin-top:10px}
.rail-event{
  position:relative;
  min-height:52px;
  display:grid;
  grid-template-columns:40px 1fr;
  align-items:center;
  gap:8px;
  overflow:hidden;
  padding:9px 10px 9px 13px;
  border-radius:11px;
  background:linear-gradient(100deg,#edf8fa,#f5f8fc);
}
.rail-event:before{content:"";position:absolute;inset:0 auto 0 0;width:1px;background:var(--cyan)}
.rail-event time{color:var(--navy);font-size:10px;font-weight:800}
.rail-event span b,.rail-event span small{display:block}
.rail-event span b{color:#2a3b52;font-size:9px}
.rail-event span small{margin-top:3px;color:#8491a2;font-size:7px;line-height:1.35}
.rail-event.event-done{background:linear-gradient(100deg,#e8f8f2,#f4fbf8)}
.rail-event.event-done:before{background:#1daa81}
.rail-event.event-done time{color:#15906e;font-size:15px}
.rail-event.event-pending{background:linear-gradient(100deg,#fff4df,#fffaf0)}
.rail-event.event-pending:before{background:#e4a02b}
.rail-event.end-event{background:linear-gradient(100deg,#f2f4f8,#fafbfc)}
.rail-event.end-event:before{background:#8da0b6}
.rail-empty{margin:0;padding:16px;border-radius:12px;color:#8793a3;background:#f6f8fa;font-size:8px}

.rail-insight{display:grid;grid-template-columns:38px 1fr;align-items:center;gap:9px;margin-top:14px;padding:12px;border-radius:13px;background:linear-gradient(135deg,var(--navy),#0d4f91);color:#fff}
.rail-insight-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:rgba(255,255,255,.1)}
.rail-insight-icon svg{width:18px;color:#6de0dc}
.rail-insight small,.rail-insight b,.rail-insight em{display:block}
.rail-insight small{color:#94b3d4;font-size:7px;font-weight:800;letter-spacing:.08em}
.rail-insight b{margin:2px 0;color:#fff;font-size:17px}
.rail-insight em{color:#b6cae0;font-size:7px;font-style:normal}

/* Las vistas interiores mantienen el mismo lenguaje de la nueva portada. */
.month-toolbar{justify-content:flex-start;margin:-3px 0 20px}
.month-toolbar b{text-align:left}
.attendance-stats{gap:9px}
.att-stat{border-radius:13px;box-shadow:0 6px 18px rgba(15,36,66,.035)}
.calendar-card{border-radius:18px}
.profile-identity,.profile-data,.team-list,.team-summary{border-radius:18px}

@media(max-width:1280px){
  .portal{grid-template-columns:218px minmax(0,1fr)}
  .portal-rail{display:none}
}

@media(max-width:900px){
  #mobile-month-progress-slot{margin-bottom:16px;min-width:0}
  body{background:var(--workspace)}
  .portal{width:100%;height:auto;min-height:100vh;margin:0;display:block;border:0;border-radius:0;box-shadow:none;overflow:visible}
  .sidebar{position:fixed;inset:0 auto 0 0;width:258px;height:100vh;min-height:0;overflow-y:auto;box-shadow:18px 0 45px rgba(10,31,61,.16)}
  .workspace{height:auto;overflow-y:visible;margin-left:0;padding:24px 16px 36px}
  .portal-rail{display:none}
}

@media(max-width:650px){
  .day-aside{grid-template-columns:1fr}
  .month-card{min-height:120px}
  .progress-number small{display:block;margin:8px 0 0}
}

/* ── Centro administrativo integrado ──────────────────────────────── */
.side-nav-divider{display:block;margin:24px 14px 5px;color:#9aa5b4;font-size:7px;font-weight:800;letter-spacing:.15em}
.portal.admin-wide{grid-template-columns:218px minmax(0,1fr)}
.portal.admin-wide .portal-rail{display:none}
.admin-view{max-width:1320px}
.admin-view-head{align-items:center; padding: 14px 24px !important;}
.admin-view-head h1{font-size: 22px !important;}
.admin-view-head > div > p.eyebrow {margin-bottom: 2px !important;}
.admin-view-head > div > p:last-child {margin-top: 2px !important;}
.admin-head-actions{display:flex;align-items:center;gap:9px}
.admin-role-chip{padding:8px 11px;border-radius:20px;color:#0c7465;background:#e7f7f3;font-size:8px;font-weight:800}
.admin-refresh{height:36px;display:flex;align-items:center;gap:7px;padding:0 12px;border:1px solid #dfe5ec;border-radius:10px;color:#43546b;background:#fff;font-size:9px;font-weight:700}
.admin-refresh:hover{color:var(--blue);border-color:#b8d0ea;background:#f6faff}
.admin-refresh:disabled{opacity:.55;cursor:wait}
.admin-refresh svg{width:15px}
.admin-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.admin-kpi{position:relative;overflow:hidden;padding:18px 19px;border:1px solid #e3e8ee;border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(15,36,66,.045)}
.admin-kpi:after{content:"";position:absolute;right:-22px;bottom:-26px;width:72px;height:72px;border-radius:50%;background:var(--kpi-wash,#eef5fc)}
.admin-kpi small,.admin-kpi b,.admin-kpi span{position:relative;z-index:1;display:block}
.admin-kpi small{color:#8793a4;font-size:7px;font-weight:800;letter-spacing:.09em}
.admin-kpi b{margin:4px 0 2px;color:var(--navy);font-size:28px;letter-spacing:-.05em}
.admin-kpi span{color:#8793a4;font-size:8px}
.admin-kpi.registered{--kpi-wash:#e5f7f1}
.admin-kpi.late{--kpi-wash:#fff1db}
.admin-kpi.pending{--kpi-wash:#fff0f5}
.admin-overview-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:16px}
.admin-panel{border:1px solid #e2e7ed;border-radius:17px;background:#fff;box-shadow:var(--shadow-soft)}
.admin-panel-head{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 19px;border-bottom:1px solid #edf0f3}
.admin-panel-head small,.admin-panel-head h2{display:block;margin:0}
.admin-panel-head small{margin-bottom:3px;color:#8a96a6;font-size:7px;font-weight:800;letter-spacing:.12em}
.admin-panel-head h2{color:var(--navy);font-size:14px}
.admin-panel-head a,.admin-panel-head button,.admin-panel-foot{border:0;color:var(--blue);background:transparent;font-size:8px;font-weight:700;text-decoration:none}
.admin-count{min-width:28px;height:28px;display:grid;place-items:center;border-radius:9px;color:#a10b57;background:#ffebf4;font-size:9px;font-weight:800}
.admin-status-list{max-height:360px;overflow:auto}
.admin-status-row{display:grid;grid-template-columns:34px minmax(145px,1fr) minmax(100px,.65fr) 84px;align-items:center;gap:10px;padding:11px 18px;border-bottom:1px solid #f0f2f5}
.admin-status-row:last-child{border-bottom:0}
.admin-status-row .avatar{width:32px;height:32px;border-radius:10px;font-size:8px}
.admin-status-row strong,.admin-status-row small{display:block}
.admin-status-row strong{overflow:hidden;color:#2a3c54;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.admin-status-row small{margin-top:2px;color:#8b97a7;font-size:7px}
.admin-status-time{color:#748297;font-size:8px}
.admin-status-pill{justify-self:end;padding:5px 8px;border-radius:18px;color:#65758a;background:#edf1f5;font-size:7px;font-weight:800;text-transform:uppercase}
.admin-status-pill.p,.admin-status-pill.j{color:#08765d;background:#e5f7f1}
.admin-status-pill.t{color:#986000;background:#fff0d7}
.admin-status-pill.ng{color:#a03649;background:#ffe9ed}
.admin-request-list{max-height:290px;overflow:auto}
.admin-request{padding:13px 17px;border-bottom:1px solid #f0f2f5}
.admin-request:last-child{border:0}
.admin-request b,.admin-request small,.admin-request p{display:block;margin:0}
.admin-request b{color:#2a3c54;font-size:9px}
.admin-request small{margin:3px 0 7px;color:#8a96a6;font-size:7px}
.admin-request p{color:#5f6f84;font-size:8px;line-height:1.5}
.admin-panel-foot{display:flex;justify-content:space-between;padding:13px 17px;border-top:1px solid #edf0f3}
.admin-empty{margin:0;padding:23px;color:#8793a4;font-size:9px;text-align:center}
.admin-overview-today{overflow:hidden;border:1px solid #dbe4ec;border-radius:16px;background:#fff}.admin-overview-today>header{min-height:96px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 22px;color:#fff;background:#0b2a54}.admin-overview-today>header small,.admin-overview-today>header h2,.admin-overview-today>header p{display:block;margin:0}.admin-overview-today>header small{color:#aecdde;font-size:10px;font-weight:700;text-transform:capitalize}.admin-overview-today>header h2{margin-top:3px;font-size:21px;letter-spacing:-.025em}.admin-overview-today>header p{max-width:66ch;margin-top:5px;color:#d2deeb;font-size:11px;line-height:1.45}.admin-overview-today>header>button{min-height:42px;display:flex;flex:none;align-items:center;gap:9px;padding:0 14px;border:1px solid rgba(255,255,255,.25);border-radius:10px;color:#fff;background:rgba(255,255,255,.08);font-size:10px;font-weight:800}.admin-overview-today>header>button:hover{background:rgba(255,255,255,.15)}.admin-overview-today>header>button svg,.admin-panel-foot svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.admin-overview-today .admin-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0}.admin-overview-today .admin-kpi{min-height:86px;padding:15px 20px;border:0;border-right:1px solid #e4eaf0;border-radius:0;background:#fff;box-shadow:none}.admin-overview-today .admin-kpi:last-child{border-right:0}.admin-overview-today .admin-kpi:after{content:none}.admin-overview-today .admin-kpi small{color:#6d7e91;font-size:8px}.admin-overview-today .admin-kpi b{margin:3px 0 1px;font-size:25px!important;font-variant-numeric:tabular-nums}.admin-overview-today .admin-kpi span{font-size:9px!important}.admin-overview-today .admin-kpi.registered b,.admin-overview-today .admin-kpi.complete b{color:#08735a}.admin-overview-today .admin-kpi.pending b{color:#9b3046}
.admin-overview-grid{margin-top:14px}.admin-overview-grid .admin-panel{overflow:hidden;box-shadow:none}.admin-overview-grid .admin-panel-head{min-height:70px;padding:14px 18px}.admin-overview-grid .admin-panel-head h2{font-size:15px}.admin-count.is-alert{color:#922e43;background:#ffe8ed}.admin-overview-grid .admin-status-list,.admin-overview-grid .admin-request-list{max-height:310px}.admin-overview-grid .admin-panel-foot{min-height:44px;align-items:center;cursor:pointer}.admin-overview-grid .admin-panel-foot:hover{background:#f5f9fd}.admin-status-pill.danger{color:#922e43;background:#ffe8ed}.admin-status-pill.warning{color:#79520e;background:#fff0d7}.admin-status-pill.info{color:#174f84;background:#e8f3ff}.admin-empty.compact{padding-block:13px;background:#f8fafc}.admin-overview-clear{min-height:126px;display:flex;align-items:center;justify-content:center;gap:12px;padding:22px;color:#08735a;text-align:left}.admin-overview-clear svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}.admin-overview-clear b,.admin-overview-clear small{display:block}.admin-overview-clear b{font-size:12px}.admin-overview-clear small{margin-top:3px;color:#627789;font-size:9px}
.admin-overview-map{overflow:hidden;margin-top:14px;border:1px solid #dbe4ec;border-radius:16px;background:#fff}.admin-overview-map>header{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 20px;border-bottom:1px solid #e4eaf0}.admin-overview-map>header h2,.admin-overview-map>header p{margin:0}.admin-overview-map>header h2{color:#102b50;font-size:16px}.admin-overview-map>header p{margin-top:3px;color:#6d7e91;font-size:10px}.admin-overview-map>header>small{color:#738398;font-size:9px;font-weight:700;white-space:nowrap}.admin-overview-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#e7ecf1}.admin-overview-module-grid>button{min-width:0;min-height:88px;display:grid;grid-template-columns:34px minmax(0,1fr) auto 18px;align-items:center;gap:10px;padding:14px 16px;border:0;color:#28435e;background:#fff;text-align:left}.admin-overview-module-grid>button[hidden]{display:none}.admin-overview-module-grid>button:hover{background:#f5f9fd}.admin-overview-module-grid>button:focus-visible,.admin-overview-today>header>button:focus-visible,.admin-overview-grid .admin-panel-foot:focus-visible{position:relative;z-index:2;outline:3px solid #46a9d1;outline-offset:-3px}.admin-overview-module-icon{width:32px;height:32px;display:grid;place-items:center;color:#1663a6}.admin-overview-module-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}.admin-overview-module-copy{min-width:0}.admin-overview-module-copy b,.admin-overview-module-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-overview-module-copy b{color:#203a56;font-size:11px}.admin-overview-module-copy small{margin-top:4px;color:#75859a;font-size:8px}.admin-overview-module-value{max-width:104px;color:#0b4f87;font-size:10px;font-weight:800;text-align:right;font-variant-numeric:tabular-nums}.admin-overview-module-arrow{width:17px;height:17px;fill:none;stroke:#8292a5;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}
@media(max-width:1180px){.admin-overview-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.admin-overview-today>header{align-items:flex-start;flex-direction:column;padding:18px}.admin-overview-today>header>button{width:100%;justify-content:space-between}.admin-overview-today .admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-overview-today .admin-kpi:nth-child(2){border-right:0}.admin-overview-today .admin-kpi:nth-child(-n+2){border-bottom:1px solid #e4eaf0}.admin-overview-map>header{align-items:flex-start;flex-direction:column;gap:5px}.admin-overview-module-grid{grid-template-columns:1fr}}
@media(max-width:430px){.admin-overview-module-grid>button{grid-template-columns:30px minmax(0,1fr) 16px;padding-inline:12px}.admin-overview-module-value{grid-column:2;max-width:none;margin-top:-5px;text-align:left}.admin-overview-module-arrow{grid-column:3;grid-row:1/3}.admin-overview-today .admin-kpi{padding-inline:14px}}
.admin-modules{margin-top:17px;padding:22px 23px;border:1px solid #e2e7ed;border-radius:17px;background:#fff;box-shadow:var(--shadow-soft)}
.admin-modules .section-title small{color:#909baa;font-size:7px}
.admin-module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}
.admin-module{min-height:78px;display:grid;grid-template-columns:42px 1fr 18px;align-items:center;gap:11px;padding:13px;border:1px solid #e7ebf0;border-radius:13px;color:inherit;background:#fff;text-align:left;text-decoration:none;transition:.18s}
.admin-module:hover{border-color:#bfd2e8;box-shadow:0 9px 24px rgba(13,52,99,.08);transform:translateY(-1px)}
.admin-module-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;color:#1663b8;background:#e9f3ff}
.admin-module-icon svg{width:20px}
.admin-module-icon.cyan{color:#087c88;background:#e6f7f8}.admin-module-icon.pink{color:#c50b67;background:#ffeaf4}.admin-module-icon.navy{color:#fff;background:var(--navy)}.admin-module-icon.green{color:#08765d;background:#e6f7f1}.admin-module-icon.amber{color:#9a6200;background:#fff0d5}
.admin-module span:nth-child(2) b,.admin-module span:nth-child(2) small{display:block}
.admin-module span:nth-child(2) b{color:#24374f;font-size:9px}
.admin-module span:nth-child(2) small{margin-top:3px;color:#8a96a6;font-size:7px;line-height:1.45}
.admin-module>i{color:#8ea0b4;font-size:14px;font-style:normal}

@media(max-width:1060px){
  .admin-overview-grid{grid-template-columns:1fr}
  .admin-module-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:700px){
  .admin-view-head{align-items:flex-start}
  .admin-head-actions{margin-top:14px}
  .admin-kpis{grid-template-columns:repeat(2,1fr)}
  .admin-module-grid{grid-template-columns:1fr}
  .admin-status-row{grid-template-columns:32px 1fr auto}
  .admin-status-time{display:none}
}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.admin-section-nav{display:flex;align-items:center;gap:5px;margin:-6px 0 18px;padding:4px;border:1px solid #e3e8ee;border-radius:12px;background:#fff;width:max-content}
.admin-section-nav button,.admin-section-nav a{min-height:34px;padding:0 13px;border:0;border-radius:8px;color:#758398;background:transparent;font-size:8px;font-weight:700;text-decoration:none}
.admin-section-nav button.active{color:#fff;background:var(--navy);box-shadow:0 5px 13px rgba(8,35,75,.14)}
.admin-section-nav a{display:flex;align-items:center;margin-left:5px;border-left:1px solid #e6eaef;border-radius:0;color:#8a96a6}
.admin-list-section{display:grid;gap:14px}
.admin-list-section[hidden],#admin-overview-section[hidden]{display:none}
.admin-list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;border:1px solid #e2e7ed;border-radius:14px;background:#fff;box-shadow:0 6px 18px rgba(15,36,66,.035)}
.admin-date-control,.admin-list-filters{display:flex;align-items:center;gap:7px}
.admin-date-control button{height:35px;min-width:35px;padding:0 11px;border:1px solid #e0e6ed;border-radius:9px;color:#506177;background:#fff;font-size:12px;font-weight:700}
.admin-date-control button:hover{color:var(--blue);border-color:#bdd1e8;background:#f7faff}
.admin-date-control input,.admin-list-filters input,.admin-list-filters select{height:35px;border:1px solid #e0e6ed;border-radius:9px;outline:0;color:#35475f;background:#fff;font-size:8px}
.admin-date-control input{padding:0 10px}
.admin-list-filters input{width:190px;padding:0 11px}
.admin-list-filters select{min-width:145px;padding:0 28px 0 10px}
.admin-date-control input:focus,.admin-list-filters input:focus,.admin-list-filters select:focus{border-color:#74a7df;box-shadow:0 0 0 3px rgba(7,90,188,.08)}
.admin-list-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}
.admin-list-kpi{padding:13px 15px;border:1px solid #e3e8ee;border-radius:12px;background:#fff}
.admin-list-kpi small,.admin-list-kpi b{display:block}
.admin-list-kpi small{color:#8793a4;font-size:7px;font-weight:800;letter-spacing:.06em}
.admin-list-kpi b{margin-top:3px;color:var(--navy);font-size:20px}
.admin-list-message{display:none;padding:10px 13px;border-radius:10px;color:#a03649;background:#fff0f3;font-size:8px}
.admin-list-message.show{display:block}
.admin-roster{display:grid;gap:12px}
.admin-area-group{overflow:hidden;border:1px solid #e2e7ed;border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(15,36,66,.04)}
.admin-area-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 16px;border-bottom:1px solid #edf0f3;background:#fbfcfd}
.admin-area-head span{display:flex;align-items:center;gap:9px}
.admin-area-head i{width:9px;height:9px;border-radius:3px;background:linear-gradient(135deg,var(--blue),var(--cyan));box-shadow:0 0 0 4px #eaf4fb}
.admin-area-head b{color:var(--navy);font-size:9px}
.admin-area-head small{color:#8995a5;font-size:7px}
.admin-roster-row{display:grid;grid-template-columns:36px minmax(155px,1.2fr) minmax(100px,.7fr) 92px minmax(240px,1.1fr);align-items:center;gap:11px;padding:11px 16px;border-bottom:1px solid #f0f2f5}
.admin-roster-row:last-child{border-bottom:0}
.admin-roster-row .avatar{width:34px;height:34px;border-radius:10px;font-size:8px}
.admin-person b,.admin-person small,.admin-shift b,.admin-shift small{display:block}
.admin-person b{overflow:hidden;color:#2a3c54;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.admin-person small,.admin-shift small{margin-top:2px;color:#8b97a7;font-size:7px}
.admin-evidence-button{margin-top:4px;padding:0;border:0;color:var(--blue);background:transparent;font-size:7px;font-weight:700;text-decoration:underline;text-underline-offset:2px}
.admin-evidence-button:hover{color:var(--navy)}
.admin-shift b{color:#55657a;font-size:8px;font-weight:600}
.admin-current-state{justify-self:start;padding:5px 8px;border-radius:18px;color:#68778c;background:#edf1f5;font-size:7px;font-weight:800;text-transform:uppercase}
.admin-current-state.p,.admin-current-state.j{color:#08765d;background:#e5f7f1}.admin-current-state.t{color:#986000;background:#fff0d7}.admin-current-state.ng{color:#a03649;background:#ffe9ed}
.admin-state-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
.admin-state-btn{height:31px;border:1px solid #e1e6ec;border-radius:8px;color:#7b899c;background:#fff;font-size:8px;font-weight:800;transition:.15s}
.admin-state-btn:hover:not(:disabled){border-color:#a9c4e2;color:var(--blue);background:#f6faff}
.admin-state-btn.on.p{color:#fff;border-color:#15916d;background:#15916d}.admin-state-btn.on.t{color:#fff;border-color:#d8921d;background:#d8921d}.admin-state-btn.on.j{color:#fff;border-color:#397fcc;background:#397fcc}.admin-state-btn.on.ng{color:#fff;border-color:#bd4257;background:#bd4257}
.admin-state-btn:disabled{opacity:.45;cursor:not-allowed}
.admin-list-legend{display:flex;align-items:center;flex-wrap:wrap;gap:13px;padding:12px 15px;border:1px solid #e5e9ee;border-radius:12px;color:#738196;background:#fff;font-size:7px}
.admin-list-legend span{display:flex;align-items:center;gap:5px}.admin-list-legend i{width:7px;height:7px;border-radius:50%}.admin-list-legend i.p{background:#15916d}.admin-list-legend i.t{background:#d8921d}.admin-list-legend i.j{background:#397fcc}.admin-list-legend i.ng{background:#bd4257}.admin-list-legend small{margin-left:auto;color:#929dab;font-size:7px}

@media(max-width:1050px){
  .admin-list-kpis{grid-template-columns:repeat(3,1fr)}
  .admin-roster-row{grid-template-columns:34px minmax(145px,1fr) 90px minmax(220px,1fr)}
  .admin-shift{display:none}
}
@media(max-width:760px){
  .admin-section-nav{width:100%;overflow:auto}
  .admin-section-nav button,.admin-section-nav a{white-space:nowrap}
  .admin-list-toolbar{align-items:stretch;flex-direction:column}
  .admin-list-filters label,.admin-list-filters input,.admin-list-filters select{width:100%}
  .admin-list-filters{display:grid;grid-template-columns:1fr 1fr}
  .admin-list-kpis{grid-template-columns:repeat(2,1fr)}
  .admin-roster-row{grid-template-columns:32px 1fr auto;padding:12px}
  .admin-current-state{grid-column:3}
  .admin-state-actions{grid-column:1/-1;width:100%}
  .admin-list-legend small{width:100%;margin-left:0}
}

/* ── Fase 3 · Directorio y contratos ─────────────────────────────── */
.admin-team-section{display:grid;gap:14px}
.admin-team-section[hidden],.admin-editor-modal[hidden]{display:none}
.admin-team-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 18px;border:1px solid #e2e7ed;border-radius:15px;background:#fff;box-shadow:0 7px 20px rgba(15,36,66,.04)}
.admin-team-toolbar h2,.admin-team-toolbar p{margin:0}.admin-team-toolbar h2{margin-top:3px;color:var(--navy);font-size:15px}
.admin-team-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.admin-team-actions input[type="search"],.admin-team-actions select{height:36px;border:1px solid #dfe5ec;border-radius:9px;outline:0;color:#35475f;background:#fff;font-size:8px}
.admin-team-actions input[type="search"]{width:190px;padding:0 11px}.admin-team-actions select{min-width:140px;padding:0 27px 0 10px}
.admin-team-actions input:focus,.admin-team-actions select:focus{border-color:#74a7df;box-shadow:0 0 0 3px rgba(7,90,188,.08)}
.admin-toggle{height:36px;display:flex;align-items:center;gap:7px;padding:0 10px;border:1px solid #e2e7ed;border-radius:9px;color:#68778b;background:#fbfcfd;font-size:8px;font-weight:600;white-space:nowrap}
.admin-toggle input{width:13px;height:13px;accent-color:var(--blue)}
.admin-primary-action,.admin-secondary-action{height:36px;padding:0 14px;border-radius:9px;font-size:8px;font-weight:800}
.admin-primary-action{border:1px solid var(--blue);color:#fff;background:var(--blue);box-shadow:0 7px 16px rgba(6,91,190,.15)}
.admin-primary-action:hover{background:#0752aa}.admin-primary-action:disabled{opacity:.55;cursor:wait}
.admin-secondary-action{border:1px solid #dce3eb;color:#53657b;background:#fff}
.admin-legacy-link{justify-self:end;color:#8390a1;font-size:7px;font-weight:700;text-decoration:none}.admin-legacy-link:hover{color:var(--blue)}

.admin-people-groups{display:grid;gap:14px}.admin-people-group{overflow:hidden;border:1px solid #e1e7ed;border-radius:16px;background:#fff;box-shadow:0 9px 26px rgba(15,36,66,.04)}
.admin-people-group>header{display:flex;align-items:center;justify-content:space-between;padding:13px 17px;border-bottom:1px solid #edf0f3;background:#fbfcfd}
.admin-people-group>header span{display:flex;align-items:center;gap:9px}.admin-people-group>header i{width:9px;height:9px;border-radius:3px;background:var(--navy);box-shadow:0 0 0 4px #eaf1f8}
.admin-people-group>header b{color:var(--navy);font-size:9px}.admin-people-group>header small{color:#8995a5;font-size:7px}
.admin-person-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
.admin-person-card{min-width:0;padding:16px;border-right:1px solid #edf0f3;border-bottom:1px solid #edf0f3;background:#fff}.admin-person-card:nth-child(2n){border-right:0}.admin-person-card.inactive{background:#fafbfc;opacity:.72}
.admin-person-card-head{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px}.admin-person-card-head>.avatar{width:37px;height:37px;border-radius:11px;font-size:9px}
.admin-person-card-head>span:nth-child(2) b,.admin-person-card-head>span:nth-child(2) small{display:block}.admin-person-card-head>span:nth-child(2) b{overflow:hidden;color:#24374f;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.admin-person-card-head>span:nth-child(2) small{margin-top:3px;color:#8995a5;font-size:7px}
.admin-person-card-head>div{display:flex;gap:4px}.admin-person-card-head button,.admin-contract-action button{height:29px;padding:0 9px;border:1px solid #dfe5ec;border-radius:8px;color:#53657b;background:#fff;font-size:7px;font-weight:700}.admin-person-card-head button:hover,.admin-contract-action button:hover{color:var(--blue);border-color:#b9cfe7;background:#f6faff}.admin-person-card-head button.danger:hover{color:#a9384c;border-color:#efc5cd;background:#fff7f8}
.admin-person-card-head button.days-off{color:#075abc;border-color:#cfe1f3;background:#f2f8fe}
.admin-identity-line{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:12px 0 10px;color:#758397;font-size:7px}.admin-identity-line span{padding:5px 7px;border-radius:7px;background:#f3f5f8}.admin-identity-line b{color:#41536b}.admin-identity-line .ready{color:#08765d;background:#e8f7f2}.admin-identity-line .missing{color:#a05c00;background:#fff3df}
.admin-week-ledger{display:grid;grid-template-columns:repeat(7,1fr);overflow:hidden;border:1px solid #e6eaf0;border-radius:10px;background:#f9fafc}
.admin-day-chip{min-width:0;min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid #e8ecf1;color:#52647b}.admin-day-chip:last-child{border-right:0}.admin-day-chip b,.admin-day-chip i,.admin-day-chip small{display:block}.admin-day-chip b{color:#8a96a6;font-size:6px;text-transform:uppercase}.admin-day-chip i{margin:3px 0 2px;color:#1767b9;font-size:7px;font-style:normal;font-weight:800}.admin-day-chip small{overflow:hidden;width:100%;color:#8793a3;font-size:6px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.admin-day-chip.presencial i{color:#07828b}.admin-day-chip.opcional i{color:#a56600}.admin-day-chip.no_gestiona{color:#adb6c2;background:#f2f4f7}.admin-day-chip.no_gestiona i{color:#aab3bf}
.admin-person-contract{display:grid;grid-template-columns:1fr 82px;align-items:center;gap:12px;margin-top:11px;padding-top:10px;border-top:1px solid #edf0f3}.admin-person-contract small,.admin-person-contract b{display:block}.admin-person-contract small{color:#929dab;font-size:6px;font-weight:800;letter-spacing:.08em}.admin-person-contract b{margin-top:2px;color:#40526a;font-size:8px}.admin-person-contract>i{height:5px;overflow:hidden;border-radius:5px;background:#e5eaf0}.admin-person-contract>i:after{content:"";display:block;width:var(--contract-progress);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--cyan))}.admin-person-contract.pending b{color:#9b6300}.admin-person-contract.pending>i:after{width:45%;background:#e4a02b}

.admin-contract-list{overflow:hidden;border:1px solid #e1e7ed;border-radius:16px;background:#fff;box-shadow:0 9px 26px rgba(15,36,66,.04)}
.admin-contract-head,.admin-contract-row{display:grid;grid-template-columns:minmax(190px,1.25fr) minmax(165px,1fr) 78px 145px 145px 58px;align-items:center;gap:12px;padding:0 16px}
.admin-contract-head{min-height:38px;border-bottom:1px solid #e9edf2;color:#929dab;background:#fafbfd;font-size:6px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.admin-contract-row{min-height:86px;border-bottom:1px solid #edf0f3}.admin-contract-row:last-child{border-bottom:0}.admin-contract-row.inactive{opacity:.58;background:#fafbfc}
.admin-contract-person{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:9px}.admin-contract-person .avatar{width:35px;height:35px;border-radius:10px;font-size:8px;font-style:normal}.admin-contract-person b,.admin-contract-person small,.admin-contract-week b,.admin-contract-week small,.admin-contract-date b,.admin-contract-date small{display:block}.admin-contract-person b{overflow:hidden;color:#283b52;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.admin-contract-person small,.admin-contract-week small,.admin-contract-date small{margin-top:3px;color:#8a96a6;font-size:6px;line-height:1.4}
.admin-contract-progress>span{display:flex;align-items:center;justify-content:space-between}.admin-contract-progress b{color:#40536b;font-size:8px}.admin-contract-progress small{color:#8794a5;font-size:6px}.admin-contract-progress>i{display:block;height:5px;overflow:hidden;margin-top:6px;border-radius:5px;background:#e5eaf0}.admin-contract-progress>i u{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--cyan));text-decoration:none}
.admin-vol-progress{display:flex!important;align-items:center;justify-content:space-between;margin-top:5px;color:#7b8798;font-size:6px}.admin-vol-progress b{color:#07828b;font-size:6px}
.admin-contract-week b,.admin-contract-date b{color:#40536b;font-size:8px}.admin-contract-status>b{display:inline-flex;padding:5px 7px;border-radius:14px;color:#426078;background:#edf2f6;font-size:6px}.admin-contract-status>b.pending{color:#986000;background:#fff0d7}.admin-contract-status>b.complete{color:#08765d;background:#e5f7f1}.admin-contract-status>b.warning{color:#a03649;background:#ffe9ed}.admin-contract-status small{display:block;overflow:hidden;max-width:140px;margin-top:3px;color:#9a6570;font-size:6px;text-overflow:ellipsis;white-space:nowrap}.admin-contract-action{text-align:right}

/* La ficha usa una hoja de trabajo ancha: el calendario semanal es su firma. */
.admin-editor-modal{z-index:350}.admin-editor-sheet{position:relative;z-index:1;width:min(1040px,100%);max-height:calc(100vh - 34px);overflow:auto;border-radius:22px;background:#f7f9fb;box-shadow:0 32px 100px rgba(2,18,41,.38)}
.admin-editor-head{position:sticky;z-index:3;top:0;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px 26px 18px;border-bottom:1px solid #e3e8ee;background:rgba(255,255,255,.96);backdrop-filter:blur(12px)}.admin-editor-head h2,.admin-editor-head p{margin:0}.admin-editor-head h2{margin-top:3px;color:var(--navy);font-size:21px}.admin-editor-head>div>p:last-child{margin-top:5px;color:#7f8c9d;font-size:8px}.admin-editor-head .modal-close{position:static;flex:0 0 auto}
.admin-editor-sheet form{display:grid;gap:12px;padding:15px 17px 18px}.admin-editor-block{display:grid;grid-template-columns:180px minmax(0,1fr);gap:20px;padding:18px;border:1px solid #e1e6ec;border-radius:15px;background:#fff}.admin-editor-label b,.admin-editor-label span{display:block}.admin-editor-label b{color:var(--navy);font-size:11px}.admin-editor-label span{margin-top:5px;color:#8a96a6;font-size:7px;line-height:1.55}
.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 12px}.admin-field{display:grid;gap:6px;color:#627287;font-size:7px;font-weight:700}.admin-field>span{display:block}.admin-field input,.admin-field select,.admin-area-create input{width:100%;height:38px;padding:0 10px;border:1px solid #dce3ea;border-radius:9px;outline:0;color:#2e425b;background:#fff;font:500 9px Poppins,sans-serif}.admin-field input:focus,.admin-field select:focus,.admin-area-create input:focus{border-color:#70a5df;box-shadow:0 0 0 3px rgba(8,92,188,.08)}.admin-field.span-2,.admin-area-create.span-2{grid-column:1/-1}
.admin-area-field{display:grid;grid-template-columns:1fr auto;gap:7px}.admin-area-field button,.admin-area-create button{height:38px;padding:0 11px;border:1px solid #c8d7e7;border-radius:9px;color:var(--blue);background:#f6faff;font-size:7px;font-weight:800}.admin-area-create{display:grid;grid-template-columns:1fr auto;gap:7px}.admin-area-create[hidden]{display:none}
.admin-pending-check{grid-column:2;display:flex;align-items:flex-start;gap:9px;margin-bottom:11px;padding:11px 12px;border:1px solid #f0d9ad;border-radius:10px;color:#7c5b1d;background:#fff9ec}.admin-pending-check input{margin-top:2px;accent-color:#cc8a1b}.admin-pending-check b,.admin-pending-check small{display:block}.admin-pending-check b{font-size:8px}.admin-pending-check small{margin-top:2px;color:#9a814f;font-size:6px}.admin-editor-block>.admin-field{grid-column:2}.contract-fields{grid-column:2}
.admin-general-hours{grid-column:2;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.admin-schedule-head,.admin-schedule-row{grid-column:1/-1;display:grid;grid-template-columns:55px minmax(135px,1fr) 105px 105px minmax(120px,.8fr);align-items:center;gap:8px}.admin-schedule-head{margin-top:6px;padding:0 8px;color:#929dab;font-size:6px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.admin-schedule-grid{grid-column:1/-1;display:grid;overflow:hidden;border:1px solid #e3e8ee;border-radius:12px}.admin-schedule-row{min-height:48px;padding:6px 8px;border-bottom:1px solid #edf0f3;background:#fff}.admin-schedule-row:last-child{border-bottom:0}.admin-schedule-row>b{color:#41536a;font-size:8px}.admin-schedule-row select,.admin-schedule-row input{width:100%;height:33px;padding:0 8px;border:1px solid #dfe5ec;border-radius:8px;color:#40536a;background:#fff;font:500 8px Poppins,sans-serif}.admin-schedule-row.off{background:#f6f7f9}.admin-schedule-row.off>b{color:#a1abb8}.admin-schedule-row.off input,.admin-schedule-row.off .schedule-link{opacity:.4}.admin-schedule-grid:not(.mixed) .schedule-link{color:transparent;background:#f4f6f8}
.admin-history-list{grid-column:2;display:grid;max-height:170px;overflow:auto;border:1px solid #e5e9ee;border-radius:10px}.admin-history-list article{display:grid;grid-template-columns:80px 1fr;gap:10px;padding:9px 11px;border-bottom:1px solid #edf0f3}.admin-history-list article:last-child{border-bottom:0}.admin-history-list time{color:#8794a5;font-size:7px}.admin-history-list b,.admin-history-list small{display:block}.admin-history-list b{color:#42546b;font-size:8px}.admin-history-list small{margin-top:2px;color:#8a96a6;font-size:6px}.admin-history-list p{margin:0;padding:14px;color:#8a96a6;font-size:7px}.admin-history-list+.admin-field{grid-column:2}
.admin-editor-message{display:none;padding:11px 13px;border-radius:10px;color:#a03649;background:#fff0f3;font-size:8px}.admin-editor-message.show{display:block}.admin-editor-foot{display:flex;justify-content:flex-end;gap:8px;padding-top:2px}

/* Horario de Facebook: agenda independiente dentro de la ficha del colaborador. */
.facebook-schedule-block{
  --facebook-blue:#1877f2;
  --facebook-ink:#123b6d;
  position:relative;
  align-items:start;
  border-color:#cfe0f4;
  background:#f8fbff;
}
.facebook-schedule-label{display:flex;align-items:flex-start;gap:12px;min-width:0}
.facebook-schedule-label>span:last-child{min-width:0}
.facebook-schedule-label>span:last-child>span{margin-top:5px;color:#66809e!important;font-size:11px!important;line-height:1.55}
.facebook-schedule-label b{color:var(--facebook-ink);font-size:14px}
.facebook-schedule-icon{
  width:42px;
  height:42px;
  flex:0 0 42px;
  display:grid!important;
  place-items:center;
  margin:0!important;
  border-radius:12px;
  color:#fff;
  background:var(--facebook-blue);
  box-shadow:0 8px 18px rgba(24,119,242,.22);
}
.facebook-schedule-icon svg{width:23px;height:23px;fill:currentColor;stroke:none}
.facebook-schedule-note{
  grid-column:2;
  min-width:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:10px;
  color:#315a85;
  background:#eaf3fd;
}
.facebook-schedule-note b{font-size:11px;white-space:nowrap}
.facebook-schedule-note span{margin:0!important;color:#527191!important;font-size:10px!important;line-height:1.45}
.facebook-schedule-head,.facebook-schedule-row{display:grid;grid-template-columns:54px 94px minmax(100px,1fr) minmax(100px,1fr);align-items:center;gap:9px}
.facebook-schedule-head{grid-column:2;padding:0 12px;color:#71849a;font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.facebook-schedule-grid{grid-column:2;min-width:0;display:grid;overflow:hidden;border:1px solid #d8e4f0;border-radius:12px;background:#fff}
.facebook-schedule-row{
  min-height:52px;
  padding:6px 11px;
  border-bottom:1px solid #e8eef5;
  background:#fff;
  transition:background-color 180ms cubic-bezier(.16,1,.3,1),border-color 180ms ease;
}
.facebook-schedule-row:last-child{border-bottom:0}
.facebook-schedule-row>b{color:#3d5570;font-size:11px}
.facebook-schedule-row.is-active{background:#f3f8ff}
.facebook-schedule-row.is-active>b{color:#0c579f}
.facebook-schedule-row.is-off{background:#fbfcfd}
.facebook-day-toggle{
  position:relative;
  width:82px;
  height:38px;
  display:flex;
  align-items:center;
  padding:0 10px 0 42px;
  border:1px solid #d9e2eb;
  border-radius:10px;
  color:#687b91;
  background:#f1f4f7;
  font-size:10px;
  font-weight:800;
  cursor:pointer;
  user-select:none;
}
.facebook-day-toggle input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.facebook-day-toggle:before{content:"";position:absolute;left:8px;width:27px;height:16px;border-radius:999px;background:#aab7c5;transition:background-color 180ms ease}
.facebook-day-toggle:after{content:"";position:absolute;left:10px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(9,36,76,.22);transition:transform 220ms cubic-bezier(.16,1,.3,1)}
.facebook-schedule-row.is-active .facebook-day-toggle{border-color:#b8d7fb;color:#075abc;background:#e4f1ff}
.facebook-schedule-row.is-active .facebook-day-toggle:before{background:var(--facebook-blue)}
.facebook-schedule-row.is-active .facebook-day-toggle:after{transform:translateX(11px)}
.facebook-day-toggle:has(input:focus-visible){outline:3px solid rgba(24,119,242,.22);outline-offset:2px}
.facebook-time-field{min-width:0;display:block}
.facebook-time-field>span{display:none}
.facebook-time-field input{
  width:100%;
  height:38px;
  padding:0 10px;
  border:1px solid #d5e0ec;
  border-radius:9px;
  outline:0;
  color:#294765;
  background:#fff;
  font:600 11px Inter,system-ui,sans-serif;
  font-variant-numeric:tabular-nums;
}
.facebook-time-field input:focus{border-color:#68a5e9;box-shadow:0 0 0 3px rgba(24,119,242,.1)}
.facebook-time-field input:disabled{border-color:#e2e7ec;color:#8795a5;background:#f1f3f5;cursor:not-allowed}
@media(hover:hover) and (pointer:fine){.facebook-schedule-row.is-active:hover{background:#eaf4ff}.facebook-day-toggle:hover{border-color:#a9c8e8}}
@media(max-width:850px){
  .facebook-schedule-note,.facebook-schedule-head,.facebook-schedule-grid{grid-column:1}
}
@media(max-width:600px){
  .facebook-schedule-block{padding:14px}
  .facebook-schedule-note{display:block;padding:11px 12px}.facebook-schedule-note b,.facebook-schedule-note span{display:block}.facebook-schedule-note span{margin-top:3px!important}
  .facebook-schedule-head{display:none}
  .facebook-schedule-row{grid-template-columns:44px minmax(0,1fr) minmax(0,1fr);gap:7px 8px;padding:10px}
  .facebook-schedule-row>b{align-self:center}
  .facebook-day-toggle{grid-column:2/4;width:100%}
  .facebook-time-field>span{display:block;margin:0 0 4px;color:#71849a;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
  .facebook-time-field:nth-of-type(2){grid-column:2}.facebook-time-field:nth-of-type(3){grid-column:3}
  .facebook-time-field input{height:40px;padding-inline:8px;font-size:11px}
}
@media(prefers-reduced-motion:reduce){.facebook-schedule-row,.facebook-day-toggle:before,.facebook-day-toggle:after{transition:none}}

.admin-days-off-modal{z-index:365}.admin-days-off-modal[hidden]{display:none}
.admin-days-off-sheet{position:relative;z-index:1;width:min(520px,100%);max-height:calc(100vh - 36px);overflow:auto;padding:24px;border-radius:18px;background:#f8fafc;box-shadow:0 30px 90px rgba(2,18,41,.34)}
.admin-days-off-head{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:11px;padding-right:40px}.admin-days-off-head .avatar{width:42px;height:42px;border-radius:12px}.admin-days-off-head h2,.admin-days-off-head p{margin:0}.admin-days-off-head h2{color:var(--navy);font-size:19px}.admin-days-off-head p{margin-top:3px;color:#718197;font-size:10px}
.admin-days-off-balance{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px;padding:14px 15px;border-radius:13px;background:#eaf4fd}.admin-days-off-balance small,.admin-days-off-balance strong{display:block}.admin-days-off-balance small{color:#5f7d99;font-size:8px;font-weight:700}.admin-days-off-balance strong{margin-top:2px;color:#0a3c70;font-size:13px}.admin-days-off-balance strong b{font-size:25px;letter-spacing:-.03em}.admin-days-off-balance p{max-width:235px;margin:0;color:#58728d;font-size:9px;line-height:1.45}
#admin-days-off-form{display:grid;gap:12px;margin-top:16px}.admin-days-off-mode{margin:0;padding:0;border:0}.admin-days-off-mode legend,.admin-days-off-fields label{margin-bottom:6px;color:#52657b;font-size:9px;font-weight:700}.admin-days-off-mode>div{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:3px;border-radius:10px;background:#e9eff5}.admin-days-off-mode button{height:34px;border:0;border-radius:8px;color:#67798d;background:transparent;font-size:9px;font-weight:750}.admin-days-off-mode button[aria-checked="true"]{color:#0b477f;background:#fff;box-shadow:0 2px 7px rgba(17,55,89,.1)}.admin-days-off-mode button:focus-visible{outline:3px solid var(--focus);outline-offset:1px}
.admin-days-off-fields{display:grid;grid-template-columns:100px minmax(0,1fr);gap:10px}.admin-days-off-fields label{display:grid;margin:0;gap:6px}.admin-days-off-fields input{width:100%;height:40px;padding:0 11px;border:1px solid #d9e2eb;border-radius:10px;outline:0;color:#2d425a;background:#fff;font-size:11px}.admin-days-off-fields input:focus{border-color:#4b8dce;box-shadow:0 0 0 3px var(--focus)}
.admin-days-off-message{min-height:0;margin:0;color:#08745c;font-size:9px;line-height:1.45}.admin-days-off-message.bad{color:#a33d4d}.admin-days-off-message:empty{display:none}#admin-days-off-form>footer{display:flex;justify-content:flex-end;gap:8px}
.admin-days-off-history{margin-top:18px;padding-top:16px;border-top:1px solid #e1e8ef}.admin-days-off-history>header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:8px}.admin-days-off-history>header b{color:#223b57;font-size:11px}.admin-days-off-history>header small{color:#8492a2;font-size:8px}.admin-days-off-history>div{max-height:190px;overflow:auto;border:1px solid #e1e7ed;border-radius:12px;background:#fff}.admin-days-off-history article{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 11px;border-bottom:1px solid #edf1f4}.admin-days-off-history article:last-child{border-bottom:0}.admin-days-off-history article>b{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;font-size:9px}.admin-days-off-history article>b.plus{color:#08745c;background:#e4f6ef}.admin-days-off-history article>b.minus{color:#a33d4d;background:#ffe9ed}.admin-days-off-history strong,.admin-days-off-history small{display:block}.admin-days-off-history strong{color:#344c66;font-size:9px}.admin-days-off-history small{margin-top:2px;color:#8391a1;font-size:7px}.admin-days-off-history em{color:#61758a;font-size:8px;font-style:normal;font-weight:700}.admin-days-off-history p.empty{margin:0;padding:18px;color:#8492a2;font-size:9px;text-align:center}

@media(max-width:1100px){
  .admin-team-toolbar{align-items:flex-start;flex-direction:column}.admin-team-actions{width:100%;justify-content:flex-start}
  .admin-contract-head,.admin-contract-row{grid-template-columns:minmax(180px,1.25fr) minmax(160px,1fr) 75px 120px 120px 50px}
}
@media(max-width:850px){
  .admin-person-card-grid{grid-template-columns:1fr}.admin-person-card{border-right:0}
  .admin-contract-head{display:none}.admin-contract-row{grid-template-columns:1fr 1fr;gap:12px;padding:15px}.admin-contract-person{grid-column:1/-1}.admin-contract-status{grid-column:1}.admin-contract-action{grid-column:2;grid-row:3;text-align:right}
  .admin-editor-block{grid-template-columns:1fr}.admin-editor-label,.admin-pending-check,.admin-editor-block>.admin-field,.contract-fields,.admin-general-hours,.admin-history-list,.admin-history-list+.admin-field{grid-column:1}.admin-schedule-head{display:none}.admin-schedule-row{grid-template-columns:42px 1fr 90px 90px}.admin-schedule-row .schedule-link{grid-column:2/-1}
}
@media(max-width:600px){
  .admin-team-actions{display:grid;grid-template-columns:1fr 1fr}.admin-team-actions input[type="search"],.admin-team-actions select,.admin-team-actions .admin-primary-action{width:100%;min-width:0}.admin-team-actions input[type="search"],.admin-team-actions .admin-primary-action{grid-column:1/-1}
  .admin-week-ledger{grid-template-columns:repeat(4,1fr)}.admin-day-chip{border-bottom:1px solid #e8ecf1}
  .admin-person-card-head{grid-template-columns:36px 1fr}.admin-person-card-head>div{grid-column:1/-1}.admin-person-card-head button{flex:1}
  .admin-contract-row{grid-template-columns:1fr}.admin-contract-person,.admin-contract-status,.admin-contract-action{grid-column:1;grid-row:auto;text-align:left}.admin-contract-action button{width:100%}
  .admin-editor-modal{align-items:end;padding:0}.admin-editor-sheet{max-height:94vh;border-radius:22px 22px 0 0}.admin-editor-head{padding:19px 17px 15px}.admin-editor-sheet form{padding:10px}.admin-editor-block{padding:14px}.admin-form-grid,.admin-general-hours{grid-template-columns:1fr}.admin-field.span-2,.admin-area-create.span-2{grid-column:1}.admin-schedule-row{grid-template-columns:37px 1fr 1fr}.admin-schedule-row .schedule-mode{grid-column:2/-1}.admin-schedule-row .schedule-link{grid-column:2/-1}.admin-editor-foot>*{flex:1}
  .admin-days-off-modal{align-items:end;padding:0}.admin-days-off-sheet{width:100%;max-height:94vh;padding:20px 16px;border-radius:18px 18px 0 0}.admin-days-off-balance{align-items:flex-start;flex-direction:column;gap:6px}.admin-days-off-balance p{max-width:none}.admin-days-off-fields{grid-template-columns:88px minmax(0,1fr)}.admin-days-off-history>header small{display:none}#admin-days-off-form>footer>*{flex:1}
}

/* ── Fase 4 · Libro mensual y lectura ejecutiva ───────────────────── */
.admin-month-section{display:grid;gap:14px;min-width:0}.admin-month-section[hidden],.admin-month-modal[hidden]{display:none}
.admin-month-toolbar{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:18px 20px;border:1px solid rgba(11,35,71,.12);border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(15,36,66,.045)}
.admin-month-toolbar h2,.admin-month-toolbar p{margin:0}.admin-month-toolbar h2{margin-top:3px;color:var(--navy);font-size:17px;letter-spacing:-.02em}.admin-month-toolbar>div:first-child>p:last-child{margin-top:5px;color:#748296;font-size:8px}
.admin-month-actions,.admin-month-picker{display:flex;align-items:center;gap:7px}.admin-month-actions{justify-content:flex-end;flex-wrap:wrap}
.admin-month-picker{padding:3px;border:1px solid rgba(11,35,71,.12);border-radius:11px;background:#fff}
.admin-month-picker button{height:30px;padding:0 9px;border:0;border-radius:7px;color:#53657b;background:transparent;font-size:8px;font-weight:800}.admin-month-picker button:first-child,.admin-month-picker button:nth-child(3){width:30px;padding:0;font-size:17px}.admin-month-picker button:hover{color:var(--navy);background:#f5f7fa}
.admin-month-picker input{height:30px;border:0;outline:0;color:#263a55;background:transparent;font-size:8px;font-weight:700}
.admin-month-filters{display:flex;align-items:center;gap:8px;padding:11px 13px;border:1px solid rgba(11,35,71,.1);border-radius:13px;background:#fff}
.admin-month-filters input[type="search"],.admin-month-filters select{height:34px;border:1px solid rgba(11,35,71,.13);border-radius:8px;outline:0;color:#35475f;background:#fff;font-size:8px}.admin-month-filters input[type="search"]{width:210px;padding:0 10px}.admin-month-filters select{min-width:145px;padding:0 25px 0 9px}
.admin-month-filters input:focus,.admin-month-filters select:focus,.admin-month-picker input:focus{box-shadow:0 0 0 3px rgba(0,79,176,.09)}
.admin-month-stamp{margin-left:auto;color:#758397;font-size:8px;font-weight:800;text-transform:capitalize}.admin-month-kpis{margin:0}
.admin-month-workbench{overflow:hidden;border:1px solid #d7e1ea;border-radius:16px;background:#fff}.admin-month-workbench-head{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 21px;color:#fff;background:#0b2a54}.admin-month-workbench-head h2,.admin-month-workbench-head p{margin:0}.admin-month-workbench-head h2{font-size:21px;letter-spacing:-.025em}.admin-month-workbench-head p{max-width:68ch;margin-top:5px;color:#cbd9e8;font-size:11px;line-height:1.45}.admin-month-workbench-head .admin-month-export{min-height:42px;display:flex;flex:none;align-items:center;gap:8px;padding-inline:14px;color:#0b3f74;background:#fff;box-shadow:none}.admin-month-export svg,.admin-month-holidays svg,.admin-month-picker svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.admin-month-workbench-controls{display:grid;grid-template-columns:max-content minmax(460px,1fr);align-items:end;gap:18px;padding:14px 18px;border-bottom:1px solid #e3e9ef;background:#f7f9fb}.admin-month-period-actions{display:flex;align-items:center;gap:7px}.admin-month-workbench .admin-month-picker{min-height:42px;padding:3px;border-color:#ccd8e4;border-radius:10px}.admin-month-workbench .admin-month-picker button{width:34px;height:34px;display:grid;place-items:center;padding:0}.admin-month-workbench .admin-month-picker input{width:150px;height:34px;padding:0 7px;font-size:11px;font-weight:800}.admin-month-today{min-height:42px;padding:0 12px;border:1px solid #ccd8e4;border-radius:10px;color:#435b74;background:#fff;font-size:10px;font-weight:800}.admin-month-today:hover,.admin-month-workbench .admin-secondary-action:hover{color:#0b4f87;border-color:#9fbedc;background:#f2f8fd}.admin-month-workbench .admin-month-holidays{min-height:42px;display:flex;align-items:center;gap:7px;padding-inline:12px;border:1px solid #ccd8e4;color:#435b74;background:#fff}.admin-month-workbench .admin-month-filters{display:grid;grid-template-columns:minmax(190px,1fr) minmax(150px,.7fr) auto;align-items:end;gap:8px;padding:0;border:0;border-radius:0;background:transparent}.admin-month-workbench .admin-month-filters>label:not(.admin-toggle){display:grid;gap:5px;color:#607287;font-size:8px;font-weight:800}.admin-month-workbench .admin-month-filters input[type="search"],.admin-month-workbench .admin-month-filters select{width:100%;height:42px;min-width:0;padding-inline:11px;border-color:#ccd8e4;border-radius:9px;background:#fff;font-size:10px!important}.admin-month-workbench .admin-month-inactive{min-height:42px;margin:0;padding-inline:11px;border:1px solid #ccd8e4;border-radius:9px;background:#fff;white-space:nowrap}.admin-month-workbench .admin-month-kpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:0;background:#fff}.admin-month-workbench .admin-list-kpi{position:relative;min-height:86px;padding:15px 18px;border:0;border-right:1px solid #e3e9ef;border-radius:0;background:#fff}.admin-month-workbench .admin-list-kpi:last-child{border-right:0}.admin-month-workbench .admin-list-kpi small{color:#6d7d90;font-size:8px!important}.admin-month-workbench .admin-list-kpi b{margin-top:5px;color:#173656;font-size:25px!important;font-variant-numeric:tabular-nums}.admin-month-workbench .admin-list-kpi.ready b{color:#08735a}.admin-month-workbench .admin-list-kpi.warning b{color:#8a5708}.admin-month-workbench .admin-list-kpi.danger b{color:#9b3046}.admin-month-workbench button:focus-visible,.admin-month-workbench input:focus-visible,.admin-month-workbench select:focus-visible{position:relative;z-index:2;outline:3px solid #46a9d1;outline-offset:2px}
.admin-month-workbench{position:relative;z-index:4;overflow:visible}.admin-month-workbench-head{border-radius:15px 15px 0 0}
.admin-month-area-field{position:relative;min-width:0;display:grid;gap:5px;color:#607287;font-size:8px;font-weight:800}.admin-month-area-combobox{position:relative;min-width:0}.admin-month-area-combobox.is-open{z-index:30}
.admin-month-area-trigger{width:100%;height:42px;display:grid;grid-template-columns:19px minmax(0,1fr) 18px;align-items:center;gap:8px;padding:0 10px;border:1px solid #ccd8e4;border-radius:9px;color:#263f59;background:#fff;cursor:pointer;font-size:10px;font-weight:750;text-align:left;transition:border-color 160ms ease,box-shadow 160ms ease,background-color 160ms ease}.admin-month-area-trigger:hover{border-color:#9fbedc;background:#fbfdff}.admin-month-area-trigger>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-month-area-trigger svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9}.admin-month-area-icon{color:#075abc}.admin-month-area-chevron{color:#6d7d90;transition:transform 160ms ease}.admin-month-area-combobox.is-open .admin-month-area-trigger{border-color:#075abc;box-shadow:0 0 0 3px rgba(7,90,188,.12)}.admin-month-area-combobox.is-open .admin-month-area-chevron{transform:rotate(180deg)}
.admin-month-area-options[hidden]{display:none}.admin-month-area-options{position:absolute;z-index:31;top:calc(100% + 7px);left:0;width:max(100%,230px);max-height:286px;overflow-y:auto;padding:6px;border:1px solid #d7e1ea;border-radius:12px;background:#fff;box-shadow:0 18px 50px rgba(9,36,76,.18);scrollbar-color:#a8b8c8 transparent;scrollbar-width:thin}.admin-month-area-options button{width:100%;min-height:40px;display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px;padding:0 10px;border:0;border-radius:8px;color:#40536a;background:transparent;cursor:pointer;font-size:10px;font-weight:700;text-align:left}.admin-month-area-options button:hover,.admin-month-area-options button:focus-visible{outline:0;color:#173656;background:#f2f7fc;box-shadow:inset 0 0 0 2px #c9e0f5}.admin-month-area-options button[aria-selected="true"]{color:#075abc;background:#eaf3fc}.admin-month-area-options button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2;opacity:0}.admin-month-area-options button[aria-selected="true"] svg{opacity:1}
@media(max-width:1280px){.admin-month-workbench-controls{grid-template-columns:1fr;align-items:stretch}.admin-month-workbench .admin-month-filters{grid-template-columns:minmax(220px,1fr) minmax(170px,.7fr) auto}}
@media(max-width:760px){.admin-month-workbench-head{align-items:flex-start;flex-direction:column;padding:18px}.admin-month-workbench-head .admin-month-export{width:100%;justify-content:center}.admin-month-period-actions{display:grid;grid-template-columns:1fr 1fr}.admin-month-workbench .admin-month-picker{grid-column:1/-1;justify-content:space-between}.admin-month-workbench .admin-month-picker input{width:auto;flex:1}.admin-month-workbench .admin-month-holidays{justify-content:center}.admin-month-workbench .admin-month-filters{grid-template-columns:1fr 1fr}.admin-month-workbench .admin-month-filters>label:first-child{grid-column:1/-1}.admin-month-workbench .admin-month-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-month-workbench .admin-list-kpi{border-right:1px solid #e3e9ef;border-bottom:1px solid #e3e9ef}.admin-month-workbench .admin-list-kpi:nth-child(2n){border-right:0}.admin-month-workbench .admin-list-kpi:last-child{grid-column:1/-1;border-right:0;border-bottom:0}}
@media(max-width:460px){.admin-month-workbench-controls{padding-inline:12px}.admin-month-period-actions,.admin-month-workbench .admin-month-filters{grid-template-columns:1fr}.admin-month-workbench .admin-month-picker,.admin-month-workbench .admin-month-filters>label:first-child{grid-column:1}.admin-month-workbench .admin-month-inactive{justify-content:flex-start}.admin-month-area-options{width:100%}.admin-month-workbench .admin-list-kpi{padding-inline:13px}.admin-month-workbench .admin-list-kpi b{font-size:22px!important}}

/* Los indicadores comparten la cabecera para devolver altura útil al libro. */
.admin-month-workbench-head{grid-template-columns:minmax(250px,.85fr) minmax(470px,1.25fr) auto;min-height:92px;display:grid;align-items:center;gap:18px;padding-block:14px}.admin-month-heading{min-width:0}.admin-month-workbench-head .admin-month-kpis{min-width:0;display:grid;grid-template-columns:repeat(5,minmax(76px,1fr));align-self:stretch;gap:0;background:transparent}.admin-month-workbench-head .admin-list-kpi{min-height:56px;display:grid;align-content:center;justify-items:start;padding:0 13px;border:0;border-radius:0;background:transparent}.admin-month-workbench .admin-month-workbench-head .admin-list-kpi:last-child{grid-column:auto;border:0}.admin-month-workbench-head .admin-list-kpi+article{border-left:1px solid rgba(255,255,255,.16)!important}.admin-month-workbench-head .admin-list-kpi small{color:#b9c9db;font-size:7px!important;line-height:1.25;letter-spacing:.06em}.admin-month-workbench-head .admin-list-kpi b{margin-top:4px;color:#fff;font-size:20px!important;line-height:1;font-variant-numeric:tabular-nums}.admin-month-workbench-head .admin-list-kpi.ready b{color:#7fe0c7}.admin-month-workbench-head .admin-list-kpi.warning b{color:#ffd28a}.admin-month-workbench-head .admin-list-kpi.danger b{color:#ff9db0}
.admin-month-workbench-head .admin-month-kpis{gap:6px}.portal .admin-month-workbench .admin-month-workbench-head .admin-list-kpi,.portal[data-time-phase] .admin-month-workbench .admin-month-workbench-head .admin-list-kpi{justify-items:center;padding-inline:10px;border:1px solid #315b87;border-radius:10px;background:#173d69;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;text-align:center}.portal .admin-month-workbench .admin-month-workbench-head .admin-list-kpi+article,.portal[data-time-phase] .admin-month-workbench .admin-month-workbench-head .admin-list-kpi+article{border-left:1px solid #315b87!important}.portal .admin-month-workbench .admin-month-workbench-head .admin-list-kpi small,.portal[data-time-phase] .admin-month-workbench .admin-month-workbench-head .admin-list-kpi small{color:#c5d5e6}.portal .admin-month-workbench .admin-month-workbench-head .admin-list-kpi b,.portal[data-time-phase] .admin-month-workbench .admin-month-workbench-head .admin-list-kpi b{color:#fff}.portal .admin-month-workbench .admin-month-workbench-head .admin-list-kpi.ready b,.portal[data-time-phase] .admin-month-workbench .admin-month-workbench-head .admin-list-kpi.ready b{color:#83e7cd}.portal .admin-month-workbench .admin-month-workbench-head .admin-list-kpi.warning b,.portal[data-time-phase] .admin-month-workbench .admin-month-workbench-head .admin-list-kpi.warning b{color:#ffd38b}.portal .admin-month-workbench .admin-month-workbench-head .admin-list-kpi.danger b,.portal[data-time-phase] .admin-month-workbench .admin-month-workbench-head .admin-list-kpi.danger b{color:#ff9fb2}
@media(max-width:1000px){.admin-month-workbench-head{grid-template-columns:minmax(0,1fr) auto;gap:12px 18px}.admin-month-heading{grid-column:1;grid-row:1}.admin-month-workbench-head .admin-month-kpis{grid-column:1/-1;grid-row:2}.admin-month-workbench-head .admin-month-export{grid-column:2;grid-row:1;width:auto;justify-content:center}.admin-month-workbench-head .admin-list-kpi:first-child{padding-left:10px}}
@media(max-width:520px){.admin-month-workbench-head{padding:14px;gap:12px}.admin-month-heading p{display:none}.admin-month-workbench-head .admin-month-export{width:44px;padding:0}.admin-month-workbench-head .admin-month-export span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.admin-month-workbench-head .admin-month-kpis{grid-template-columns:repeat(5,minmax(58px,1fr))}.admin-month-workbench-head .admin-list-kpi{min-height:48px;padding:0 6px}.admin-month-workbench-head .admin-list-kpi small{font-size:6px!important}.admin-month-workbench-head .admin-list-kpi b{font-size:17px!important}}

/* La grilla se comporta como un libro operativo: cabecera y nombres fijos. */
.admin-month-ledger{position:relative;max-width:100%;max-height:630px;overflow:auto;border:1px solid rgba(11,35,71,.12);border-radius:16px;background:#fff;box-shadow:0 12px 30px rgba(15,36,66,.045);scrollbar-color:#a8b5c4 transparent;scrollbar-width:thin}
.admin-month-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;background:#fff}
.admin-month-table th,.admin-month-table td{padding:0;border-right:1px solid rgba(11,35,71,.075);border-bottom:1px solid rgba(11,35,71,.075)}.admin-month-table tr:last-child>*{border-bottom:0}.admin-month-table tr>*:last-child{border-right:0}
.admin-month-table thead th{position:sticky;z-index:3;top:0;height:48px;background:rgba(255,255,255,.97);backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(11,35,71,.08)}
.admin-month-table .person-col{position:sticky;z-index:2;left:0;width:220px;min-width:220px;background:#fff}.admin-month-table thead .person-col{z-index:5;padding:0 15px;color:#7e8a9b;font-size:7px;letter-spacing:.08em;text-align:left;text-transform:uppercase}
.admin-month-table tbody .person-col{height:55px;padding:7px 11px;text-align:left;vertical-align:middle;box-shadow:1px 0 0 rgba(11,35,71,.08)}.admin-month-table tbody .person-col .avatar{width:32px;height:32px;display:inline-grid;margin-right:7px;border-radius:9px;font-size:8px;vertical-align:middle}.admin-month-table tbody .person-col>span:last-child{display:inline-block;max-width:158px;vertical-align:middle}.admin-month-table tbody .person-col b,.admin-month-table tbody .person-col small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-month-table tbody .person-col b{color:#2a3d55;font-size:8px}.admin-month-table tbody .person-col small{margin-top:2px;color:#929cab;font-size:6px;font-weight:500}
.admin-month-table .day-col{width:39px;min-width:39px;text-align:center}.admin-month-table .day-col span,.admin-month-table .day-col b{display:block}.admin-month-table .day-col span{color:#929dab;font-size:6px}.admin-month-table .day-col b{margin-top:2px;color:#43546b;font-size:9px}.admin-month-table .day-col.today:after{content:"";position:absolute;right:8px;bottom:0;left:8px;height:3px;border-radius:3px 3px 0 0;background:var(--navy)}.admin-month-table .day-col.holiday i{position:absolute;top:8px;right:7px;width:4px;height:4px;border-radius:50%;background:#d79522}
.admin-month-area-row td{height:31px;padding:0 12px;color:#65758a;background:#f7f9fb;font-size:7px;letter-spacing:.04em;text-transform:uppercase}.admin-month-area-row i{display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:2px;background:var(--navy)}.admin-month-area-row b{color:#33475f}.admin-month-area-row span{margin-left:6px;color:#929dab}
.admin-month-table td{width:39px;min-width:39px;height:55px;background:#fff;text-align:center}.admin-month-cell{position:relative;width:100%;height:54px;display:grid;place-items:center;padding:0;border:0;color:#8a96a6;background:#fff}.admin-month-cell:hover{z-index:1;background:#f5f8fb;box-shadow:inset 0 0 0 2px rgba(0,79,176,.25)}.admin-month-cell:focus-visible{z-index:2;outline:3px solid rgba(0,79,176,.27);outline-offset:-3px}.admin-month-cell b{min-width:23px;height:23px;display:grid;place-items:center;border-radius:7px;font-size:7px}.admin-month-cell.empty b{color:#a4aeba}.admin-month-cell.p b{color:#08765d;background:#e5f7f1}.admin-month-cell.t b{color:#936000;background:#fff0d7}.admin-month-cell.j b{color:#285f9f;background:#e8f1fb}.admin-month-cell.ng b{color:#a03649;background:#ffe9ed}.admin-month-cell.off,.admin-month-cell.pre{color:#b5bdc7;background:#fafbfc}.admin-month-cell.holiday{color:#aa781f;background:#fffbf2}.admin-month-cell.future{opacity:.52}.admin-month-cell.has-evidence:after{content:"";position:absolute;right:5px;bottom:5px;width:5px;height:5px;border-radius:50%;background:var(--blue)}.admin-month-cell.exception:before{content:"";position:absolute;top:5px;left:5px;width:4px;height:4px;border-radius:50%;background:#8a61a9}.admin-month-cell .note,.admin-month-cell .camera{display:none}
.admin-month-empty{height:100px!important;color:#8a96a6;font-size:8px;text-align:center!important}
.admin-month-legend{display:flex;align-items:center;flex-wrap:wrap;gap:13px;padding:11px 14px;border:1px solid rgba(11,35,71,.1);border-radius:12px;color:#738196;background:#fff;font-size:7px}.admin-month-legend span{display:flex;align-items:center;gap:5px}.admin-month-legend i{min-width:19px;height:19px;display:grid;place-items:center;border-radius:6px;font-size:6px;font-style:normal;font-weight:800}.admin-month-legend i.p{color:#08765d;background:#e5f7f1}.admin-month-legend i.t{color:#936000;background:#fff0d7}.admin-month-legend i.j{color:#285f9f;background:#e8f1fb}.admin-month-legend i.ng{color:#a03649;background:#ffe9ed}.admin-month-legend i.off{background:#f4f5f7}.admin-month-legend i.holiday{background:#fff6df}.admin-month-legend small{margin-left:auto;color:#929dab;font-size:7px}

.admin-summary-hero{display:grid;grid-template-columns:1.15fr repeat(3,1fr);overflow:hidden;border:1px solid rgba(11,35,71,.12);border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(15,36,66,.045)}.admin-summary-hero article{min-height:105px;padding:19px;border-right:1px solid rgba(11,35,71,.09)}.admin-summary-hero article:last-child{border-right:0}.admin-summary-hero small,.admin-summary-hero b,.admin-summary-hero span{display:block}.admin-summary-hero small{color:#8794a5;font-size:7px;font-weight:800;letter-spacing:.08em}.admin-summary-hero b{margin-top:7px;color:var(--navy);font-size:25px;letter-spacing:-.04em}.admin-summary-hero span{margin-top:4px;color:#8793a3;font-size:7px}.admin-summary-hero article.primary{display:block;border-radius:0;background:var(--navy);box-shadow:none;transform:none}.admin-summary-hero article.primary small,.admin-summary-hero article.primary span{color:#a9bdd5}.admin-summary-hero article.primary b{color:#fff}.admin-summary-hero article.warning b{color:#a06300}
.admin-summary-table{overflow:auto;max-height:630px;border:1px solid rgba(11,35,71,.12);border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(15,36,66,.045)}
.admin-summary-head,.admin-summary-row{display:grid;grid-template-columns:minmax(205px,1.3fr) minmax(205px,1.05fr) 90px 82px 82px 105px;align-items:center;gap:12px;padding:0 17px}.admin-summary-head{min-height:39px;color:#929dab;background:#fafbfd;font-size:6px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;position:sticky;top:0;z-index:1}.admin-summary-row{min-height:75px;border-top:1px solid rgba(11,35,71,.075)}.admin-summary-row.inactive{opacity:.58;background:#fafbfc}.admin-summary-person{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:9px}.admin-summary-person .avatar{width:35px;height:35px;border-radius:10px;font-size:8px;font-style:normal}.admin-summary-person b,.admin-summary-person small,.admin-summary-row>span>b,.admin-summary-row>span>small{display:block}.admin-summary-person b{overflow:hidden;color:#2a3d55;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.admin-summary-person small,.admin-summary-row>span>small{margin-top:3px;color:#8a96a6;font-size:6px}.admin-summary-row>span>b{color:#40536a;font-size:9px}.admin-summary-states{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.admin-summary-states i{padding:5px 4px;border-radius:7px;font-size:6px;font-style:normal;text-align:center}.admin-summary-states i b{display:block;margin-top:1px;font-size:8px}.admin-summary-states .p{color:#08765d;background:#e5f7f1}.admin-summary-states .t{color:#936000;background:#fff0d7}.admin-summary-states .j{color:#285f9f;background:#e8f1fb}.admin-summary-states .ng{color:#a03649;background:#ffe9ed}.admin-summary-row .needs-review b{color:#a03649}.admin-summary-rate>i{display:block;height:5px;overflow:hidden;margin-top:6px;border-radius:5px;background:#e8ecf1}.admin-summary-rate>i u{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--cyan));text-decoration:none}

.admin-month-modal{z-index:360}.admin-month-sheet{position:relative;z-index:1;width:min(610px,100%);max-height:calc(100vh - 36px);overflow:auto;border-radius:21px;background:#f7f9fb;box-shadow:0 32px 100px rgba(2,18,41,.38)}.admin-month-modal-body{display:grid;gap:12px;padding:16px}.admin-month-modal .admin-editor-message{margin:0 16px 16px}
.month-day-facts{display:grid;grid-template-columns:1.5fr 1fr .7fr;gap:0;overflow:hidden;border:1px solid rgba(11,35,71,.11);border-radius:12px;background:#fff}.month-day-facts span{padding:13px;border-right:1px solid rgba(11,35,71,.08)}.month-day-facts span:last-child{border:0}.month-day-facts small,.month-day-facts b{display:block}.month-day-facts small{color:#929dab;font-size:6px;font-weight:800;letter-spacing:.07em}.month-day-facts b{margin-top:4px;color:#40536a;font-size:8px}.month-day-current{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px;border-radius:12px;color:#40536a;background:#fff}.month-day-current small,.month-day-current b{display:block}.month-day-current small{font-size:6px;letter-spacing:.08em}.month-day-current b{margin-top:3px;font-size:12px}.month-day-current>span:last-child{font-size:7px}.month-day-current.p{color:#08765d;background:#e5f7f1}.month-day-current.t{color:#936000;background:#fff0d7}.month-day-current.j{color:#285f9f;background:#e8f1fb}.month-day-current.ng{color:#a03649;background:#ffe9ed}.month-day-note{margin:0;padding:11px 12px;border-radius:10px;color:#65758a;background:#fff;font-size:8px}.month-modal-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.month-modal-actions>.admin-empty{width:100%}.month-state-picker{width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:12px;border:1px solid rgba(11,35,71,.11);border-radius:12px;background:#fff}.month-state-picker p{grid-column:1/-1;margin:0 0 3px;color:#718095;font-size:7px;font-weight:700}.month-state-picker button{height:48px;border:0;border-radius:9px;color:#53657b;background:#f4f6f8;font-size:8px;font-weight:800}.month-state-picker button small{display:block;margin-top:2px;font-size:5px;font-weight:600}.month-state-picker button.p:hover,.month-state-picker button.p.on{color:#08765d;background:#e5f7f1}.month-state-picker button.t:hover,.month-state-picker button.t.on{color:#936000;background:#fff0d7}.month-state-picker button.j:hover,.month-state-picker button.j.on{color:#285f9f;background:#e8f1fb}.month-state-picker button.ng:hover,.month-state-picker button.ng.on{color:#a03649;background:#ffe9ed}.admin-danger-action{height:36px;padding:0 13px;border:1px solid rgba(194,59,80,.25);border-radius:9px;color:#a03649;background:#fff;font-size:8px;font-weight:800}.admin-danger-action:hover{background:#fff4f6}
.month-holiday-form{display:grid;grid-template-columns:130px 1fr auto;align-items:end;gap:8px;padding:13px;border:1px solid rgba(11,35,71,.11);border-radius:12px;background:#fff}.month-holiday-form label{display:grid;gap:5px;color:#68778b;font-size:7px;font-weight:700}.month-holiday-form input{width:100%;height:36px;padding:0 9px;border:1px solid rgba(11,35,71,.14);border-radius:8px;outline:0;color:#35475f;background:#fff;font-size:8px}.month-holiday-list{display:grid;margin:0;padding:0;overflow:hidden;border:1px solid rgba(11,35,71,.11);border-radius:12px;background:#fff;list-style:none}.month-holiday-list li{min-height:51px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border-bottom:1px solid rgba(11,35,71,.08)}.month-holiday-list li:last-child{border:0}.month-holiday-list b,.month-holiday-list small{display:block}.month-holiday-list b{color:#40536a;font-size:8px}.month-holiday-list small{margin-top:2px;color:#8a96a6;font-size:7px}.month-holiday-list button{border:0;color:#a03649;background:transparent;font-size:7px;font-weight:800}.month-holiday-list .empty{justify-content:center;color:#8a96a6;font-size:7px}

@media(max-width:1100px){
  .admin-month-toolbar{align-items:flex-start;flex-direction:column}.admin-month-actions{width:100%;justify-content:flex-start}
  .admin-summary-head,.admin-summary-row{grid-template-columns:minmax(190px,1.2fr) minmax(190px,1fr) 80px 75px 75px 95px}
}
@media(max-width:850px){
  .admin-summary-hero{grid-template-columns:repeat(2,1fr)}.admin-summary-hero article:nth-child(2){border-right:0}.admin-summary-hero article:nth-child(-n+2){border-bottom:1px solid rgba(11,35,71,.09)}
  .admin-summary-head{display:none}.admin-summary-row{grid-template-columns:1.25fr 1fr 80px 80px;padding:13px}.admin-summary-person{grid-column:1/-1}.admin-summary-row>span:nth-child(4),.admin-summary-row>span:nth-child(5){display:none}
}
@media(max-width:650px){
  .admin-month-toolbar{padding:15px}.admin-month-actions{display:grid;grid-template-columns:1fr 1fr}.admin-month-picker{grid-column:1/-1;justify-content:space-between}.admin-month-picker input{flex:1}.admin-month-actions>.admin-primary-action,.admin-month-actions>.admin-secondary-action{width:100%}
  .admin-month-filters{display:grid;grid-template-columns:1fr 1fr}.admin-month-filters label:first-child{grid-column:1/-1}.admin-month-filters input[type="search"],.admin-month-filters select{width:100%;min-width:0}.admin-month-stamp{grid-column:1/-1;margin:0;padding:2px;text-align:right}
  .admin-month-table .person-col{width:180px;min-width:180px}.admin-month-ledger{max-height:68vh}.admin-month-legend small{width:100%;margin-left:0}
  .admin-summary-hero{grid-template-columns:1fr}.admin-summary-hero article,.admin-summary-hero article:nth-child(2){border-right:0;border-bottom:1px solid rgba(11,35,71,.09)}.admin-summary-hero article:last-child{border-bottom:0}
  .admin-summary-row{grid-template-columns:1fr}.admin-summary-row>span:nth-child(4),.admin-summary-row>span:nth-child(5){display:block}.admin-summary-states{margin-top:2px}
  .admin-month-modal{align-items:end;padding:0}.admin-month-sheet{max-height:94vh;border-radius:21px 21px 0 0}.month-day-facts{grid-template-columns:1fr}.month-day-facts span{border-right:0;border-bottom:1px solid rgba(11,35,71,.08)}.month-state-picker{grid-template-columns:repeat(2,1fr)}.month-holiday-form{grid-template-columns:1fr}.month-holiday-form button{width:100%}
}
@media(prefers-reduced-motion:reduce){.admin-month-cell,.admin-month-picker button,.admin-month-area-trigger,.admin-month-area-chevron{transition:none}}

/* Resumen mensual: lectura ejecutiva compacta y tabla prioritaria. */
.admin-summary-workbench{overflow:hidden;border:1px solid #d7e1ea;border-radius:16px;background:#fff}.admin-summary-workbench-head{min-height:104px;display:grid;grid-template-columns:minmax(250px,.8fr) minmax(510px,1.45fr) auto;align-items:center;gap:20px;padding:15px 20px;color:#fff;background:#0b2a54}.admin-summary-heading{min-width:0}.admin-summary-heading h2,.admin-summary-heading p{margin:0}.admin-summary-heading h2{font-size:21px;letter-spacing:-.025em}.admin-summary-heading p{max-width:43ch;margin-top:5px;color:#c8d8ea;font-size:10px;line-height:1.45}.admin-summary-export{min-height:42px;display:flex;align-items:center;gap:8px;padding-inline:14px;color:#0b3f74;background:#fff;box-shadow:none}.admin-summary-export svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}
.admin-summary-workbench-head .admin-summary-hero{min-width:0;display:grid;grid-template-columns:repeat(4,minmax(105px,1fr));overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none}.admin-summary-workbench-head .admin-summary-hero article{min-height:60px;display:grid;align-content:center;padding:0 14px;border:0;border-left:1px solid rgba(255,255,255,.16);border-radius:0;background:transparent;box-shadow:none}.admin-summary-workbench-head .admin-summary-hero article:first-child{border-left:0}.admin-summary-workbench-head .admin-summary-hero small,.admin-summary-workbench-head .admin-summary-hero b,.admin-summary-workbench-head .admin-summary-hero span{display:block}.admin-summary-workbench-head .admin-summary-hero small{color:#bdcee1;font-size:7px!important;line-height:1.25;letter-spacing:.06em}.admin-summary-workbench-head .admin-summary-hero b{margin-top:4px;color:#fff;font-size:21px!important;line-height:1;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.admin-summary-workbench-head .admin-summary-hero span{margin-top:4px;overflow:hidden;color:#b8c9dd;font-size:8px!important;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.admin-summary-workbench-head .admin-summary-hero article.primary b{color:#83e7cd}.admin-summary-workbench-head .admin-summary-hero article.warning b{color:#ffd38b}
.portal .admin-summary-workbench .admin-summary-workbench-head .admin-summary-hero article,.portal[data-time-phase] .admin-summary-workbench .admin-summary-workbench-head .admin-summary-hero article{border-color:rgba(255,255,255,.16);border-radius:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}.portal .admin-summary-workbench .admin-summary-workbench-head .admin-summary-hero article.primary,.portal[data-time-phase] .admin-summary-workbench .admin-summary-workbench-head .admin-summary-hero article.primary{background:transparent}
.admin-summary-workbench-controls{display:grid;grid-template-columns:max-content minmax(420px,1fr);align-items:center;gap:18px;padding:12px 16px;border-bottom:1px solid #e3e9ef;background:#f7f9fb}.admin-summary-period{display:flex;align-items:center;gap:7px}.admin-summary-workbench .admin-month-picker{min-height:42px;padding:3px;border-color:#ccd8e4;border-radius:10px}.admin-summary-workbench .admin-month-picker button{width:34px;height:34px;display:grid;place-items:center;padding:0}.admin-summary-workbench .admin-month-picker input{width:150px;height:34px;padding:0 7px;font-size:11px;font-weight:800}.admin-summary-workbench .admin-summary-filters{display:grid;grid-template-columns:minmax(190px,1fr) minmax(160px,.7fr) auto;align-items:center;gap:8px;padding:0;border:0;border-radius:0;background:transparent}.admin-summary-workbench .admin-summary-filters input[type="search"],.admin-summary-workbench .admin-summary-filters select{width:100%;height:42px;min-width:0;padding-inline:11px;border-color:#ccd8e4;border-radius:9px;background:#fff;font-size:10px!important}.admin-summary-workbench .admin-summary-filters .admin-toggle{min-height:42px;margin:0;padding-inline:11px;border:1px solid #ccd8e4;border-radius:9px;background:#fff;white-space:nowrap}.admin-summary-workbench button:focus-visible,.admin-summary-workbench input:focus-visible,.admin-summary-workbench select:focus-visible{position:relative;z-index:2;outline:3px solid #46a9d1;outline-offset:2px}
.admin-summary-section .admin-summary-table{max-height:clamp(360px,calc(100dvh - 330px),680px)}.admin-summary-section .admin-summary-head,.admin-summary-section .admin-summary-row{grid-template-columns:minmax(205px,1.3fr) minmax(250px,1.1fr) 82px 78px 82px 104px;gap:10px;padding-inline:14px}.admin-summary-section .admin-summary-head{min-height:38px}.admin-summary-section .admin-summary-row{min-height:70px}.admin-summary-section .admin-summary-person{grid-template-columns:36px minmax(0,1fr);gap:9px}.admin-summary-section .admin-summary-person .avatar{width:36px;height:36px;font-size:10px}.admin-summary-section .admin-summary-person b{font-size:12px}.admin-summary-section .admin-summary-person small,.admin-summary-section .admin-summary-row>span>small{font-size:9px}.admin-summary-section .admin-summary-row>span>b{font-size:11px}.admin-summary-section .admin-summary-states{grid-template-columns:repeat(5,minmax(38px,1fr));gap:4px}.admin-summary-section .admin-summary-states i{min-height:38px;display:grid;align-content:center;padding:4px;font-size:9px!important}.admin-summary-section .admin-summary-states i b{font-size:10px!important}
@media(max-width:1180px){.admin-summary-workbench-head{grid-template-columns:minmax(0,1fr) auto;gap:12px 18px}.admin-summary-heading{grid-column:1;grid-row:1}.admin-summary-workbench-head .admin-summary-hero{grid-column:1/-1;grid-row:2}.admin-summary-workbench-head .admin-summary-export{grid-column:2;grid-row:1}.admin-summary-workbench-controls{grid-template-columns:1fr}.admin-summary-period{justify-content:flex-start}}
@media(max-width:850px){.admin-summary-section .admin-summary-head,.admin-summary-section .admin-summary-row{grid-template-columns:1.25fr 1fr 80px 80px}.admin-summary-section .admin-summary-table{max-height:68vh}}
@media(max-width:680px){.admin-summary-workbench-head{padding:16px}.admin-summary-heading p{display:none}.admin-summary-workbench-head .admin-summary-hero{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-summary-workbench-head .admin-summary-hero article{min-height:54px}.admin-summary-workbench-head .admin-summary-hero article:nth-child(odd){border-left:0}.admin-summary-workbench-head .admin-summary-hero article:nth-child(n+3){border-top:1px solid rgba(255,255,255,.16)}.admin-summary-workbench-controls{padding:12px}.admin-summary-period{display:grid;grid-template-columns:minmax(0,1fr) auto}.admin-summary-workbench .admin-month-picker{justify-content:space-between}.admin-summary-workbench .admin-month-picker input{width:auto;min-width:0;flex:1}.admin-summary-workbench .admin-summary-filters{grid-template-columns:1fr 1fr}.admin-summary-workbench .admin-summary-filters>label:first-child{grid-column:1/-1}.admin-summary-workbench .admin-summary-filters .admin-toggle{justify-content:flex-start}}
@media(max-width:460px){.admin-summary-workbench-head{grid-template-columns:minmax(0,1fr) auto;padding:14px}.admin-summary-workbench-head .admin-summary-export{width:44px;padding:0;justify-content:center}.admin-summary-workbench-head .admin-summary-export span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.admin-summary-workbench-head .admin-summary-hero article{padding-inline:8px}.admin-summary-workbench .admin-summary-filters{grid-template-columns:1fr}.admin-summary-workbench .admin-summary-filters>label:first-child{grid-column:1}.admin-summary-section .admin-summary-row{grid-template-columns:1fr}}

/* ── Fase 5 · Centro de acceso y marcado propio ───────────────────── */
.admin-access-section{display:grid;gap:14px;min-width:0}.admin-access-section[hidden]{display:none}
.admin-access-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;border:1px solid rgba(11,35,71,.12);border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(15,36,66,.045)}.admin-access-toolbar h2,.admin-access-toolbar p{margin:0}.admin-access-toolbar h2{margin-top:3px;color:var(--navy);font-size:17px}.admin-access-toolbar>div>p:last-child{margin-top:5px;color:#748296;font-size:8px}
.admin-access-health{display:flex;align-items:center;gap:8px;padding:8px 11px;border-radius:30px;color:#627287;background:#f4f6f8;font-size:7px;font-weight:800}.admin-access-health i{width:7px;height:7px;border-radius:50%;background:#8e9aaa}.admin-access-health.ready{color:#08765d;background:#e6f7f1}.admin-access-health.ready i{background:#1aa57e}.admin-access-health.warning{color:#966100;background:#fff1d8}.admin-access-health.warning i{background:#d79320}
.admin-access-message{display:none;padding:11px 13px;border-radius:10px;color:#285f9f;background:#eaf3fc;font-size:8px}.admin-access-message.show{display:block}.admin-access-message.bad{color:#a03649;background:#fff0f3}
.admin-access-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr);gap:14px}.admin-route-card,.admin-policy-card,.admin-access-requests,.admin-access-directory,.admin-access-audit{border:1px solid rgba(11,35,71,.12);border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(15,36,66,.045)}
.admin-route-card{padding:19px}.admin-route-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:15px}.admin-route-card>header small,.admin-route-card>header h3{display:block;margin:0}.admin-route-card>header small,.admin-policy-card>header>small{color:#168c98;font-size:7px;font-weight:800;letter-spacing:.13em}.admin-route-card>header h3,.admin-policy-card h3{margin-top:3px;color:var(--navy);font-size:13px}.admin-route-badge{padding:6px 9px;border-radius:20px;color:#08765d;background:#e6f7f1;font-size:6px;font-weight:800}
.admin-route-flow{display:grid;grid-template-columns:1fr 72px 1fr;align-items:stretch}.admin-route-step{position:relative;min-width:0;padding:16px;border-radius:13px;background:#f7f9fb}.admin-route-step.primary-route{color:#fff;background:linear-gradient(145deg,#071a36,#0b346c)}.admin-route-step.activation-route.disabled{opacity:.58}.route-number{position:absolute;top:12px;right:13px;color:rgba(255,255,255,.25);font-size:19px;font-weight:800}.activation-route .route-number{color:rgba(11,35,71,.17)}.admin-route-step small{color:#7b8ea6;font-size:6px;font-weight:800;letter-spacing:.09em}.primary-route small{color:#7dd3d8}.admin-route-step h4{margin:4px 0 3px;color:var(--navy);font-size:13px}.primary-route h4{color:#fff}.admin-route-step p{min-height:35px;margin:0 0 12px;color:#778599;font-size:7px;line-height:1.5}.primary-route p{color:#b8cae0}
.admin-route-link{height:34px;display:grid;grid-template-columns:minmax(0,1fr) auto;overflow:hidden;border-radius:8px;background:#fff}.admin-route-link input{min-width:0;padding:0 9px;border:0;outline:0;color:#53657b;background:transparent;font-size:6px}.admin-route-link button{padding:0 10px;border:0;color:#fff;background:var(--blue);font-size:6px;font-weight:800}.admin-route-link button:hover{background:#0752aa}.admin-route-connector{display:grid;align-content:center;justify-items:center;gap:7px;color:#8a96a6;text-align:center}.admin-route-connector i{position:relative;width:45px;height:1px;background:rgba(11,35,71,.16)}.admin-route-connector i:after{content:"";position:absolute;top:-3px;right:0;width:6px;height:6px;border-top:1px solid rgba(11,35,71,.35);border-right:1px solid rgba(11,35,71,.35);transform:rotate(45deg)}.admin-route-connector b{max-width:62px;font-size:5px;font-weight:700;line-height:1.4}
.admin-qr-block{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:15px;margin-top:14px;padding:13px;border:1px solid rgba(11,35,71,.09);border-radius:12px}.admin-qr-canvas{width:106px;height:106px;display:grid;place-items:center;overflow:hidden;border-radius:9px;background:#f5f7f9}.admin-qr-canvas canvas{width:98px!important;height:98px!important}.admin-qr-canvas span{padding:9px;color:#8a96a6;font-size:6px;text-align:center}.admin-qr-block>div:last-child small,.admin-qr-block>div:last-child b{display:block}.admin-qr-block>div:last-child small{color:#168c98;font-size:6px;font-weight:800;letter-spacing:.09em}.admin-qr-block>div:last-child b{margin-top:3px;color:#34475f;font-size:9px}.admin-qr-block>div:last-child p{margin:4px 0 8px;color:#7f8c9d;font-size:7px;line-height:1.5}.admin-qr-block button{padding:0;border:0;color:var(--blue);background:transparent;font-size:7px;font-weight:800}
.admin-policy-card{overflow:hidden}.admin-policy-card>header{padding:18px 18px 14px}.admin-policy-card>header h3,.admin-policy-card>header p{margin:0}.admin-policy-card>header p{margin-top:4px;color:#7f8c9d;font-size:7px;line-height:1.5}.admin-policy-card form{display:grid;border-top:1px solid rgba(11,35,71,.08);border-bottom:1px solid rgba(11,35,71,.08)}.admin-policy-number,.admin-policy-toggle{min-height:61px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:11px 17px;border-bottom:1px solid rgba(11,35,71,.075)}.admin-policy-number b,.admin-policy-number small,.admin-policy-toggle b,.admin-policy-toggle small{display:block}.admin-policy-number b,.admin-policy-toggle b{color:#40536a;font-size:8px}.admin-policy-number small,.admin-policy-toggle small{margin-top:2px;color:#8a96a6;font-size:6px}.admin-policy-number>span:last-child{display:flex;align-items:center;overflow:hidden;border:1px solid rgba(11,35,71,.13);border-radius:8px}.admin-policy-number input{width:54px;height:32px;padding:0 7px;border:0;outline:0;color:var(--navy);background:#fff;font-size:9px;font-weight:800}.admin-policy-number i{padding-right:8px;color:#8a96a6;font-size:6px;font-style:normal}.admin-policy-toggle{position:relative;cursor:pointer}.admin-policy-toggle input{position:absolute;opacity:0;pointer-events:none}.admin-policy-toggle>i{position:relative;width:35px;height:20px;flex:0 0 auto;border-radius:20px;background:#c9d1da}.admin-policy-toggle>i:after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(11,35,71,.2);transition:transform .18s}.admin-policy-toggle input:checked+i{background:#168c98}.admin-policy-toggle input:checked+i:after{transform:translateX(15px)}.admin-policy-toggle input:focus-visible+i{outline:3px solid rgba(0,79,176,.2)}.admin-policy-card form>.admin-primary-action{margin:12px 17px;height:38px}.admin-link-security{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 17px}.admin-link-security b,.admin-link-security small{display:block}.admin-link-security b{color:#40536a;font-size:8px}.admin-link-security small{margin-top:2px;color:#8a96a6;font-size:6px}.admin-link-security button{height:31px;padding:0 9px;border:1px solid rgba(194,59,80,.22);border-radius:8px;color:#a03649;background:#fff;font-size:6px;font-weight:800}.admin-policy-updated{display:block;padding:0 17px 15px;color:#9aa4b1;font-size:6px}
.admin-access-section-head{min-height:53px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;border-bottom:1px solid rgba(11,35,71,.085)}.admin-access-section-head h3,.admin-access-section-head p{margin:0}.admin-access-section-head h3{margin-top:2px;color:var(--navy);font-size:11px}.admin-access-section-head>span:last-child:not(:first-child){min-width:25px;height:25px;display:grid;place-items:center;border-radius:20px;color:#fff;background:var(--navy);font-size:7px;font-weight:800}.admin-access-requests.empty{opacity:.76}
.admin-access-request{display:grid;grid-template-columns:36px minmax(130px,.8fr) minmax(210px,1.2fr) auto;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid rgba(11,35,71,.075)}.admin-access-request:last-child{border-bottom:0}.admin-access-request .avatar{width:34px;height:34px;border-radius:10px;font-size:8px}.admin-access-request>span:nth-child(2) b,.admin-access-request>span:nth-child(2) small,.access-request-change small,.access-request-change b,.access-request-change em{display:block}.admin-access-request>span:nth-child(2) b{color:#2d4058;font-size:8px}.admin-access-request>span:nth-child(2) small{margin-top:2px;color:#8a96a6;font-size:6px}.access-request-change small{color:#929dab;font-size:5px;font-weight:800;letter-spacing:.08em}.access-request-change b{margin-top:2px;color:#40536a;font-size:8px}.access-request-change em{margin-top:2px;color:#8a96a6;font-size:6px;font-style:normal}.access-request-actions{display:flex;justify-content:flex-end;gap:5px}.access-request-actions button{height:29px;padding:0 8px;border:1px solid rgba(11,35,71,.13);border-radius:7px;color:#53657b;background:#fff;font-size:6px;font-weight:800}.access-request-actions button:nth-child(2){color:#fff;border-color:var(--blue);background:var(--blue)}.access-request-actions button.quiet{color:#9a6570}
.admin-access-filters{display:flex;gap:7px}.admin-access-filters input,.admin-access-filters select{height:33px;border:1px solid rgba(11,35,71,.13);border-radius:8px;outline:0;color:#40536a;background:#fff;font-size:7px}.admin-access-filters input{width:180px;padding:0 9px}.admin-access-filters select{min-width:130px;padding:0 24px 0 8px}.admin-access-list{display:grid}.admin-access-person{display:grid;grid-template-columns:36px minmax(170px,1fr) minmax(145px,.75fr) minmax(140px,.75fr) 84px;align-items:center;gap:11px;min-height:64px;padding:10px 16px;border-bottom:1px solid rgba(11,35,71,.075)}.admin-access-person:last-child{border:0}.admin-access-person .avatar{width:34px;height:34px;border-radius:10px;font-size:8px}.access-person-name b,.access-person-name small,.access-pin-state b,.access-pin-state small,.access-account-state b,.access-account-state small{display:block}.access-person-name b{overflow:hidden;color:#2d4058;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.access-person-name small,.access-pin-state small,.access-account-state small{margin-top:2px;color:#8a96a6;font-size:6px}.access-pin-state{display:flex;align-items:center;gap:8px}.access-pin-state>i{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:#c1c9d3}.access-pin-state b,.access-account-state b{color:#40536a;font-size:7px}.admin-access-person.ready .access-pin-state>i{background:#1aa57e}.admin-access-person.blocked .access-pin-state>i{background:#c23b50;box-shadow:0 0 0 4px rgba(194,59,80,.1)}.admin-access-person.missing .access-pin-state>i{background:#d79320}.access-person-action{text-align:right}.access-person-action button{height:29px;padding:0 8px;border:1px solid rgba(194,59,80,.2);border-radius:7px;color:#a03649;background:#fff;font-size:6px;font-weight:800}.access-person-action em{color:#a5aebb;font-size:8px;font-style:normal}
.admin-audit-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-audit-list article{display:grid;grid-template-columns:9px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:52px;padding:10px 14px;border-right:1px solid rgba(11,35,71,.075);border-bottom:1px solid rgba(11,35,71,.075)}.admin-audit-list article:nth-child(2n){border-right:0}.admin-audit-list article>i{width:8px;height:8px;border-radius:3px;background:#168c98}.admin-audit-list article>i.regenerar_enlace,.admin-audit-list article>i.reiniciar_pin{background:#d79320}.admin-audit-list b,.admin-audit-list small{display:block}.admin-audit-list b{color:#40536a;font-size:7px}.admin-audit-list small{margin-top:2px;color:#8a96a6;font-size:6px}.admin-audit-list time{color:#929dab;font-size:5px;text-align:right}

@media(max-width:1100px){.admin-access-layout{grid-template-columns:1fr}.admin-policy-card{display:grid;grid-template-columns:1fr 1.3fr}.admin-policy-card>header{border-right:1px solid rgba(11,35,71,.08)}.admin-policy-card form{border-top:0}.admin-link-security,.admin-policy-updated{grid-column:1/-1}.admin-access-person{grid-template-columns:34px minmax(160px,1fr) minmax(140px,.8fr) minmax(130px,.8fr) 80px}}
@media(max-width:820px){.admin-route-flow{grid-template-columns:1fr}.admin-route-connector{min-height:45px}.admin-route-connector i{width:1px;height:25px}.admin-route-connector i:after{top:auto;right:-3px;bottom:0;transform:rotate(135deg)}.admin-access-request{grid-template-columns:34px 1fr}.access-request-change,.access-request-actions{grid-column:2}.access-request-actions{justify-content:flex-start}.admin-access-person{grid-template-columns:34px 1fr auto}.access-account-state{display:none}.access-person-action{grid-column:3}.admin-audit-list{grid-template-columns:1fr}.admin-audit-list article,.admin-audit-list article:nth-child(2n){border-right:0}}
@media(max-width:620px){.admin-access-toolbar{align-items:flex-start;flex-direction:column}.admin-route-card{padding:14px}.admin-qr-block{grid-template-columns:92px 1fr}.admin-qr-canvas{width:88px;height:88px}.admin-qr-canvas canvas{width:82px!important;height:82px!important}.admin-policy-card{display:block}.admin-policy-card>header{border-right:0}.admin-access-section-head{align-items:flex-start;flex-direction:column}.admin-access-filters{width:100%;display:grid;grid-template-columns:1fr 1fr}.admin-access-filters input,.admin-access-filters select{width:100%;min-width:0}.admin-access-person{grid-template-columns:32px 1fr}.access-pin-state,.access-person-action{grid-column:2;text-align:left}.access-person-action button{width:100%}.admin-access-request{grid-template-columns:32px 1fr}.access-request-actions{display:grid;grid-template-columns:1fr 1fr}.access-request-actions button:first-child{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){.admin-policy-toggle>i:after{transition:none}}

/* ── Fase 6 · Roles y liderazgo por área ──────────────────────────── */
.side-nav-divider.personal{margin-top:0}
.admin-roles-section{display:grid;gap:14px;min-width:0}.admin-roles-section[hidden]{display:none}
.admin-roles-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 20px;border:1px solid rgba(11,35,71,.12);border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(15,36,66,.045)}.admin-roles-toolbar h2,.admin-roles-toolbar p{margin:0}.admin-roles-toolbar h2{margin-top:3px;color:var(--navy);font-size:17px}.admin-roles-toolbar>div>p:last-child{margin-top:5px;color:#748296;font-size:8px}.admin-roles-lock{display:flex;align-items:center;gap:8px;padding:8px 11px;border-radius:30px;color:#50647d;background:#f2f5f8;font-size:7px;font-weight:800;white-space:nowrap}.admin-roles-lock i{width:7px;height:7px;border-radius:50%;background:#168c98;box-shadow:0 0 0 4px rgba(22,140,152,.1)}
.admin-roles-message{display:none;padding:11px 13px;border-radius:10px;color:#285f9f;background:#eaf3fc;font-size:8px}.admin-roles-message.show{display:block}.admin-roles-message.bad{color:#a03649;background:#fff0f3}
.admin-role-map{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.admin-role-area{min-width:0;overflow:hidden;border:1px solid rgba(11,35,71,.12);border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(15,36,66,.045)}
.admin-role-area-head{min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 16px;border-bottom:1px solid rgba(11,35,71,.08)}.admin-role-area-head small,.admin-role-area-head h3{display:block;margin:0}.admin-role-area-head small{color:#168c98;font-size:6px;font-weight:800;letter-spacing:.13em}.admin-role-area-head h3{margin-top:3px;color:var(--navy);font-size:12px}.admin-role-area-count{padding:5px 8px;border-radius:20px;color:#66758a;background:#f2f5f8;font-size:6px;font-weight:800}
.admin-role-seat{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:11px;min-height:82px;padding:14px 16px;background:linear-gradient(105deg,#f8fafc,#fff)}.admin-role-seat-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;color:#fff;background:linear-gradient(145deg,#09244c,#075abc);box-shadow:0 8px 18px rgba(7,65,135,.16);font-size:9px;font-weight:800}.admin-role-area.vacant .admin-role-seat-mark{color:#8794a5;background:#e7ebf0;box-shadow:none}.admin-role-seat-copy{min-width:0}.admin-role-seat-copy small,.admin-role-seat-copy b,.admin-role-seat-copy em{display:block}.admin-role-seat-copy small{color:#8996a7;font-size:6px;font-weight:800;letter-spacing:.09em}.admin-role-seat-copy b{overflow:hidden;margin-top:3px;color:#2b3e56;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.admin-role-seat-copy em{margin-top:3px;color:#08765d;font-size:6px;font-style:normal}.admin-role-seat-copy em.warning{color:#a03649}.admin-role-seat-copy em.vacant{color:#8a96a6}.admin-role-seat>button{height:29px;padding:0 8px;border:1px solid rgba(194,59,80,.2);border-radius:8px;color:#a03649;background:#fff;font-size:6px;font-weight:800}.admin-role-seat>button:hover{background:#fff5f6}
.admin-role-assignment{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:9px;padding:13px 16px;border-top:1px solid rgba(11,35,71,.07)}.admin-role-assignment label{display:grid;gap:5px;color:#68778b;font-size:6px;font-weight:800}.admin-role-assignment select{width:100%;height:35px;padding:0 29px 0 9px;border:1px solid rgba(11,35,71,.14);border-radius:8px;outline:0;color:#35475f;background:#fff;font-size:7px}.admin-role-assignment select:focus{border-color:#7eaee1;box-shadow:0 0 0 3px rgba(7,90,188,.09)}.admin-role-assignment select:disabled{color:#9aa5b2;background:#f3f5f7}.admin-role-assignment>.admin-primary-action{height:35px;white-space:nowrap}.admin-role-area-foot{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px;color:#8995a5;background:#fafbfc;font-size:6px}.admin-role-area-foot span:first-child{display:flex;align-items:center;gap:6px}.admin-role-area-foot i{width:6px;height:6px;border-radius:50%;background:#1aa57e}.admin-role-area-foot .waiting{color:#9a6200}
.admin-role-colider-group{border-top:1px solid rgba(11,35,71,.09);background:#f8fafc}.admin-role-colider-toggle{width:100%;min-height:62px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:11px 16px;border:0;color:inherit;background:transparent;text-align:left;cursor:pointer}.admin-role-colider-toggle:hover{background:#f2f6fa}.admin-role-colider-toggle:focus-visible{position:relative;z-index:1;outline:3px solid rgba(7,90,188,.22);outline-offset:-3px}.admin-role-colider-summary,.admin-role-colider-summary b,.admin-role-colider-summary small{display:block;min-width:0}.admin-role-colider-summary b{color:#2b3e56;font-size:9px}.admin-role-colider-summary small{overflow:hidden;margin-top:3px;color:#7c899a;font-size:6px;text-overflow:ellipsis;white-space:nowrap}.admin-role-colider-toggle-meta{display:flex;align-items:center;gap:9px}.admin-role-colider-toggle-meta strong{flex:none;padding:5px 9px;border-radius:999px;color:#285f9f;background:#e8f1fb;font-size:6px}.admin-role-colider-toggle-meta em{color:#285f9f;font-size:7px;font-style:normal;font-weight:800}.admin-role-colider-toggle-meta svg{width:18px;height:18px;fill:none;stroke:#52657c;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;transition:transform .18s ease}.admin-role-colider-group.is-open .admin-role-colider-toggle-meta svg{transform:rotate(180deg)}.admin-role-colider-panel[hidden]{display:none}.admin-role-colider-panel{border-top:1px solid rgba(11,35,71,.07);background:#fff}.admin-role-colider-slot+ .admin-role-colider-slot{border-top:1px solid rgba(11,35,71,.07)}.admin-role-seat.is-colider{min-height:74px;background:rgba(255,255,255,.72)}.admin-role-seat.is-colider .admin-role-seat-mark{color:#285f9f;background:#e8f1fb;box-shadow:none}.admin-role-colider-slot.vacant .admin-role-seat-mark{color:#8794a5;background:#e7ebf0}.admin-role-assignment.is-colider{background:rgba(248,250,252,.76)}
.admin-roles-audit{overflow:hidden;border:1px solid rgba(11,35,71,.12);border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(15,36,66,.045)}.admin-role-audit-list{display:grid}.admin-role-audit-list article{display:grid;grid-template-columns:9px minmax(150px,1fr) minmax(150px,.8fr) auto;align-items:center;gap:10px;min-height:54px;padding:10px 15px;border-bottom:1px solid rgba(11,35,71,.075)}.admin-role-audit-list article:last-child{border-bottom:0}.admin-role-audit-list article>i{width:8px;height:8px;border-radius:3px;background:#168c98}.admin-role-audit-list article>i.reemplazar_lider{background:#075abc}.admin-role-audit-list article>i.retirar_lider{background:#c23b50}.admin-role-audit-list b,.admin-role-audit-list small{display:block}.admin-role-audit-list b{color:#40536a;font-size:7px}.admin-role-audit-list small{margin-top:2px;color:#8a96a6;font-size:6px}.admin-role-audit-change{overflow:hidden;color:#52657c;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.admin-role-audit-list time{color:#929dab;font-size:5px;text-align:right}
.admin-role-audit-list article>i.asignar_colider{background:#168c98}.admin-role-audit-list article>i.reemplazar_colider{background:#397fcc}.admin-role-audit-list article>i.retirar_colider{background:#c23b50}

@media(max-width:1050px){.admin-role-map{grid-template-columns:1fr}}
@media(max-width:700px){.admin-roles-toolbar{align-items:flex-start;flex-direction:column}.admin-role-assignment{grid-template-columns:1fr}.admin-role-assignment>.admin-primary-action{width:100%}.admin-role-audit-list article{grid-template-columns:9px 1fr}.admin-role-audit-change,.admin-role-audit-list time{grid-column:2;text-align:left}.admin-role-area-foot{align-items:flex-start;flex-direction:column}}
@media(max-width:480px){.admin-role-seat{grid-template-columns:38px 1fr}.admin-role-seat-mark{width:36px;height:36px}.admin-role-seat>button{grid-column:2;width:100%}.admin-role-colider-toggle{gap:10px;padding-inline:14px}.admin-role-colider-toggle-meta em{display:none}.admin-role-colider-summary small{max-width:58vw}}
@media(prefers-reduced-motion:reduce){.admin-role-colider-toggle-meta svg{transition:none}}

/* Consulta del equipo: perfil laboral y asistencia mensual, sin edición. */
.team-profile-modal[hidden]{display:none}.team-profile-sheet{position:relative;z-index:1;width:min(620px,100%);max-height:calc(100vh - 36px);overflow:auto;padding:25px;border-radius:22px;background:#fff;box-shadow:0 30px 90px rgba(0,18,45,.35)}.team-profile-head{display:grid;grid-template-columns:58px 1fr;align-items:center;gap:13px;padding-right:42px}.team-profile-avatar{width:56px;height:56px;display:grid;place-items:center;border-radius:17px;color:#fff;background:linear-gradient(145deg,var(--navy),var(--blue));font-size:13px;font-weight:800}.team-profile-head h2,.team-profile-head p{margin:0}.team-profile-head h2{color:var(--navy);font-size:19px}.team-profile-head>span:last-child>p:last-child{margin-top:3px;color:#7d8a9c;font-size:8px}.team-profile-body{display:grid;gap:14px;margin-top:20px}.team-profile-facts{display:grid;grid-template-columns:repeat(2,1fr);overflow:hidden;border:1px solid #e5eaf0;border-radius:13px}.team-profile-facts span{padding:12px 14px;border-right:1px solid #e8edf2;border-bottom:1px solid #e8edf2}.team-profile-facts span:nth-child(2n){border-right:0}.team-profile-facts span:nth-last-child(-n+2){border-bottom:0}.team-profile-facts small,.team-profile-facts b{display:block}.team-profile-facts small{color:#8a96a6;font-size:6px;font-weight:800;letter-spacing:.1em}.team-profile-facts b{margin-top:4px;color:#40536a;font-size:8px}.team-profile-month{padding:15px;border:1px solid #e5eaf0;border-radius:14px;background:#fbfcfd}.team-profile-month>header{display:flex;align-items:center;justify-content:space-between}.team-profile-month>header small,.team-profile-month>header b{display:block}.team-profile-month>header small{color:#168c98;font-size:6px;font-weight:800;letter-spacing:.1em}.team-profile-month>header b{margin-top:3px;color:var(--navy);font-size:11px}.team-profile-month>header strong{color:var(--blue);font-size:17px}.team-profile-stats{display:grid;grid-template-columns:repeat(4,1fr);margin:13px 0;padding:10px 0;border-top:1px solid #e8edf2;border-bottom:1px solid #e8edf2}.team-profile-stats span{text-align:center;border-right:1px solid #e8edf2}.team-profile-stats span:last-child{border:0}.team-profile-stats b,.team-profile-stats small{display:block}.team-profile-stats b{color:#30445d;font-size:12px}.team-profile-stats small{margin-top:2px;color:#8996a7;font-size:6px}.team-profile-week,.team-profile-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.team-profile-week span{padding:5px;color:#929dab;font-size:6px;font-weight:800;text-align:center}.team-profile-calendar span{min-height:35px;display:grid;place-items:center;border-radius:8px;color:#627287;background:#fff;font-size:7px}.team-profile-calendar span b{font-size:7px}.team-profile-calendar span i{height:11px;color:#fff;font-size:5px;font-style:normal}.team-profile-calendar span.empty{background:transparent}.team-profile-calendar span.off{opacity:.48}.team-profile-calendar span.p{color:#08765d;background:#e5f7f1}.team-profile-calendar span.t{color:#926000;background:#fff0d7}.team-profile-calendar span.j{color:#285f9f;background:#e8f1fb}.team-profile-calendar span.ng{color:#a03649;background:#ffe9ed}.team-profile-calendar span.p i,.team-profile-calendar span.t i,.team-profile-calendar span.j i,.team-profile-calendar span.ng i{color:inherit;font-weight:800}.team-profile-privacy{margin:13px 0 0;padding-top:12px;border-top:1px solid #edf0f4;color:#8995a5;font-size:7px}
@media(max-width:600px){.team-profile-sheet{width:100%;max-height:92vh;padding:23px 17px;border-radius:22px 22px 0 0}.team-profile-facts{grid-template-columns:1fr}.team-profile-facts span,.team-profile-facts span:nth-child(2n){border-right:0;border-bottom:1px solid #e8edf2}.team-profile-facts span:last-child{border-bottom:0}.team-profile-stats{grid-template-columns:repeat(2,1fr);gap:9px}.team-profile-stats span:nth-child(2){border-right:0}}

/* ── Escala de lectura responsiva · administración ──────────────────
   La interfaz conserva densidad, pero nunca comprime el texto para caber. */
.admin-view{
  --admin-caption:clamp(10px,.14vw + 8px,12px);
  --admin-small:clamp(11px,.16vw + 9px,13px);
  --admin-body:clamp(12px,.18vw + 9px,14px);
  --admin-title:clamp(18px,.35vw + 14px,22px);
  font-size:var(--admin-body);
  line-height:1.5;
}
.side-nav-divider{font-size:9px}.side-nav button{font-size:12px}.side-user b{font-size:11px}.side-user small{font-size:10px}
.admin-view .eyebrow{font-size:var(--admin-caption)!important;line-height:1.35;letter-spacing:.14em}
.admin-view small{font-size:var(--admin-caption)!important;line-height:1.45}
.admin-view p,.admin-view em{font-size:var(--admin-small)!important;line-height:1.55}
.admin-view button,.admin-view input,.admin-view select,.admin-view a,.admin-view label{font-size:var(--admin-small)!important}
.admin-view input,.admin-view select{min-height:40px}
.admin-view-head h1{font-size:clamp(29px,2.1vw,38px)}
.admin-view-head>div>p:last-child{max-width:760px;font-size:var(--admin-body)!important}
.admin-role-chip,.admin-refresh{font-size:var(--admin-small)!important}.admin-refresh{height:42px;padding:0 15px}
.admin-section-nav{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}
.admin-section-nav button,.admin-section-nav a{min-height:42px;padding:0 16px;font-size:var(--admin-small)!important;white-space:nowrap}

/* Resumen y herramientas. */
.admin-kpi{min-height:112px;padding:20px}.admin-kpi b{font-size:32px!important}.admin-kpi span{font-size:var(--admin-small)!important}
.admin-panel-head{min-height:82px;padding:18px 20px}.admin-panel-head h2{font-size:var(--admin-title)}
.admin-panel-head button,.admin-panel-head a,.admin-panel-foot{font-size:var(--admin-small)!important}
.admin-status-row{min-height:62px;grid-template-columns:42px minmax(175px,1fr) minmax(125px,.65fr) 110px}.admin-status-row .avatar{width:38px;height:38px;font-size:11px}.admin-status-row strong,.admin-request b{font-size:var(--admin-body)}.admin-status-time,.admin-request p{font-size:var(--admin-small)!important}.admin-status-pill,.admin-count{font-size:var(--admin-caption)!important}
.admin-empty{font-size:var(--admin-small)!important;line-height:1.6}
.admin-module{min-height:94px;grid-template-columns:48px 1fr 20px;padding:16px}.admin-module-icon{width:46px;height:46px}.admin-module span:nth-child(2) b{font-size:var(--admin-body)}.admin-module span:nth-child(2) small{font-size:var(--admin-caption)!important}

/* Controles, indicadores, listas y fichas. */
.admin-date-control input,.admin-list-filters input,.admin-list-filters select,.admin-team-actions input[type="search"],.admin-team-actions select,.admin-month-filters input[type="search"],.admin-month-filters select,.admin-access-filters input,.admin-access-filters select{height:42px;font-size:var(--admin-small)!important}
.admin-date-control button,.admin-primary-action,.admin-secondary-action,.admin-toggle{min-height:40px;font-size:var(--admin-small)!important}
.admin-list-kpi{min-height:84px;padding:16px}.admin-list-kpi b{font-size:26px!important}.admin-list-kpi small{font-size:var(--admin-caption)!important}
.admin-list-message,.admin-editor-message,.admin-access-message,.admin-roles-message{font-size:var(--admin-small)!important;line-height:1.55}
.admin-area-head,.admin-people-group>header{min-height:54px}.admin-area-head b,.admin-people-group>header b{font-size:var(--admin-body)}
.admin-roster-row{min-height:68px;grid-template-columns:42px minmax(185px,1.2fr) minmax(120px,.7fr) 115px minmax(260px,1.1fr)}.admin-roster-row .avatar{width:38px;height:38px;font-size:11px}.admin-person b,.admin-shift b,.admin-current-state{font-size:var(--admin-small)}.admin-evidence-button,.admin-state-btn,.admin-list-legend,.admin-legacy-link{font-size:var(--admin-caption)!important}
.admin-team-toolbar h2,.admin-month-toolbar h2,.admin-access-toolbar h2,.admin-roles-toolbar h2{font-size:var(--admin-title)}
.admin-person-card-head>span:nth-child(2) b,.admin-contract-person b,.admin-summary-person b{font-size:var(--admin-body)}
.admin-person-card-head button,.admin-contract-action button,.admin-identity-line,.admin-person-contract b,.admin-contract-progress b,.admin-contract-week b,.admin-contract-date b,.admin-contract-status>b{font-size:var(--admin-caption)!important}
.admin-day-chip{min-height:68px}.admin-day-chip b,.admin-day-chip i,.admin-day-chip small{font-size:var(--admin-caption)!important}
.admin-contract-head,.admin-summary-head,.admin-schedule-head{font-size:var(--admin-caption)!important}.admin-contract-row{min-height:104px}.admin-contract-person .avatar,.admin-summary-person .avatar{width:40px;height:40px;font-size:11px}
.admin-field,.admin-editor-label span,.admin-history-list time,.admin-history-list b,.admin-history-list small{font-size:var(--admin-caption)!important}.admin-field input,.admin-field select,.admin-area-create input,.admin-schedule-row select,.admin-schedule-row input{min-height:42px;font-size:var(--admin-small)!important}

/* Libro mensual: gana legibilidad mediante scroll horizontal. */
.admin-month-stamp,.admin-month-empty,.admin-month-legend{font-size:var(--admin-caption)!important}
.admin-month-table .person-col{width:260px;min-width:260px}.admin-month-table thead .person-col{font-size:var(--admin-caption)!important}.admin-month-table tbody .person-col{height:66px}.admin-month-table tbody .person-col>span:last-child{max-width:190px}.admin-month-table tbody .person-col b{font-size:var(--admin-small)!important}
.admin-month-table .day-col{width:46px;min-width:46px}.admin-month-table .day-col span,.admin-month-area-row{font-size:var(--admin-caption)!important}.admin-month-table .day-col b{font-size:var(--admin-small)!important}.admin-month-table td{width:46px;min-width:46px;height:66px}.admin-month-cell{height:65px}.admin-month-cell b{min-width:29px;height:29px;font-size:var(--admin-caption)!important}.admin-month-legend i{font-size:var(--admin-caption)!important}
.admin-summary-hero article{min-height:126px}.admin-summary-hero b{font-size:30px!important}.admin-summary-hero span{font-size:var(--admin-small)!important}.admin-summary-row{min-height:88px}.admin-summary-row>span>b,.admin-summary-states i,.admin-summary-states i b{font-size:var(--admin-caption)!important}

/* Marcado propio: contenido principal de la captura reportada. */
.admin-access-toolbar{min-height:102px;padding:22px 24px}.admin-access-health{font-size:var(--admin-caption)!important}
.admin-route-card{padding:22px}.admin-route-card>header h3,.admin-policy-card h3{font-size:17px}.admin-route-badge{font-size:var(--admin-caption)!important}
.admin-route-step{min-height:190px;padding:20px}.route-number{font-size:26px}.admin-route-step h4{font-size:18px}.admin-route-step p{min-height:52px;font-size:var(--admin-small)!important}.admin-route-link{height:43px}.admin-route-link input,.admin-route-link button{font-size:var(--admin-caption)!important}.admin-route-connector b{max-width:86px;font-size:10px}
.admin-qr-block{grid-template-columns:126px 1fr;padding:17px}.admin-qr-canvas{width:120px;height:120px}.admin-qr-block>div:last-child b{font-size:var(--admin-body)}.admin-qr-block>div:last-child button{font-size:var(--admin-small)!important}
.admin-policy-card>header{padding:21px}.admin-policy-number,.admin-policy-toggle{min-height:78px;padding:15px 20px}.admin-policy-number b,.admin-policy-toggle b,.admin-link-security b{font-size:var(--admin-body)}.admin-policy-number input{height:40px;font-size:var(--admin-body)!important}.admin-policy-card form>.admin-primary-action{height:44px}.admin-link-security{padding:17px 20px}.admin-link-security button{height:38px}.admin-policy-updated{font-size:var(--admin-caption)!important}
.admin-access-section-head{min-height:68px;padding:15px 19px}.admin-access-section-head h3{font-size:16px}.admin-access-section-head>span:last-child:not(:first-child){min-width:32px;height:32px;font-size:var(--admin-caption)!important}
.admin-access-request{min-height:80px;grid-template-columns:42px minmax(165px,.8fr) minmax(240px,1.2fr) auto;padding:14px 19px}.admin-access-request .avatar,.admin-access-person .avatar{width:40px;height:40px;font-size:11px}.admin-access-request>span:nth-child(2) b,.access-request-change b,.access-person-name b,.access-pin-state b,.access-account-state b{font-size:var(--admin-small)}.access-request-actions button,.access-person-action button{min-height:36px;font-size:var(--admin-caption)!important}
.admin-access-person{min-height:82px;grid-template-columns:42px minmax(190px,1fr) minmax(165px,.75fr) minmax(155px,.75fr) 105px;padding:13px 19px}.admin-audit-list article{min-height:68px}.admin-audit-list b,.admin-audit-list time{font-size:var(--admin-caption)!important}

/* Roles y equipos. */
.admin-roles-toolbar{min-height:102px;padding:22px 24px}.admin-roles-lock{font-size:var(--admin-caption)!important}.admin-role-area-head{min-height:72px;padding:16px 19px}.admin-role-area-head h3{font-size:16px}.admin-role-area-count{font-size:var(--admin-caption)!important}.admin-role-seat{min-height:106px;grid-template-columns:50px minmax(0,1fr) auto;padding:17px 19px}.admin-role-seat.is-colider{min-height:92px}.admin-role-seat-mark{width:48px;height:48px;font-size:12px}.admin-role-seat-copy b,.admin-role-colider-summary b{font-size:var(--admin-body)}.admin-role-colider-summary small,.admin-role-colider-toggle-meta strong,.admin-role-colider-toggle-meta em{font-size:var(--admin-caption)!important}.admin-role-seat>button{min-height:38px;font-size:var(--admin-caption)!important}.admin-role-assignment{padding:16px 19px}.admin-role-assignment select{height:42px;font-size:var(--admin-small)!important}.admin-role-area-foot{min-height:44px;font-size:var(--admin-caption)!important}.admin-role-audit-list article{min-height:68px}.admin-role-audit-list b,.admin-role-audit-change,.admin-role-audit-list time{font-size:var(--admin-caption)!important}

/* El espacio disponible decide la composición; el texto mantiene su tamaño. */
@media(max-width:1400px){
  .admin-access-layout{grid-template-columns:1fr}
  .admin-policy-card{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(420px,1.2fr)}
  .admin-policy-card>header{border-right:1px solid rgba(11,35,71,.08)}
  .admin-policy-card form{border-top:0}.admin-link-security,.admin-policy-updated{grid-column:1/-1}
  .admin-role-map{grid-template-columns:1fr}
}
@media(max-width:1100px){
  .admin-view-head{align-items:flex-start;flex-direction:column}.admin-head-actions{width:100%;justify-content:space-between}
  .admin-roster-row{grid-template-columns:40px minmax(160px,1fr) 110px minmax(250px,1fr)}.admin-shift{display:none}
  .admin-access-person{grid-template-columns:40px minmax(180px,1fr) minmax(155px,.8fr) minmax(145px,.8fr) 105px}
}
@media(max-width:820px){
  .admin-policy-card{display:block}.admin-policy-card>header{border-right:0}
  .admin-route-flow{grid-template-columns:1fr}.admin-route-connector{min-height:52px}
  .admin-list-kpis{grid-template-columns:repeat(2,1fr)}
  .admin-access-request{grid-template-columns:40px 1fr}.access-request-change,.access-request-actions{grid-column:2}
  .admin-access-person{grid-template-columns:40px 1fr auto}.access-account-state{display:none}.access-person-action{grid-column:3}
}
@media(max-width:620px){
  .workspace{padding:24px 14px 40px}.admin-view-head h1{font-size:28px}
  .admin-section-nav{margin-inline:-2px}.admin-section-nav button,.admin-section-nav a{min-height:44px;padding:0 14px}
  .admin-access-toolbar,.admin-roles-toolbar{align-items:flex-start;flex-direction:column;padding:18px}
  .admin-route-card{padding:15px}.admin-route-step{min-height:0}.admin-qr-block{grid-template-columns:96px 1fr}.admin-qr-canvas{width:92px;height:92px}
  .admin-access-section-head{align-items:flex-start;flex-direction:column}.admin-access-filters{width:100%;display:grid;grid-template-columns:1fr}.admin-access-filters input,.admin-access-filters select{width:100%;min-width:0}
  .admin-access-person{grid-template-columns:38px 1fr}.access-pin-state,.access-person-action{grid-column:2}.access-person-action button{width:100%}
  .admin-role-seat{grid-template-columns:46px 1fr}.admin-role-seat>button{grid-column:2;width:100%}.admin-role-assignment{grid-template-columns:1fr}.admin-role-assignment>.admin-primary-action{width:100%}
}

/* Dashboard v3: sistema visual legible y adaptable. */
:root{
  --surface-page:#f6f8fb;
  --surface-card:#ffffff;
  --surface-subtle:#f8fafc;
  --text-strong:#09244c;
  --text-body:#34465e;
  --text-muted:#68778b;
  --line-soft:rgba(9,36,76,.10);
  --line-strong:rgba(9,36,76,.16);
  --focus:rgba(7,90,188,.24);
  --radius-shell:20px;
  --radius-card:16px;
  --radius-panel:12px;
  --radius-control:10px;
  --radius-pill:999px;
  --ease-ui:cubic-bezier(.23,1,.32,1);
  --shadow-card:0 10px 30px rgba(9,36,76,.055);
  --shadow-raised:0 18px 50px rgba(9,36,76,.10);
}

html{min-height:100%;background:var(--surface-page);scrollbar-color:#a9b6c7 #eef2f6}
body{min-height:100dvh;color:var(--text-body);background:var(--surface-page);font-size:14px;line-height:1.5}
::selection{color:#fff;background:#075abc}
*{scrollbar-width:thin;scrollbar-color:#a9b6c7 transparent}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background:#a9b6c7;background-clip:padding-box}

.skip-link{position:fixed;z-index:1200;top:12px;left:12px;padding:10px 14px;border-radius:9px;color:#fff;background:var(--navy);font-size:13px;font-weight:700;text-decoration:none;transform:translateY(-160%);transition:transform 160ms var(--ease-ui)}
.skip-link:focus{transform:translateY(0)}
.workspace:focus{outline:none}
:where(a,button,input,select,[tabindex]):focus-visible{outline:3px solid var(--focus);outline-offset:3px}
button{transition:transform 140ms var(--ease-ui),color 160ms ease,background-color 160ms ease,border-color 160ms ease,box-shadow 160ms ease}
button:active:not(:disabled){transform:scale(.98)}
.primary:active:not(:disabled),.mark-button:active:not(:disabled),.admin-primary-action:active:not(:disabled){transform:scale(.98)}
button:disabled{cursor:not-allowed}

/* Carga: una sola señal clara, sin latido ni espera artificial. */
.boot{background:rgba(255,255,255,.25);transition:opacity 180ms ease-out,visibility 180ms ease-out;animation:none}
.boot-inner{gap:18px}
.boot-badge{width:112px;height:112px}
.boot-badge:before{border-width:3px;animation-duration:.8s}
.boot-logo{width:66px;animation:none;filter:drop-shadow(0 7px 16px rgba(9,36,76,.14))}
.boot-text{color:var(--navy);font-size:12px;letter-spacing:.16em}

/* Armazón del producto. */
.portal{grid-template-columns:236px minmax(0,1fr) 330px;min-height:100dvh;color:var(--text-body);background:var(--surface-page)}
.portal.admin-wide{grid-template-columns:236px minmax(0,1fr)}
.sidebar{padding:28px 18px 20px;border-right:1px solid var(--line-soft)}
.side-brand{padding-inline:8px}
.side-brand span{font-size:16px}
.side-nav{gap:5px;margin-top:34px}
.side-nav-divider{margin:24px 14px 6px;color:#7f8da0;font-size:10px;letter-spacing:.11em}
.side-nav button{min-height:48px;height:auto;padding:12px 14px;border-radius:var(--radius-control);font-size:13px;line-height:1.35}
.side-nav button svg{width:20px;height:20px;flex:0 0 auto}
.side-nav button.active{background:#fff0f6;box-shadow:inset 3px 0 0 #FE037C}
.side-help{padding:18px;border-radius:var(--radius-card);box-shadow:0 12px 30px rgba(7,29,62,.14)}
.side-help span{margin-bottom:7px;font-size:10px}
.side-help a{font-size:12px;line-height:1.45;text-decoration:underline;text-decoration-color:rgba(255,255,255,.28);text-underline-offset:3px}
.side-user{grid-template-columns:40px minmax(0,1fr) 36px;gap:10px}
.side-user b{font-size:12px}.side-user small{font-size:11px}.side-user button{width:36px;height:36px}

.workspace{min-height:100dvh;padding:36px clamp(26px,2.7vw,48px) 56px;background:linear-gradient(180deg,#f8fafc 0%,var(--surface-page) 42%)}
.view{width:100%;max-width:1440px}
.view-head{gap:24px;margin-bottom:28px}
.view-head h1{max-width:22ch;color:var(--text-strong);font-size:clamp(30px,2.1vw,38px);line-height:1.12;letter-spacing:-.035em;text-wrap:balance}
.view-head>div>p:last-child{max-width:70ch;margin-top:8px;color:var(--text-muted);font-size:14px;line-height:1.6}
.eyebrow{margin-bottom:8px;color:#087d88;font-size:10px;line-height:1.4;letter-spacing:.14em}
.session-chip{min-height:38px;padding:9px 13px;border:1px solid var(--line-soft);color:#52647b;font-size:11px;white-space:nowrap;box-shadow:none}

/* Inicio personal. */
.today-layout{gap:18px}
.day-card,.progress-card,.month-card,.week-strip,.calendar-card,.profile-identity,.profile-data,.team-list,.team-summary{border:1px solid var(--line-soft);border-radius:var(--radius-card);background:var(--surface-card);box-shadow:var(--shadow-card)}
.day-card{min-height:350px;padding:28px 30px}
.day-card-head small,.time-label small{font-size:10px;letter-spacing:.1em}
.day-card-head b{font-size:17px}
.status-pill{padding:7px 11px;font-size:10px}
.day-timeline{margin:60px 0 38px}
.time-label b{font-size:22px}
.day-context{gap:8px}.day-context span{padding:7px 10px;font-size:10px}
.day-action{padding-top:20px}
.mark-button{min-height:48px;border-radius:11px;font-size:13px}
.day-action p{font-size:11px;line-height:1.55}

.day-aside{gap:18px}
.progress-card,.month-card{min-height:174px;padding:23px 24px}
.progress-number strong{font-size:46px;letter-spacing:-.04em}
.progress-number span{font-size:18px}
.progress-number small,.progress-card>p:last-child{color:var(--text-muted);font-size:11px}
.progress-track{height:6px;background:rgba(9,36,76,.10)}
.progress-track i{transform:scaleX(0);transform-origin:left center;transition:transform 260ms var(--ease-ui)}
.month-card{background:#fff}
.month-card small{font-size:10px}.month-card b{font-size:32px}.month-card em{margin-top:3px;font-size:10px}
.month-icon{width:50px;height:50px;border-radius:14px;box-shadow:0 9px 22px rgba(239,11,114,.16)}

/* Centro de marcado: horario, acción y avance en una sola composición. */
.today-layout .day-card{min-height:0;padding:0;overflow:hidden}
.day-card-head{min-height:78px;padding:20px 28px}
.day-card-grid{display:grid;grid-template-columns:minmax(0,1.48fr) minmax(280px,.72fr);border-top:0}
.day-schedule{min-width:0;padding:26px 28px 24px}
.day-section-heading{display:flex;align-items:center;gap:12px}
.day-section-heading>span:last-child small,.day-section-heading>span:last-child b{display:block}
.day-section-heading small,.day-action-copy>small{color:#7d8da2;font-size:9px;font-weight:800;letter-spacing:.12em}
.day-section-heading b{margin-top:3px;color:var(--navy);font-size:15px}
.day-section-icon,.day-action-icon,.summary-icon{display:grid;place-items:center;flex:0 0 auto;color:#0a67be;background:#edf6ff}
.day-section-icon{width:40px;height:40px;border-radius:12px}
.day-section-icon svg,.day-action-icon svg,.summary-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.day-schedule .day-timeline{grid-template-columns:76px minmax(0,1fr) 76px;margin:37px 0 32px}
.day-schedule .day-context{margin:0}
.day-schedule .day-context span{border:1px solid #e4eaf1;background:#f6f8fb}
.day-card-grid .day-action{display:flex;flex-direction:column;align-items:flex-start;gap:0;min-width:0;padding:26px;border:0;background:rgba(244,248,252,.68)}
.day-action-icon{width:48px;height:48px;border-radius:15px;color:#087d88;background:#e5f7f5}
.day-action-icon svg{width:24px;height:24px}
.day-action-copy{margin-top:22px}
.day-action-copy h2{max-width:17ch;margin:7px 0 8px;color:var(--navy);font-size:21px;line-height:1.18;letter-spacing:-.025em;text-wrap:balance}
.day-card-grid .day-action p{max-width:34ch;color:#718197;font-size:11px;line-height:1.55}
.day-card-grid .mark-button{width:100%;margin-top:auto;padding-inline:16px}
.day-card[data-attendance-state="marked"] .day-action-icon{color:#08785f;background:#e4f7f1}
.day-card[data-attendance-state="late"] .day-action-icon{color:#9b5c00;background:#fff0d6}
.day-card[data-attendance-state="closed"] .day-action-icon,.day-card[data-attendance-state="off"] .day-action-icon{color:#a4374a;background:#ffe9ed}
.day-card[data-attendance-state="closed"] #now-marker,.day-card[data-attendance-state="off"] #now-marker{visibility:hidden}
.day-card[data-attendance-state="marked"] .mark-button:disabled{color:#08785f;background:#dff3ed}
.day-card[data-attendance-state="closed"] .mark-button:disabled,.day-card[data-attendance-state="off"] .mark-button:disabled,.day-card[data-attendance-state="before"] .mark-button:disabled{color:#607188;background:#e4eaf1}

.day-summary{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);border-top:0;background:rgba(255,255,255,.42)}
.day-summary .progress-card,.day-summary .month-card{min-height:118px;border:0;border-radius:0;background:transparent;box-shadow:none}
.day-summary .progress-card{display:grid;grid-template-columns:46px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:15px;padding:22px 28px}
.summary-icon{grid-row:1;width:46px;height:46px;border-radius:14px;color:#0a67be;background:#edf6ff}
.summary-copy{min-width:0}
.summary-copy .eyebrow{margin:0 0 5px;font-size:9px}
.day-summary .progress-number{display:flex;align-items:baseline;gap:3px;margin:0}
.day-summary .progress-number strong{font-size:30px;letter-spacing:-.045em}
.day-summary .progress-number>span{font-size:15px}
.day-summary .progress-number small{display:inline;margin:0 0 0 7px;font-size:10px}
.day-summary .summary-copy>p:last-child{margin:4px 0 0;color:var(--text-muted);font-size:10px;line-height:1.4}
.day-summary .progress-track{grid-column:2;height:5px;margin-top:11px}
.day-summary .month-card{padding:22px 28px;border-left:0}
.day-summary .month-icon{width:46px;height:46px;border-radius:14px;box-shadow:none}
.day-summary .month-card b{font-size:28px}
.day-summary .month-card em{font-size:10px;line-height:1.45}

.week-strip{margin-top:18px;padding:24px 26px}
.section-title h2{font-size:20px;letter-spacing:-.02em}
.section-title button{min-height:38px;padding:0 4px;font-size:12px}
.week-days{gap:10px;margin-top:20px}
.week-day{min-height:88px;border-color:var(--line-soft);border-radius:12px;background:#fff}
.week-day small{font-size:10px}.week-day b{font-size:16px}.week-day i{width:6px;height:6px}
.week-day.today{border-color:rgba(7,90,188,.34);background:#f0f6fd;box-shadow:inset 0 0 0 1px rgba(7,90,188,.06)}

/* Columna de contexto personal. */
.portal-rail{padding:30px 24px;border-left:1px solid var(--line-soft);background:#fff}
.rail-title{font-size:14px}.rail-title button,.rail-section-head button{width:36px;height:36px;border-color:var(--line-soft);border-radius:10px}
.rail-avatar{width:80px;height:80px;margin:22px auto 14px;border-width:5px;font-size:21px}
.rail-profile h2{font-size:16px}.rail-profile p{font-size:11px}.rail-role{padding:6px 10px;font-size:10px}
.rail-calendar,.rail-schedule{margin-top:27px}
.rail-calendar{padding:19px 17px 16px;border-color:var(--line-soft);border-radius:var(--radius-card);background:var(--surface-subtle);box-shadow:none}
.rail-section-head small{font-size:10px}.rail-section-head b{font-size:13px}
.rail-calendar-week span{font-size:10px}
.rail-cal-day{min-height:31px;font-size:10px}
.rail-calendar-key{font-size:10px}
.rail-schedule-list{gap:10px}
.rail-event{min-height:68px;grid-template-columns:48px 1fr;padding:12px 12px 12px 16px;border-radius:12px}
.rail-event time{font-size:11px}.rail-event span b{font-size:11px}.rail-event span small{font-size:10px}
.rail-empty{font-size:10px;line-height:1.5}
.rail-insight{padding:16px;border-radius:var(--radius-card);box-shadow:0 12px 28px rgba(9,36,76,.15)}
.rail-insight small{font-size:10px}.rail-insight b{font-size:22px}.rail-insight em{font-size:10px}

/* Historial, perfil y equipo. */
.month-toolbar{gap:8px}.month-toolbar button{width:40px;height:40px}.month-toolbar b{font-size:14px}
.attendance-stats{gap:12px}.att-stat{padding:18px;border:1px solid var(--line-soft);box-shadow:none}.att-stat small{font-size:10px}.att-stat b{font-size:26px}
.calendar-card{padding:24px}.calendar-week span{font-size:10px}.cal-day{min-height:72px;border-radius:11px}.cal-day b{font-size:12px}.cal-day i{font-size:9px}.calendar-legend{font-size:11px}
.profile-layout{grid-template-columns:minmax(250px,300px) minmax(0,1fr);gap:22px}
.profile-identity{padding:34px 26px;background:#fff}.profile-identity h2{font-size:21px}.profile-identity p{font-size:13px}.profile-badge{font-size:11px}
.profile-data{padding:30px}.profile-field small{font-size:10px}.profile-field b{font-size:14px}.profile-notice span{font-size:11px}.profile-notice span b{font-size:12px}.profile-notice a{font-size:11px}
.team-kpi{padding:22px}.team-kpi small{font-size:10px}.team-kpi b{font-size:28px}
.team-row{min-height:78px;grid-template-columns:44px minmax(190px,1fr) minmax(145px,.72fr) 110px 118px;padding:14px 18px}
.team-row strong{font-size:13px}.team-row small{font-size:11px}.team-state{font-size:10px}.team-profile-open{min-height:38px;padding-inline:11px;font-size:10px}

/* Administración: la densidad se mantiene, la lectura no se sacrifica. */
.admin-view{--admin-caption:11px;--admin-small:clamp(12px,.15vw + 10px,13px);--admin-body:clamp(13px,.16vw + 10px,14px);--admin-title:clamp(19px,.35vw + 15px,23px)}
.admin-section-nav{padding:4px;border:1px solid var(--line-soft);border-radius:13px;background:#fff;box-shadow:0 7px 22px rgba(9,36,76,.04)}
.admin-section-nav button,.admin-section-nav a{border-radius:9px}
.admin-section-nav button.active{box-shadow:0 5px 14px rgba(9,36,76,.14)}
.admin-kpi,.admin-panel,.admin-module,.admin-list-kpi,.admin-area-group,.admin-people-group,.admin-person-card,.admin-contract-row,.admin-summary-hero article,.admin-summary-table,.admin-month-ledger,.admin-route-card,.admin-policy-card,.admin-access-requests,.admin-access-directory,.admin-access-audit,.admin-role-area,.admin-roles-audit{border-color:var(--line-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}
.admin-kpi:after{opacity:.55}
.admin-module{border-radius:14px}
.admin-refresh,.admin-primary-action,.admin-secondary-action,.admin-date-control button,.admin-month-picker button{border-radius:var(--radius-control)}
.admin-refresh:disabled{opacity:.65}
.admin-section-nav,.admin-month-ledger,.admin-summary-table{scrollbar-color:#9eacbe transparent}

/* Formularios y modales. */
input,select{color:var(--text-body)}
input::placeholder{color:#748297;opacity:1}
.field label{font-size:12px}.field-box{min-height:52px;border-color:var(--line-strong);border-radius:11px}.field-box input{font-size:14px}.reveal{font-size:11px}
.primary{min-height:52px;border-radius:11px;font-size:13px}
.form-note{font-size:10px;line-height:1.55}
.form-msg,.mark-msg{font-size:12px;line-height:1.55}
.modal-backdrop{background:rgba(5,20,42,.48);backdrop-filter:blur(8px)}
.mark-sheet,.admin-editor-sheet,.admin-month-sheet,.team-profile-sheet{border:1px solid rgba(255,255,255,.6);box-shadow:var(--shadow-raised)}
.mark-sheet>p{font-size:12px;line-height:1.6}.privacy-note{font-size:11px!important;line-height:1.6}
.evidence-empty b{font-size:14px}.evidence-empty p{font-size:11px}.evidence-empty button{min-height:40px;font-size:11px}
.team-profile-sheet{width:min(680px,100%)}
.team-profile-head>span:last-child>p:last-child{font-size:11px}
.team-profile-facts small,.team-profile-week span,.team-profile-stats small{font-size:10px}
.team-profile-facts b{font-size:12px}.team-profile-month>header small{font-size:10px}.team-profile-month>header b{font-size:14px}.team-profile-month>header strong{font-size:21px}
.team-profile-calendar span,.team-profile-calendar span b{font-size:10px}.team-profile-calendar span i{font-size:9px}.team-profile-privacy{font-size:10px;line-height:1.55}
.admin-editor-head>div>p:last-child,.admin-editor-label span{font-size:12px!important}.admin-editor-label b{font-size:14px}.admin-field{font-size:11px!important}.admin-editor-foot button{min-height:42px}
.admin-editor-modal,.admin-month-modal{font-size:13px}
.admin-editor-sheet small,.admin-month-sheet small{font-size:11px!important;line-height:1.5}
.admin-editor-sheet p,.admin-month-sheet p{font-size:12px;line-height:1.55}
.admin-editor-sheet label,.admin-month-sheet label{font-size:11px!important}
.admin-editor-sheet input,.admin-editor-sheet select,.admin-editor-sheet button:not(.modal-close),.admin-month-sheet input,.admin-month-sheet select,.admin-month-sheet button:not(.modal-close){font-size:12px!important}
.admin-editor-sheet input,.admin-editor-sheet select,.admin-month-sheet input,.admin-month-sheet select{min-height:40px}
.admin-pending-check b,.admin-schedule-row>b,.admin-history-list b{font-size:12px!important}
.admin-schedule-head{font-size:10px}

@media(hover:hover) and (pointer:fine){
  .week-day,.admin-module,.team-profile-open,.rail-title button,.rail-section-head button{transition:transform 160ms var(--ease-ui),border-color 160ms ease,background-color 160ms ease,box-shadow 160ms ease}
  .week-day:hover,.admin-module:hover{transform:translateY(-2px);border-color:var(--line-strong);box-shadow:0 12px 28px rgba(9,36,76,.08)}
}

@media(max-width:1280px){
  .portal{grid-template-columns:228px minmax(0,1fr)}
  .portal.admin-wide{grid-template-columns:228px minmax(0,1fr)}
  .portal-rail{display:none}
  .workspace{padding-inline:clamp(24px,3.2vw,42px)}
}

@media(max-width:900px){
  .portal,.portal.admin-wide{display:block;min-height:100dvh}
  .mobile-head{height:68px;border-color:var(--line-soft);background:rgba(255,255,255,.94)}
  .sidebar{width:min(286px,86vw);min-height:100dvh;padding-top:24px}
  .workspace{min-height:calc(100dvh - 68px);padding:28px 20px 48px}
  .view-head h1{font-size:clamp(28px,6vw,34px)}
  .today-layout,.day-aside,.profile-layout{grid-template-columns:1fr}
  .day-card-grid{grid-template-columns:1fr}
  .day-card-grid .day-action{min-height:245px;border:0}
  .day-summary{grid-template-columns:minmax(0,1.15fr) minmax(230px,.85fr)}
  .admin-head-actions{width:100%;justify-content:space-between}
}

@media(max-width:650px){
  body{font-size:13px}
  .workspace{padding:24px 14px 42px}
  .view-head{margin-bottom:22px}.view-head>div>p:last-child{font-size:13px}
  .session-chip{margin-top:14px}
  .day-card{padding:22px 18px}.day-timeline{grid-template-columns:62px minmax(0,1fr) 62px;margin:54px 0 34px}.time-label b{font-size:18px}
  .today-layout .day-card{padding:0}
  .day-card-head{min-height:68px;padding:17px 18px}
  .day-schedule{padding:22px 18px}
  .day-schedule .day-timeline{grid-template-columns:62px minmax(0,1fr) 62px;margin:34px 0 30px}
  .day-card-grid .day-action{min-height:232px;padding:22px 18px}
  .day-action-copy{margin-top:18px}.day-action-copy h2{font-size:19px}
  .day-summary{grid-template-columns:1fr}
  .day-summary .progress-card,.day-summary .month-card{min-height:108px;padding:20px 18px}
  .day-summary .month-card{border:0}
  .day-aside{gap:12px}.progress-card,.month-card{min-height:0;padding:20px}
  .week-strip{padding:20px 16px}.week-days{grid-template-columns:repeat(7,minmax(42px,1fr));overflow-x:auto;padding-bottom:5px}.week-day{min-height:74px}
  .section-title{align-items:flex-start;gap:12px}.section-title h2{font-size:18px}
  .calendar-card{padding:16px 10px}.cal-day{min-height:58px;padding:7px 5px}.calendar-legend{gap:10px}
  .profile-data{padding:22px 16px}.profile-notice{grid-template-columns:30px 1fr!important}.profile-notice a{grid-column:2}
  .team-summary{grid-template-columns:repeat(2,1fr)}.team-row{grid-template-columns:40px minmax(0,1fr) auto;padding:14px}.team-profile-open{min-height:42px}
  .admin-view{--admin-caption:10px;--admin-small:12px;--admin-body:13px;--admin-title:19px}
  .admin-section-nav{margin-inline:-2px;padding:3px}
  .admin-section-nav button,.admin-section-nav a{min-height:42px;padding-inline:13px}
  .admin-list-kpis{gap:8px}
  .team-profile-sheet{max-height:92dvh}
}

@media(max-width:430px){
  .view-head h1{font-size:27px}
  .section-title{display:grid;grid-template-columns:1fr}.section-title button{justify-self:start}
  .attendance-stats{grid-template-columns:1fr 1fr}
  .calendar-legend{display:grid;grid-template-columns:1fr 1fr}
  .profile-avatar{width:78px;height:78px}
  .admin-head-actions{align-items:stretch;flex-direction:column}.admin-role-chip{width:max-content}.admin-refresh{justify-content:center}
  .admin-list-kpis{grid-template-columns:1fr 1fr}
}

@media(prefers-reduced-transparency:reduce){
  .boot,.mobile-head{background:#f8fafc;-webkit-backdrop-filter:none;backdrop-filter:none}
  .modal-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}
}

@media(prefers-reduced-motion:reduce){
  .boot-badge:before,.boot-dots i{animation:none}
  button:active:not(:disabled){transform:none}
}

/* Login adaptable: escritorio conserva el split; móvil se convierte en una escena vertical. */
.login-panel{display:block}
.reveal{min-width:36px;min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 4px}
.reveal svg{display:none;width:20px;height:20px}

@media (max-width:767px), (max-height:520px) and (pointer:coarse){
  .access{
    position:relative;
    min-height:100svh;
    min-height:100dvh;
    display:flex;
    flex-direction:column;
    overflow-x:hidden;
    padding:0;
    background:
      linear-gradient(180deg, rgba(5,34,71,.3) 0%, transparent 20%, transparent 50%, rgba(5,34,71,.4) 100%),
      url("../../../images/dashboard/login-mobile-kja.webp") center top/cover no-repeat;
  }
  .access:before{
    content:"";
    position:fixed;
    inset:0;
    pointer-events:none;
    background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 10%);
  }
  .back-home{
    position:fixed;
    top:max(14px,env(safe-area-inset-top));
    left:max(14px,env(safe-area-inset-left));
    z-index:4;
    min-height:42px;
    padding:0 12px 0 9px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:12px;
    color:#fff;
    background:rgba(8,29,55,.28);
    -webkit-backdrop-filter:blur(10px) saturate(110%);
    backdrop-filter:blur(10px) saturate(110%);
    box-shadow:0 6px 18px rgba(2,16,35,.10);
    font-size:12px;
  }
  .back-home svg{width:19px}
  .access-shell{
    position:relative;
    z-index:1;
    width:100%;
    flex:1;
    display:flex;
    flex-direction:column;
    overflow:visible;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }
  .access-story{display:none}
  .access-form-wrap{
    width:100%;
    margin-top:auto;
    display:flex;
    flex-direction:column;
    background:#fff;
    border-radius:36px 36px 0 0;
    box-shadow:0 -10px 40px rgba(4,18,41,.08);
    padding:20px max(24px,env(safe-area-inset-right)) max(32px,calc(env(safe-area-inset-bottom) + 24px)) max(24px,env(safe-area-inset-left));
  }
  .access-form-wrap::before{
    content:"";
    display:block;
    width:48px;
    height:5px;
    border-radius:3px;
    background:#cbd5e1;
    margin:0 auto 28px;
  }
  .access-form-head{
    width:min(100%,440px);
    margin:0 auto 24px;
    color:var(--navy);
    text-align:center;
  }
  .mobile-logo{display:block;margin:0 auto 18px}
  .mobile-logo img{
    width:clamp(150px,40vw,180px);
    height:auto;
  }
  .access-form-head .secure-badge{display:none}
  .access-form-head h2{
    margin:0 0 7px;
    color:var(--navy);
    font-size:clamp(22px,6vw,26px);
    line-height:1.15;
    letter-spacing:-.02em;
  }
  .access-form-head>p:last-child{
    max-width:34ch;
    margin:0 auto;
    color:var(--muted);
    font-size:13px;
    line-height:1.55;
  }
  .login-panel{
    position:relative;
    width:min(100%,440px);
    margin:0 auto;
    padding:0;
    border:0;
    background:transparent;
    box-shadow:none;
  }
  .login-panel:before{display:none}
  .login-panel>*{position:relative;z-index:1}
  .login-tabs{
    margin:0 0 17px;
    padding:4px;
    border:1px solid rgba(9,36,76,.07);
    border-radius:12px;
    background:rgba(9,36,76,.09);
  }
  .login-tabs button{min-height:44px;padding:0 10px;border-radius:9px;color:#54657b;font-size:13px}
  .login-tabs button.active{color:var(--navy);background:rgba(255,255,255,.76);box-shadow:0 2px 8px rgba(9,36,76,.09),inset 0 1px 0 rgba(255,255,255,.72)}
  .login-form{gap:15px}
  .field label{margin-bottom:7px;color:#243a56;font-size:12px}
  .field-box{
    min-height:54px;
    height:54px;
    gap:10px;
    padding:0 12px;
    border-color:rgba(9,36,76,.16);
    border-radius:12px;
    background:rgba(255,255,255,.72);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.72);
  }
  .field-box:focus-within{border-color:#075abc;box-shadow:0 0 0 3px rgba(7,90,188,.14),inset 0 1px 0 rgba(255,255,255,.9)}
  .field-box svg{width:20px;color:#254d77}
  .field-box input{font-size:16px;caret-color:#075abc}
  .field-box input::placeholder{color:#6f7d90}
  .reveal{width:44px;height:44px;margin-right:-8px;padding:0;color:#164c80;border-radius:10px}
  .reveal span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .reveal .eye-open{display:block}
  .reveal.showing .eye-open{display:none}
  .reveal.showing .eye-closed{display:block}
  .primary{
    min-height:54px;
    margin-top:2px;
    border-radius:12px;
    background:#0a417c;
    box-shadow:0 12px 28px rgba(5,49,98,.24);
    font-size:14px;
  }
  .primary:hover{background:#0a417c;box-shadow:0 12px 28px rgba(5,49,98,.24)}
  .form-note{margin:0;color:#244462;font-size:11px;font-weight:600;line-height:1.55}
  .form-msg{padding:11px 12px;border:1px solid rgba(169,47,69,.13);font-size:12px}
}

@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  @media (max-width:767px), (max-height:520px) and (pointer:coarse){
    .login-panel{background:rgba(239,245,250,.94)}
  }
}

@media (max-width:380px){
  .access-form-wrap{padding-inline:13px;padding-bottom:max(13px,env(safe-area-inset-bottom))}
  .access-form-head{margin-bottom:17px}
  .mobile-logo img{width:164px}
  .access-form-head h2{font-size:23px}
  .login-panel{padding:13px 14px 15px}
  .login-tabs{margin-bottom:13px}
  .login-form{gap:12px}
}

@media (max-height:700px) and (max-width:767px){
  .access-form-wrap{padding-top:max(66px,calc(env(safe-area-inset-top) + 52px))}
  .access-form-head{margin-bottom:13px}
  .mobile-logo{margin-bottom:8px}.mobile-logo img{width:150px}
  .access-form-head h2{font-size:22px}.access-form-head>p:last-child{font-size:12px}
  .login-panel{padding-top:13px;padding-bottom:14px}
  .login-tabs{margin-bottom:12px}
  .login-form{gap:11px}
  .field-box{min-height:50px;height:50px}
  .primary{min-height:50px}
}

@media (max-height:520px) and (pointer:coarse){
  .access-form-wrap{
    min-height:100dvh;
    display:grid;
    grid-template-columns:minmax(180px,.72fr) minmax(310px,1fr);
    align-items:center;
    gap:24px;
    padding:max(14px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));
  }
  .access-form-head{margin:0}.mobile-logo img{width:min(190px,28vw)}
  .access-form-head h2{font-size:22px}.access-form-head>p:last-child{font-size:12px}
  .login-panel{margin:0;padding:12px 15px 14px}
  .login-tabs{margin-bottom:10px}.login-form{gap:9px}
  .field label{margin-bottom:4px}.field-box{min-height:46px;height:46px}.primary{min-height:47px}
  .form-note{display:none}
}

@media(prefers-reduced-transparency:reduce){
  .login-panel{border-color:rgba(9,36,76,.12);background:#f7f9fc;-webkit-backdrop-filter:none;backdrop-filter:none}
  .back-home{color:var(--navy);background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}
}

/* Acceso inmediato: una misma superficie mientras verifica y prepara el portal. */
.boot[data-mode="auth"],
.boot[data-mode="portal"]{
  background:rgba(10,30,54,.18);
  -webkit-backdrop-filter:blur(12px) saturate(108%);
  backdrop-filter:blur(12px) saturate(108%);
}
.boot[data-mode="auth"] .boot-inner,
.boot[data-mode="portal"] .boot-inner{gap:14px}
.boot[data-mode="auth"] .boot-badge,
.boot[data-mode="portal"] .boot-badge{
  width:88px;
  height:88px;
  border-radius:50%;
  background:rgba(248,251,254,.86);
  box-shadow:0 12px 34px rgba(3,20,43,.13),inset 0 1px 0 rgba(255,255,255,.82);
}
.boot[data-mode="auth"] .boot-badge:before,
.boot[data-mode="portal"] .boot-badge:before{inset:-7px;border-color:rgba(255,255,255,.34);border-top-color:rgba(255,255,255,.9);border-right-color:#76c7cc;animation-duration:.65s}
.boot[data-mode="auth"] .boot-logo,
.boot[data-mode="auth"] .boot-text{
  padding:7px 11px;
  border-radius:999px;
  color:#153a62;
  background:rgba(248,251,254,.72);
  -webkit-backdrop-filter:blur(8px) saturate(106%);
  backdrop-filter:blur(8px) saturate(106%);
  box-shadow:0 4px 14px rgba(3,20,43,.08),inset 0 1px 0 rgba(255,255,255,.65);
  text-shadow:none;
}
/* Acciones de Dirección: bloquea la vista mientras guarda y recarga, sin ocultar el contexto. */
.boot[data-mode="action"]{
  background:rgba(10,30,54,.22);
  -webkit-backdrop-filter:blur(6px) saturate(108%);
  backdrop-filter:blur(6px) saturate(108%);
}
.boot[data-mode="action"] .boot-inner{gap:14px}
.boot[data-mode="action"] .boot-badge{
  width:88px;
  height:88px;
  border-radius:50%;
  background:rgba(248,251,254,.92);
  box-shadow:0 12px 34px rgba(3,20,43,.16),inset 0 1px 0 rgba(255,255,255,.82);
}
.boot[data-mode="action"] .boot-badge:before{inset:-7px;border-color:rgba(255,255,255,.34);border-top-color:rgba(255,255,255,.9);border-right-color:#76c7cc;animation-duration:.65s}
.boot[data-mode="action"] .boot-logo{width:54px}
.boot[data-mode="action"] .boot-text{
  max-width:min(320px,calc(100vw - 48px));
  padding:8px 14px;
  border-radius:999px;
  color:#153a62;
  background:rgba(248,251,254,.94);
  box-shadow:0 4px 14px rgba(3,20,43,.12);
  font-size:12px;
  line-height:1.4;
  letter-spacing:.08em;
  text-align:center;
  text-shadow:none;
}
/* Portada operativa móvil. En escritorio se conserva el dashboard completo. */
.mobile-portal-home{display:none}

@media (min-width:768px) and (max-width:900px){
  .mobile-head{position:relative;border:0;background:var(--surface-page);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
  .mobile-head>.mobile-back-home{width:auto;min-width:78px;display:flex;align-items:center;justify-content:center;gap:5px;padding:0 8px 0 0;color:#164a7d;background:transparent;font-size:12px;font-weight:700}
  .mobile-back-home svg{width:20px;height:20px}
}

@media (max-width:767px){
  .portal:not([data-view="inicio"]) .mobile-head{
    position:relative;
    z-index:5;
    height:calc(70px + env(safe-area-inset-top));
    min-height:70px;
    display:grid;
    grid-template-columns:minmax(78px,1fr) auto minmax(78px,1fr);
    align-items:end;
    padding:max(0px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 8px max(16px,env(safe-area-inset-left));
    border:0;
    background:#edf3fb;
    box-shadow:none;
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }
  .portal:not([data-view="inicio"]) .mobile-head>img{
    grid-column:2;
    width:43px;
    height:40px;
    object-fit:contain;
  }
  .portal:not([data-view="inicio"]) .mobile-head>.avatar{
    grid-column:3;
    justify-self:end;
    width:38px;
    height:38px;
    border-radius:12px;
    font-size:11px;
    box-shadow:0 8px 18px rgba(195,8,105,.14);
  }
  .portal:not([data-view="inicio"]) .mobile-head>#menu-toggle{
    grid-column:1;
    grid-row:1;
    justify-self:start;
    width:44px;
    height:44px;
    padding:10px;
    border:0;
    border-radius:50%;
    color:#174a7d;
    background:transparent;
  }
  .portal:not([data-view="inicio"]) .mobile-head>.mobile-back-home{
    grid-column:1;
    grid-row:1;
    justify-self:start;
    width:auto;
    min-width:72px;
    height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    padding:0 8px 0 0;
    border:0;
    border-radius:0;
    color:#164a7d;
    background:transparent;
    font-size:12px;
    font-weight:700;
  }
  .mobile-back-home svg{width:20px;height:20px}
  .portal:not([data-view="inicio"]) .workspace{
    min-height:calc(100dvh - 70px);
    padding:12px max(16px,env(safe-area-inset-right)) max(40px,calc(env(safe-area-inset-bottom) + 24px)) max(16px,env(safe-area-inset-left));
    background:#edf3fb;
  }
  .portal:not([data-view="inicio"]) .view-head{margin-bottom:22px}
  .portal:not([data-view="inicio"]) .view-head h1{font-size:clamp(27px,8vw,32px);line-height:1.12;letter-spacing:-.035em}
  .portal:not([data-view="inicio"]) .view-head>div>p:last-child{max-width:38ch;margin-top:7px;color:#64758b;font-size:13px;line-height:1.55}
  .portal:not([data-view="inicio"]) .view-head .eyebrow{margin-bottom:6px;font-size:10px}

  .portal[data-view="asistencia"] .month-toolbar{justify-content:space-between;gap:10px;margin:0 0 18px}
  .portal[data-view="asistencia"] .month-toolbar button{width:44px;height:44px;border:0;background:#fff;box-shadow:0 5px 16px rgba(9,36,76,.07)}
  .portal[data-view="asistencia"] .month-toolbar b{min-width:0;color:var(--navy);font-size:14px}
  .portal[data-view="asistencia"] .attendance-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
  .portal[data-view="asistencia"] .att-stat{min-height:94px;padding:17px;border:0;border-radius:15px;box-shadow:0 7px 20px rgba(9,36,76,.065)}
  .portal[data-view="asistencia"] .att-stat:last-child{grid-column:1/-1}
  .portal[data-view="asistencia"] .att-stat small{font-size:10px}
  .portal[data-view="asistencia"] .att-stat b{font-size:26px}
  .portal[data-view="asistencia"] .calendar-card{border:0;border-radius:15px;box-shadow:0 8px 24px rgba(9,36,76,.065)}

  .portal[data-view="perfil"] .profile-identity,
  .portal[data-view="perfil"] .profile-data,
  .portal[data-view="equipo"] .team-summary,
  .portal[data-view="equipo"] .team-list{border:0;border-radius:15px;box-shadow:0 8px 24px rgba(9,36,76,.065)}
  .portal[data-view="perfil"] .profile-identity{background:#fff}
  .portal[data-view="perfil"] .profile-data{margin-top:2px}
  .portal[data-view="equipo"] .team-summary{overflow:hidden;background:#fff}

  .portal[data-view="inicio"] .mobile-head{display:none}
  .portal[data-view="inicio"] .workspace{
    min-height:100dvh;
    padding:0;
    background:#edf3fb;
  }
  .portal[data-view="inicio"] #view-inicio{max-width:none;margin:0}
  .portal[data-view="inicio"] #view-inicio>.view-head,
  .portal[data-view="inicio"] #view-inicio>.today-layout,
  .portal[data-view="inicio"] #view-inicio>.week-strip{display:none!important}
  .mobile-portal-home{
    min-height:100dvh;
    display:flex;
    flex-direction:column;
    color:#fff;
    background:#083b70;
  }
  .mobile-portal-hero{
    position:relative;
    min-height:282px;
    padding:max(20px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) 30px max(18px,env(safe-area-inset-left));
    overflow:hidden;
    isolation:isolate;
  }
  .mobile-portal-hero:after{
    content:"";
    position:absolute;
    z-index:-1;
    width:190px;
    height:190px;
    right:-84px;
    bottom:-105px;
    border:1px solid rgba(255,255,255,.11);
    border-radius:50%;
    box-shadow:0 0 0 38px rgba(255,255,255,.025),0 0 0 76px rgba(255,255,255,.02);
  }
  .mobile-portal-brand{display:grid;grid-template-columns:46px minmax(0,1fr) 44px;align-items:center;gap:11px}
  .mobile-brand-mark{
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    border-radius:13px;
    background:#fff;
    box-shadow:0 10px 26px rgba(2,20,43,.18);
  }
  .mobile-brand-mark img{width:37px;height:37px;object-fit:contain}
  .mobile-portal-brand>span:nth-child(2) b,.mobile-portal-brand>span:nth-child(2) small{display:block}
  .mobile-portal-brand>span:nth-child(2) b{font-size:18px;line-height:1.2;letter-spacing:-.02em}
  .mobile-portal-brand>span:nth-child(2) small{margin-top:2px;color:#bcd3ea;font-size:11px;font-weight:500}
  .mobile-portal-brand button{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    padding:0;
    border:1px solid rgba(255,255,255,.18);
    border-radius:12px;
    color:#fff;
    background:rgba(255,255,255,.07);
  }
  .mobile-portal-brand button svg{width:21px;height:21px}
  .mobile-portal-person{display:grid;grid-template-columns:82px minmax(0,1fr);align-items:center;gap:18px;margin-top:42px}
  .mobile-profile-photo{position:relative;width:82px;height:82px;display:block}
  .mobile-profile-avatar{
    width:82px;
    height:82px;
    display:grid;
    place-items:center;
    border:4px solid rgba(255,255,255,.92);
    border-radius:50%;
    color:#fff;
    background:#075abc;
    box-shadow:0 14px 34px rgba(2,19,40,.22);
    font-size:22px;
    font-weight:800;
    letter-spacing:-.02em;
  }
  .mobile-profile-photo-edit{position:absolute;z-index:2;right:-11px;bottom:-11px;width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;color:#123d70;background:transparent}
  .mobile-profile-photo-edit svg{width:30px;height:30px;padding:7px;border:1px solid rgba(11,42,92,.1);border-radius:50%;background:#fff;box-shadow:0 5px 14px rgba(2,19,40,.24);fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s ease,background-color .18s ease}
  .mobile-profile-photo-edit:focus-visible{outline:3px solid #74d4ff;outline-offset:1px}
  .mobile-profile-photo-edit:active svg{transform:scale(.9)}
  .mobile-profile-photo-edit:disabled{cursor:wait;opacity:.58}
  @media (hover:hover){.mobile-profile-photo-edit:hover svg{background:#edf6ff;transform:translateY(-1px)}}
  .mobile-portal-person h1{
    max-width:19ch;
    margin:0;
    color:#fff;
    font-size:clamp(21px,6.2vw,27px);
    line-height:1.14;
    letter-spacing:-.035em;
    text-wrap:balance;
  }
  .mobile-portal-person p{margin:7px 0 8px;color:#c5d9ed;font-size:13px;font-weight:600}
  .mobile-portal-person>div>span{display:flex;align-items:center;flex-wrap:wrap;gap:7px;color:#e3edf8}
  .mobile-portal-person>div>span b{font-size:12px;font-weight:700}
  .mobile-portal-person>div>span i{width:3px;height:3px;border-radius:50%;background:#68d0cf}
  .mobile-portal-person>div>span small{font-size:12px}

  .mobile-portal-sheet{
    flex:1;
    min-height:calc(100dvh - 254px);
    padding:27px max(16px,env(safe-area-inset-right)) max(30px,calc(env(safe-area-inset-bottom) + 20px)) max(16px,env(safe-area-inset-left));
    border-radius:30px 30px 0 0;
    color:var(--text-body);
    background:#edf3fb;
    box-shadow:0 -14px 40px rgba(3,27,58,.12);
  }
  .mobile-sheet-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin:0 2px 20px}
  .mobile-sheet-heading h2{margin:0;color:var(--navy);font-size:20px;line-height:1.25;letter-spacing:-.025em}
  .mobile-sheet-heading p{margin:4px 0 0;color:#67798f;font-size:12px;line-height:1.45}
  .mobile-session-state{display:flex;align-items:center;gap:6px;flex:0 0 auto;margin-top:2px;color:#347565;font-size:10px;font-weight:700}
  .mobile-session-state i{width:7px;height:7px;border-radius:50%;background:#28b68d;box-shadow:0 0 0 4px rgba(40,182,141,.10)}
  .mobile-quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .mobile-quick-grid button{
    position:relative;
    min-width:0;
    min-height:152px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:space-between;
    gap:13px;
    padding:18px 16px 16px;
    overflow:hidden;
    border:0;
    border-radius:18px;
    color:var(--navy);
    background:#fff;
    box-shadow:0 6px 20px rgba(9,36,76,.06),0 1px 3px rgba(9,36,76,.04);
    text-align:left;
    transform-origin:center;
    transition:transform 160ms cubic-bezier(.22,.68,0,1.1),box-shadow 180ms ease,opacity 160ms ease;
  }
  .mobile-quick-grid button:active:not(:disabled){transform:scale(.96);box-shadow:0 3px 10px rgba(9,36,76,.06)}
  .mobile-quick-grid button:disabled{opacity:.62;box-shadow:none}

  /* ── Decorative background icon watermark ── */
  .card-deco-icon{
    position:absolute;
    right:-24px;
    bottom:-24px;
    width:140px;
    height:140px;
    pointer-events:none;
    opacity:0.04;
    transform:rotate(-15deg);
    transition:transform .35s cubic-bezier(.22,.68,0,1.1),opacity .3s ease;
  }
  .mobile-quick-grid button:active:not(:disabled) .card-deco-icon{transform:scale(.92) rotate(-15deg);opacity:0.08}

  .card-deco-3d{
    position:absolute;
    right:-16px;
    bottom:-16px;
    width:110px;
    height:110px;
    object-fit:contain;
    pointer-events:none;
    opacity:0.35;
    mix-blend-mode:multiply;
    transition:transform .35s cubic-bezier(.22,.68,0,1.1),opacity .3s ease;
  }
  .mobile-quick-grid button:active:not(:disabled) .card-deco-3d{transform:scale(.92) rotate(-5deg);opacity:0.5}

  /* ── Per-card theme backgrounds ── */
  .mobile-quick-grid button[data-mobile-action="asistencia"]{
    background:linear-gradient(155deg,#fff 55%,#eef5ff);
    color:#0a4da1;
  }
  .mobile-quick-grid button[data-mobile-action="marcar"]{
    background:linear-gradient(155deg,#fff 55%,#e8f8f4);
    color:#0b7a64;
  }
  .mobile-quick-grid button[data-mobile-action="perfil"]{
    background:linear-gradient(155deg,#fff 55%,#fdf0f7);
    color:#c20e65;
  }
  .mobile-quick-grid button[data-mobile-action="jornada"]{
    background:linear-gradient(155deg,#fff 55%,#fff8ec);
    color:#a76c04;
  }
  .mobile-quick-grid button[data-mobile-action="equipo"]{
    background:linear-gradient(155deg,#fff 55%,#f0edff);
    color:#5b3da8;
  }
  .mobile-quick-grid button[data-mobile-action="gestion"]{
    background:linear-gradient(155deg,#fff 55%,#edf3fb);
    color:#0b2d59;
  }

  .mobile-quick-grid button>span:nth-child(2){min-width:0;position:relative;z-index:1}
  .mobile-quick-grid button b,.mobile-quick-grid button small{display:block;position:relative;z-index:2}
  .mobile-quick-grid button b{font-size:15px;line-height:1.3;letter-spacing:-.015em}
  .mobile-quick-grid button small{margin-top:4px;color:#687a91;font-size:11px;line-height:1.4;font-weight:500}
  .mobile-action-icon{position:relative;z-index:1;width:50px;height:50px;display:grid;place-items:center;border-radius:15px}
  .mobile-action-icon svg{width:25px;height:25px}
  .mobile-action-icon-3d{position:relative;z-index:1;width:50px;height:50px;display:grid;place-items:center;border-radius:15px;background:rgba(255,255,255,0.6);box-shadow:0 4px 12px rgba(0,0,0,0.05);backdrop-filter:blur(4px)}
  .mobile-action-icon-3d img{width:38px;height:38px;object-fit:contain;mix-blend-mode:multiply}
  .mobile-action-icon.blue{color:#075abc;background:rgba(7,90,188,.1)}
  .mobile-action-icon.mint{color:#0b8a72;background:rgba(11,138,114,.1)}
  .mobile-action-icon.pink{color:#d20b6d;background:rgba(210,11,109,.08)}
  .mobile-action-icon.amber{color:#ae6804;background:rgba(174,104,4,.1)}
  .mobile-action-icon.violet{color:#6446ac;background:rgba(100,70,172,.1)}
  .mobile-action-icon.navy{color:#fff;background:#0b2d59}
  .mobile-action-arrow{position:absolute;z-index:1;right:14px;top:19px;width:17px;height:17px;color:#b8c4d2;transition:color .18s,transform .18s}
  .mobile-quick-grid button:active:not(:disabled) .mobile-action-arrow{transform:translateX(2px);color:#8fa0b5}


  .mobile-today-summary{
    margin-top:16px;
    padding:18px;
    border:0;
    border-radius:15px;
    background:#fff;
    box-shadow:0 9px 24px rgba(9,36,76,.065);
    outline:none;
  }
  .mobile-today-summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
  .mobile-today-summary header{display:flex;align-items:center;justify-content:space-between;gap:12px}
  .mobile-today-summary header>span:first-child small,.mobile-today-summary header>span:first-child b{display:block}
  .mobile-today-summary header>span:first-child small{color:#8291a4;font-size:9px;font-weight:800;letter-spacing:.12em}
  .mobile-today-summary header>span:first-child b{margin-top:3px;color:var(--navy);font-size:14px;text-transform:capitalize}
  .mobile-today-status{padding:6px 9px;border-radius:999px;color:#53657d;background:#edf1f5;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
  .mobile-today-status.ok{color:#08785f;background:#e4f7f1}
  .mobile-today-status.late{color:#9b5c00;background:#fff0d6}
  .mobile-today-status.closed{color:#a4374a;background:#ffe9ed}
  .mobile-today-hours{display:grid;grid-template-columns:auto minmax(60px,1fr) auto;align-items:center;gap:13px;margin-top:18px}
  .mobile-today-hours span small,.mobile-today-hours span b{display:block}
  .mobile-today-hours span:last-child{text-align:right}
  .mobile-today-hours small{color:#8190a3;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
  .mobile-today-hours b{margin-top:2px;color:var(--navy);font-size:19px}
  .mobile-today-hours>i{position:relative;height:3px;border-radius:4px;background:#dfe7f0}
  .mobile-today-hours>i em{position:absolute;left:0;top:50%;width:9px;height:9px;border:2px solid #fff;border-radius:50%;background:#29a990;box-shadow:0 0 0 2px #bce8dd;transform:translateY(-50%)}
  .mobile-today-summary>p{margin:15px 0 0;padding-top:13px;border-top:1px solid var(--line-soft);color:#5e7087;font-size:12px;line-height:1.55}

}

@media (max-width:360px){
  .mobile-portal-hero{min-height:268px;padding-inline:14px}
  .mobile-portal-person{grid-template-columns:72px minmax(0,1fr);gap:14px;margin-top:35px}
  .mobile-profile-photo,.mobile-profile-avatar{width:72px;height:72px}.mobile-profile-avatar{font-size:20px}
  .mobile-portal-sheet{padding-inline:12px}
  .mobile-session-state{display:none}
  .mobile-quick-grid{gap:9px}
  .mobile-quick-grid button{min-height:132px;padding:14px 12px}
  .mobile-action-icon{width:44px;height:44px}
  .mobile-action-icon-3d{width:44px;height:44px}
  .mobile-action-icon-3d img{width:34px;height:34px}
  .card-deco-icon{width:120px;height:120px;right:-20px;bottom:-20px}
  .card-deco-3d{width:90px;height:90px;right:-10px;bottom:-10px}
}

@media (max-height:520px) and (pointer:coarse) and (min-width:568px){
  .portal[data-view="inicio"] #view-inicio{min-height:100dvh}
  .mobile-portal-home{display:grid;grid-template-columns:minmax(245px,.72fr) minmax(0,1.28fr)}
  .mobile-portal-hero{min-height:100dvh;padding:18px 22px}
  .mobile-portal-person{grid-template-columns:66px minmax(0,1fr);gap:13px;margin-top:28px}
  .mobile-profile-photo,.mobile-profile-avatar{width:66px;height:66px}.mobile-profile-avatar{font-size:18px}
  .mobile-portal-person h1{font-size:20px}
  .mobile-portal-sheet{min-height:100dvh;padding:20px max(18px,env(safe-area-inset-right)) 20px 24px;border-radius:28px 0 0 28px}
  .mobile-sheet-heading{margin-bottom:13px}.mobile-sheet-heading p{display:none}
  .mobile-quick-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
  .mobile-quick-grid button{min-height:124px;padding:13px 12px}
  .mobile-action-icon{width:42px;height:42px}.mobile-action-icon svg{width:22px;height:22px}
  .mobile-action-icon-3d{width:42px;height:42px}.mobile-action-icon-3d img{width:32px;height:32px}
  .card-deco-icon{width:110px;height:110px}
  .card-deco-3d{width:80px;height:80px;right:-8px;bottom:-8px}
  .mobile-today-summary{margin-top:10px;padding:13px 16px}
  .mobile-today-hours{margin-top:10px}.mobile-today-summary>p{margin-top:9px;padding-top:9px}
}

@media(prefers-reduced-transparency:reduce){
  .boot[data-mode="auth"]{background:#173b67;-webkit-backdrop-filter:none;backdrop-filter:none}
}

/* Navegación interior móvil: el regreso vive junto al título, no en otra barra. */
.mobile-inline-home{display:none}

@media (max-width:900px){
  .portal[data-personal="true"]:not([data-view="inicio"]) .mobile-head{display:none}
  .portal[data-personal="true"]:not([data-view="inicio"]) .workspace{
    min-height:100dvh;
    padding-top:max(24px,calc(env(safe-area-inset-top) + 16px));
  }
  .portal[data-personal="true"]:not([data-view="inicio"]) .view-head{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:10px 14px;
  }
  .portal[data-personal="true"]:not([data-view="inicio"]) .view-head>div:first-child{min-width:0}
  .portal[data-personal="true"] .mobile-inline-home{
    grid-column:2;
    grid-row:1;
    align-self:start;
    width:auto;
    min-width:86px;
    height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    margin-top:15px;
    padding:0 13px;
    overflow:hidden;
    isolation:isolate;
    border:1px solid rgba(255,255,255,.58);
    border-radius:999px;
    color:#123f70;
    background:rgba(246,250,255,.66);
    -webkit-backdrop-filter:blur(12px) saturate(112%);
    backdrop-filter:blur(12px) saturate(112%);
    box-shadow:0 6px 18px rgba(9,36,76,.08),inset 0 1px 0 rgba(255,255,255,.72);
    font-size:12px;
    font-weight:700;
    letter-spacing:-.01em;
    transition:transform 140ms var(--ease-ui),box-shadow 180ms ease,background-color 180ms ease;
  }
  .portal[data-personal="true"] .mobile-inline-home:before{
    display:none;
  }
  .portal[data-personal="true"] .mobile-inline-home svg{width:17px;height:17px;stroke-width:2}
  .portal[data-personal="true"] .mobile-inline-home:active{transform:scale(.97);box-shadow:0 2px 8px rgba(9,36,76,.07),inset 0 1px 0 rgba(255,255,255,.7)}
  .portal[data-personal="true"] .admin-view-head>.admin-head-actions{
    grid-column:1/-1;
    grid-row:2;
  }
}

@media (max-width:360px){
  .portal[data-personal="true"]:not([data-view="inicio"]) .view-head{gap:8px}
  .portal[data-personal="true"] .mobile-inline-home{min-width:80px;padding-inline:11px;font-size:11px}
}

@media (hover:hover) and (pointer:fine) and (max-width:900px){
  .portal[data-personal="true"] .mobile-inline-home:hover{transform:translateY(-1px);background:rgba(255,255,255,.74);box-shadow:0 8px 20px rgba(9,36,76,.09),inset 0 1px 0 rgba(255,255,255,.8)}
}

@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .portal[data-personal="true"] .mobile-inline-home{background:#fff}
}

@media(prefers-reduced-transparency:reduce){
  .portal[data-personal="true"] .mobile-inline-home{border-color:#d9e3ef;background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}
}

/* Desktop · Material KJA inspirado en iOS: vidrio reservado y contenido legible. */
@media (min-width:901px){
  .portal{
    --desktop-glass:rgba(250,252,255,.72);
    --desktop-glass-strong:rgba(252,253,255,.84);
    --desktop-glass-soft:rgba(255,255,255,.56);
    --desktop-glass-border:rgba(42,69,98,.08);
    --desktop-glass-shadow:0 10px 28px rgba(27,52,79,.055),inset 0 1px 0 rgba(255,255,255,.74);
    background:#edf2f7;
  }
  .workspace{
    position:relative;
    isolation:isolate;
    background:
      radial-gradient(circle at 17% -5%,rgba(94,145,198,.08),transparent 34%),
      linear-gradient(155deg,#f5f7fa 0%,#edf2f7 54%,#f7f8fa 100%);
  }

  .sidebar{
    position:sticky;
    top:16px;
    align-self:start;
    width:auto;
    height:calc(100dvh - 32px);
    min-height:0;
    margin:16px 0 16px 16px;
    padding:24px 14px 16px;
    overflow-y:auto;
    border:1px solid rgba(255,255,255,.12);
    border-radius:22px;
    color:#d4e3f2;
    background:rgba(7,38,73,.92);
    -webkit-backdrop-filter:blur(16px) saturate(110%);
    backdrop-filter:blur(16px) saturate(110%);
    box-shadow:0 14px 36px rgba(7,29,62,.16),inset 0 1px 0 rgba(255,255,255,.10);
  }
  .side-brand{color:#fff}
  .side-brand img{border-color:rgba(255,255,255,.48);box-shadow:0 6px 16px rgba(2,17,37,.15)}
  .side-nav-divider{color:#89a5c2}
  .side-nav button{color:#bed0e2;border:1px solid transparent}
  .side-nav button:hover{color:#fff;border-color:rgba(255,255,255,.07);background:rgba(255,255,255,.06)}
  .side-nav button.active{
    color:#fff;
    border-color:rgba(255,255,255,.13);
    background:rgba(255,255,255,.11);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
  }
  .side-nav button.active:before{display:none}
  .side-nav button.active svg{color:#FE037C}
  .side-help{
    border:1px solid rgba(255,255,255,.12);
    background:rgba(255,255,255,.07);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
  }
  .side-help span{color:#8eabc8}.side-help a{color:#fff}
  .side-user{border-color:rgba(255,255,255,.12)}
  .side-user b{color:#fff}.side-user small{color:#9eb6ce}.side-user button{color:#a9bed3}
  .side-user button:hover{color:#fff;background:rgba(255,255,255,.09)}

  .view-head h1{color:#08264f;text-shadow:0 1px 0 rgba(255,255,255,.66)}
  .session-chip,
  .month-toolbar button,
  .rail-title button,
  .rail-section-head button,
  .admin-refresh,
  .admin-secondary-action{
    border:1px solid rgba(42,69,98,.07);
    background:var(--desktop-glass-soft);
    -webkit-backdrop-filter:blur(10px) saturate(108%);
    backdrop-filter:blur(10px) saturate(108%);
    box-shadow:0 4px 14px rgba(24,53,91,.045),inset 0 1px 0 rgba(255,255,255,.68);
  }
  .session-chip{color:#405773}

  .day-card,
  .progress-card,
  .month-card,
  .week-strip,
  .calendar-card,
  .profile-identity,
  .profile-data,
  .team-list,
  .team-summary,
  .admin-section-nav,
  .admin-kpi,
  .admin-panel,
  .admin-modules,
  .admin-list-kpi,
  .admin-area-group,
  .admin-people-group,
  .admin-summary-hero article,
  .admin-summary-table,
  .admin-month-ledger,
  .admin-route-card,
  .admin-policy-card,
  .admin-access-requests,
  .admin-access-directory,
  .admin-access-audit,
  .admin-role-area,
  .admin-roles-audit{
    border-color:var(--desktop-glass-border);
    background:var(--desktop-glass);
    -webkit-backdrop-filter:blur(14px) saturate(108%);
    backdrop-filter:blur(14px) saturate(108%);
    box-shadow:var(--desktop-glass-shadow);
  }
  .day-card{background:var(--desktop-glass-strong)}
  .progress-card,.month-card,.profile-identity{background:var(--desktop-glass)}
  .day-context span{
    border:1px solid rgba(42,69,98,.07);
    background:rgba(255,255,255,.48);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.62);
  }
  .day-action{border-color:rgba(255,255,255,.66)}
  .mark-button:disabled{color:#6f8195;background:rgba(215,224,234,.68);box-shadow:inset 0 1px 0 rgba(255,255,255,.64)}
  .progress-track{background:rgba(31,70,111,.11);box-shadow:inset 0 1px 2px rgba(22,51,86,.08)}
  .week-day,
  .att-stat,
  .cal-day,
  .team-profile-open,
  .admin-module,
  .admin-person-card,
  .admin-contract-row{
    border-color:rgba(42,69,98,.07);
    background:rgba(255,255,255,.48);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.62);
  }
  .week-day.today,.cal-day.today{border-color:rgba(34,116,207,.42);background:rgba(224,240,255,.64)}
  .profile-notice{background:rgba(229,241,253,.62)}
  .admin-section-nav{padding:5px}
  .admin-section-nav button.active{
    border:1px solid rgba(255,255,255,.12);
    background:rgba(8,48,93,.94);
    box-shadow:0 5px 14px rgba(8,42,87,.13),inset 0 1px 0 rgba(255,255,255,.10);
  }
  .admin-module:hover{border-color:rgba(42,69,98,.11);background:rgba(255,255,255,.62)}

  .portal-rail{
    position:sticky;
    top:16px;
    align-self:start;
    height:calc(100dvh - 32px);
    margin:16px 16px 16px 0;
    padding:24px 20px;
    border:1px solid var(--desktop-glass-border);
    border-radius:22px;
    background:rgba(250,252,255,.72);
    -webkit-backdrop-filter:blur(14px) saturate(108%);
    backdrop-filter:blur(14px) saturate(108%);
    box-shadow:var(--desktop-glass-shadow);
  }
  .rail-calendar{border-color:rgba(42,69,98,.07);background:rgba(255,255,255,.44);box-shadow:inset 0 1px 0 rgba(255,255,255,.62)}
  .rail-event{background:rgba(255,255,255,.46);box-shadow:inset 0 1px 0 rgba(255,255,255,.58)}
}

@media (hover:hover) and (pointer:fine) and (min-width:901px){
  .session-chip,.month-toolbar button,.rail-title button,.rail-section-head button{transition:transform 160ms var(--ease-ui),background-color 160ms ease,box-shadow 160ms ease}
  .month-toolbar button:hover,.rail-title button:hover,.rail-section-head button:hover{transform:translateY(-1px);background:rgba(255,255,255,.72);box-shadow:0 7px 18px rgba(24,53,91,.07),inset 0 1px 0 rgba(255,255,255,.82)}
}

@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  @media (min-width:901px){
    .sidebar{background:#0a315f}
    .day-card,.progress-card,.month-card,.week-strip,.calendar-card,.profile-identity,.profile-data,.team-list,.team-summary,.admin-section-nav,.admin-kpi,.admin-panel,.admin-modules,.portal-rail{background:#f8fbfe}
  }
}

@media (prefers-reduced-transparency:reduce) and (min-width:901px){
  .sidebar{background:#0a315f;-webkit-backdrop-filter:none;backdrop-filter:none}
  .day-card,.progress-card,.month-card,.week-strip,.calendar-card,.profile-identity,.profile-data,.team-list,.team-summary,.admin-section-nav,.admin-kpi,.admin-panel,.admin-modules,.portal-rail{background:#f8fbfe;-webkit-backdrop-filter:none;backdrop-filter:none}
}

/* --- Mejora Modal Asistencia --- */
.mark-sheet {
  background: linear-gradient(170deg, #ffffff 0%, #f4f7fb 100%);
  border: 1px solid rgba(255, 255, 255, 0.8);
}
.mark-sheet h2#mark-title {
  background: linear-gradient(90deg, #0b2a5c, #075abc);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 800;
  letter-spacing: -0.03em;
}
.evidence-picker {
  border: 2px dashed #d0dbe8 !important;
  background: linear-gradient(150deg, #ffffff, #f4f7fb) !important;
  border-radius: 20px !important;
  box-shadow: inset 0 2px 10px rgba(0,0,0,0.02) !important;
  transition: border-color 0.3s ease;
}
.evidence-picker:hover {
  border-color: #a6b9cd !important;
}
.evidence-empty > span.evidence-icon-3d {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 110px !important;
  height: 95px !important;
  margin: 0 auto 14px !important;
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  filter: drop-shadow(0 10px 22px rgba(11, 42, 92, 0.16));
  animation: float 3.5s ease-in-out infinite;
}
.evidence-empty > span.evidence-icon-3d img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  mix-blend-mode: normal !important;
}
.evidence-empty b {
  font-size: 15px !important;
  color: #1a2942 !important;
}
.evidence-empty p {
  font-size: 11px !important;
}
.evidence-empty .evidence-actions {
  display: flex;
  justify-content: center;
  gap: 12px !important;
  margin-top: 20px !important;
}
.evidence-empty .evidence-actions button {
  padding: 12px 18px !important;
  font-size: 11px !important;
  border-radius: 12px !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.04) !important;
  transition: transform 0.2s, box-shadow 0.2s !important;
}
.evidence-empty .evidence-actions button:active {
  transform: scale(0.96) !important;
}
.evidence-empty .evidence-actions button:first-child {
  background: linear-gradient(135deg, #075abc, #0b2a5c) !important;
  border: none !important;
  box-shadow: 0 6px 16px rgba(7, 90, 188, 0.25) !important;
}
.mark-confirm {
  background: linear-gradient(135deg, #0b2a5c, #075abc) !important;
  border: none !important;
  box-shadow: 0 8px 24px rgba(11, 42, 92, 0.25) !important;
  border-radius: 16px !important;
  height: 54px !important;
  font-size: 14px !important;
  transition: transform 0.2s, box-shadow 0.2s !important;
}
.mark-confirm:active {
  transform: scale(0.97);
  box-shadow: 0 4px 12px rgba(11, 42, 92, 0.2) !important;
}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

/* --- Quitar fondo azul #E8F0FE al autocompletar / rellenar datos --- */
.field-box input:-webkit-autofill,
.field-box input:-webkit-autofill:hover,
.field-box input:-webkit-autofill:focus,
.field-box input:-webkit-autofill:active,
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
  -webkit-box-shadow: 0 0 0 1000px transparent inset !important;
  -webkit-text-fill-color: var(--ink, #0b2a5c) !important;
  caret-color: #075abc !important;
  background-color: transparent !important;
  transition: background-color 999999s ease-in-out 0s, color 999999s ease-in-out 0s !important;
}

/* ============================================================
   REDISEÑO ULTRA MODERNO: LATERAL PERSONAL (CALENDARIO & AGENDA)
   ============================================================ */
.portal-rail {
  padding: 22px 18px;
  background: #f8fafc;
}

/* 1. Tarjeta de Calendario */
.rail-calendar {
  margin-top: 14px !important;
  padding: 15px 14px 12px !important;
  border: 1px solid rgba(220, 230, 242, 0.9) !important;
  border-radius: 18px !important;
  background: #ffffff !important;
  box-shadow: 0 10px 28px rgba(11, 35, 71, 0.04), 0 2px 5px rgba(11, 35, 71, 0.02) !important;
}

.rail-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.rail-section-head small {
  font-size: 9px !important;
  font-weight: 800 !important;
  letter-spacing: 0.12em !important;
  color: #075abc !important;
  text-transform: uppercase !important;
}
.rail-section-head b {
  margin-top: 2px !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  color: #0b2a5c !important;
  letter-spacing: -0.02em !important;
  text-transform: capitalize !important;
}

#rail-calendar-open {
  width: 32px !important;
  height: 32px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 10px !important;
  background: #f0f5fb !important;
  border: 1px solid #e0eaf4 !important;
  color: #075abc !important;
  transition: all 0.2s ease !important;
  cursor: pointer !important;
}
#rail-calendar-open:hover {
  background: #e2eef9 !important;
  transform: translateX(2px) !important;
  color: #0b2a5c !important;
}
#rail-calendar-open svg {
  width: 15px;
  height: 15px;
}

/* Fila de días de la semana */
.rail-calendar-week {
  display: grid !important;
  grid-template-columns: repeat(7, 1fr) !important;
  gap: 3px !important;
  margin: 12px 0 6px !important;
}
.rail-calendar-week span {
  font-size: 10px !important;
  font-weight: 700 !important;
  color: #8fa0b5 !important;
  text-align: center !important;
  text-transform: uppercase !important;
}

/* Cuadrícula de días: interlineado más aireado y proporcional */
.rail-calendar-grid {
  display: grid !important;
  grid-template-columns: repeat(7, 1fr) !important;
  row-gap: 6px !important;
  column-gap: 3px !important;
}

.rail-cal-day {
  position: relative !important;
  min-height: 29px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 9px !important;
  color: #475569 !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  transition: all 0.16s ease !important;
}
.rail-cal-day:hover:not(.empty):not(.today) {
  background: #f1f5f9 !important;
  color: #0b2a5c !important;
}
.rail-cal-day.empty {
  background: transparent !important;
  cursor: default !important;
}
.rail-cal-day.off {
  color: #cbd5e1 !important;
  font-weight: 400 !important;
}
.rail-cal-day.future {
  opacity: 0.4 !important;
}
.rail-cal-day.registered {
  background: #eefaf6 !important;
  color: #087a60 !important;
  font-weight: 700 !important;
  border: 1px solid rgba(8, 122, 96, 0.14) !important;
}
.rail-cal-day.registered i {
  position: absolute !important;
  bottom: 2px !important;
  width: 3.5px !important;
  height: 3.5px !important;
  border-radius: 50% !important;
  background: #087a60 !important;
}
.rail-cal-day.today {
  background: linear-gradient(135deg, #0b2a5c, #075abc) !important;
  color: #ffffff !important;
  font-weight: 800 !important;
  box-shadow: 0 4px 14px rgba(7, 90, 188, 0.35) !important;
  transform: scale(1.06) !important;
  z-index: 2 !important;
}
.rail-cal-day.today i {
  position: absolute !important;
  bottom: 2px !important;
  width: 3.5px !important;
  height: 3.5px !important;
  border-radius: 50% !important;
  background: #38bdf8 !important;
}

/* Leyenda del Calendario */
.rail-calendar-key {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 14px !important;
  margin-top: 12px !important;
  padding-top: 10px !important;
  border-top: 1px solid #f1f5f9 !important;
  color: #64748b !important;
  font-size: 10px !important;
  font-weight: 600 !important;
}
.rail-calendar-key span {
  display: flex !important;
  align-items: center !important;
  gap: 5px !important;
}
.rail-calendar-key i {
  width: 6px !important;
  height: 6px !important;
  border-radius: 50% !important;
}
.rail-calendar-key span:first-child i {
  background: #10b981 !important;
  box-shadow: 0 0 0 2px rgba(16, 185, 129, 0.16) !important;
}
.rail-calendar-key span:last-child i {
  background: #0b2a5c !important;
  box-shadow: 0 0 0 2px rgba(11, 42, 92, 0.16) !important;
}

/* 2. Sección Agenda de Hoy / Tu Jornada (CHECKLIST STYLE) */
.rail-schedule {
  margin-top: 20px !important;
}
.rail-schedule-list {
  display: grid !important;
  gap: 9px !important;
  margin-top: 12px !important;
}

.rail-task {
  position: relative !important;
  min-height: 52px !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 10px 14px !important;
  border-radius: 14px !important;
  background: #ffffff !important;
  border: 1px solid #e7edf5 !important;
  box-shadow: 0 2px 8px rgba(11, 35, 71, 0.025) !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease !important;
}
.rail-task:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 16px rgba(11, 35, 71, 0.05) !important;
}

/* Checkbox circular de la tarea */
.task-check {
  width: 24px !important;
  height: 24px !important;
  border-radius: 50% !important;
  display: grid !important;
  place-items: center !important;
  flex: 0 0 24px !important;
  transition: all 0.2s ease !important;
}
.task-check svg {
  width: 13px !important;
  height: 13px !important;
  stroke: currentColor !important;
  stroke-width: 2.8 !important;
  fill: none !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

/* Estados de Checklist */
.rail-task.is-done {
  background: linear-gradient(135deg, #ffffff 50%, #f0fdf4 100%) !important;
  border-color: #dcfce7 !important;
}
.rail-task.is-done .task-check {
  background: #10b981 !important;
  color: #ffffff !important;
  box-shadow: 0 2px 8px rgba(16, 185, 129, 0.28) !important;
}

.rail-task.is-pending {
  background: linear-gradient(135deg, #fffdf8 50%, #fff7ed 100%) !important;
  border-color: #ffedd5 !important;
  box-shadow: 0 4px 14px rgba(245, 158, 11, 0.08) !important;
}
.rail-task.is-pending .task-check {
  background: #fffbeb !important;
  border: 2px dashed #f59e0b !important;
  color: #f59e0b !important;
  box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.12) !important;
}
.rail-task.is-pending .task-check svg {
  opacity: 0 !important;
}

.rail-task.is-ready {
  background: linear-gradient(135deg, #ffffff 50%, #f0f7ff 100%) !important;
  border-color: #dbeafe !important;
}
.rail-task.is-ready .task-check {
  background: #eff6ff !important;
  border: 2px solid #0084ff !important;
  color: #0084ff !important;
}
.rail-task.is-ready .task-check svg {
  opacity: 0 !important;
}

.rail-task.is-future {
  background: #fafbfc !important;
  border-color: #eef2f6 !important;
  opacity: 0.85 !important;
}
.rail-task.is-future .task-check {
  background: #f1f5f9 !important;
  border: 1.5px solid #cbd5e1 !important;
  color: transparent !important;
}
.rail-task.is-future .task-check svg {
  opacity: 0 !important;
}

/* Cuerpo de la Tarea */
.task-body {
  flex: 1 !important;
  min-width: 0 !important;
}
.task-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 8px !important;
}
.task-header b {
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #0f2744 !important;
  line-height: 1.2 !important;
}
.task-body small {
  display: block !important;
  margin-top: 2px !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  color: #64748b !important;
  line-height: 1.25 !important;
}

/* Pills de estado y horario */
.task-pill {
  padding: 2px 7px !important;
  border-radius: 6px !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  background: #f1f5f9 !important;
  color: #475569 !important;
  white-space: nowrap !important;
}
.task-pill.pill-alert {
  background: #fef3c7 !important;
  color: #b45309 !important;
  border: 1px solid rgba(245, 158, 11, 0.25) !important;
  animation: pillPulse 2s ease-in-out infinite !important;
}
.task-pill.pill-done {
  background: #e6f8f3 !important;
  color: #087a60 !important;
  border: 1px solid rgba(8, 122, 96, 0.18) !important;
}

@keyframes pillPulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.03); }
}

/* 3. Tarjeta Asistencia del Mes */
.rail-insight {
  display: grid !important;
  grid-template-columns: 38px 1fr !important;
  align-items: center !important;
  gap: 12px !important;
  margin-top: 18px !important;
  padding: 13px 16px !important;
  border-radius: 16px !important;
  background: linear-gradient(135deg, #0b2a5c 0%, #084996 100%) !important;
  color: #ffffff !important;
  box-shadow: 0 10px 26px rgba(11, 42, 92, 0.18) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
}
.rail-insight-icon {
  width: 38px !important;
  height: 38px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 11px !important;
  background: rgba(255, 255, 255, 0.12) !important;
  backdrop-filter: blur(8px) !important;
  color: #38bdf8 !important;
}
.rail-insight-icon svg {
  width: 19px;
  height: 19px;
}
.rail-insight small {
  font-size: 9px !important;
  font-weight: 800 !important;
  letter-spacing: 0.12em !important;
  color: rgba(255, 255, 255, 0.72) !important;
  display: block !important;
}
.rail-insight b {
  font-size: 21px !important;
  font-weight: 800 !important;
  color: #ffffff !important;
  letter-spacing: -0.03em !important;
  margin: 1px 0 0 !important;
  display: block !important;
}
.rail-insight em {
  font-size: 10px !important;
  font-weight: 500 !important;
  color: rgba(255, 255, 255, 0.85) !important;
  font-style: normal !important;
  display: block !important;
}

/* ============================================================
   MASCOTA KJA Y TARJETA DE ESTADO DE MARCADO (DESKTOP)
   ============================================================ */
.day-card-grid {
  grid-template-columns:minmax(0,1.35fr) minmax(330px,.82fr);
  border-top:0;
  background:#f8fbfe;
  box-shadow:inset 0 16px 30px -30px rgba(25,59,96,.22);
}

.day-card-head{position:relative;z-index:3;background:rgba(255,255,255,.82)}

.day-card-grid .day-action {
  position:relative;
  isolation:isolate;
  min-height:360px;
  justify-content:flex-end;
  overflow:hidden;
  padding:205px 22px 22px;
  border:0;
  background:#f4f8fd;
  box-shadow:-18px 0 34px -30px rgba(18,55,94,.24);
}

.day-card-grid .day-action:after {
  content:"";
  position:absolute;
  z-index:1;
  inset:125px 0 0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(244,248,253,0),#f4f8fd 45%,#f4f8fd);
}

.day-action-mascot {
  position:absolute;
  z-index:0;
  top:8px;
  right:0;
  width:min(430px,118%);
  pointer-events:none;
}

.day-action-mascot img {
  display:block;
  width:100%;
  height:auto;
  filter:drop-shadow(0 15px 20px rgba(11,42,92,.13));
}

.day-card-grid .day-action-copy,
.day-card-grid .mark-button {
  position:relative;
  z-index:2;
}

.day-card-grid .day-action-copy {
  width:100%;
  margin:0 0 16px;
}

.day-card-grid .day-action-copy small {
  display:block;
  color:#075abc;
  font-size:9px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.day-card-grid .day-action-copy h2 {
  max-width:19ch;
  margin:5px 0 6px;
  color:#0b2a5c;
  font-size:20px;
  font-weight:800;
  line-height:1.2;
  letter-spacing:-.025em;
}

.day-card-grid .day-action-copy p {
  max-width:34ch;
  margin:0;
  color:#64748b;
  font-size:11px;
  line-height:1.5;
}

.day-card-grid .mark-button {
  width:100%;
  min-height:62px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 34px;
  align-items:center;
  justify-content:stretch;
  gap:14px;
  margin:0;
  padding:9px 11px 9px 16px;
  border-radius:14px;
  color:#fff;
  background:#0b2a5c;
  box-shadow:0 8px 20px rgba(7,60,119,.20);
  text-align:left;
  transition:transform .18s var(--ease-ui),background-color .18s ease,box-shadow .18s ease;
}

.mark-button-copy{display:grid;gap:2px;min-width:0}
.mark-button-copy small,.mark-button-copy b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mark-button-copy small{color:#9fc2e4;font-size:8px;font-weight:800;letter-spacing:.11em}
.mark-button-copy b{color:inherit;font-size:13px;font-weight:750;letter-spacing:-.01em}
.day-card-grid .mark-button>svg{width:34px;height:34px;padding:8px;border-radius:11px;color:#fff;background:rgba(255,255,255,.12);stroke-width:2.2}

.day-card-grid .mark-button:hover:not(:disabled) {
  transform:translateY(-1px);
  background:#075abc;
  box-shadow:0 11px 25px rgba(7,90,188,.25);
}

.day-card-grid .mark-button:disabled {
  color:#64748b;
  background:#e2e8f0;
  box-shadow:none;
  cursor:not-allowed;
  opacity:1;
}

.day-card-grid .mark-button:disabled .mark-button-copy small{color:#8795a8}
.day-card-grid .mark-button:disabled>svg{color:#66768a;background:rgba(255,255,255,.58)}
.day-card[data-attendance-state="marked"] .day-card-grid .mark-button:disabled{color:#fff;background:#0b3f49;box-shadow:0 9px 22px rgba(8,63,73,.18);cursor:default}
.day-card[data-attendance-state="marked"] .day-card-grid .mark-button:disabled .mark-button-copy small{color:#83dec2}
.day-card[data-attendance-state="marked"] .day-card-grid .mark-button:disabled>svg{color:#075a4c;background:#8ee4c8}
.day-card[data-attendance-state="late"] .day-card-grid .mark-button:disabled{color:#8c5907;background:#fff0d6}

.day-summary{
  column-gap:clamp(24px,3.4vw,54px);
  border-top:0;
  background:rgba(255,255,255,.88);
  box-shadow:0 -18px 34px -32px rgba(18,55,94,.22);
}
.day-summary .month-card{border:0}

@media(max-width:900px){
  .day-card-grid{grid-template-columns:1fr}
  .day-card-grid .day-action{min-height:350px;padding-top:195px;border:0;box-shadow:0 -18px 34px -30px rgba(18,55,94,.24)}
  .day-action-mascot{right:4%;width:min(440px,78%)}
}

@media(max-width:650px){
  .day-card-grid .day-action{min-height:330px;padding:178px 18px 20px}
  .day-action-mascot{top:8px;right:-8px;width:min(390px,108%)}
  .day-card-grid .day-action:after{inset:112px 0 0}
  .day-summary{row-gap:6px;box-shadow:0 -16px 30px -30px rgba(18,55,94,.24)}
  .day-summary .month-card{border:0}
}

/* Inicio personal · composición bento basada en datos reales. */
.mobile-only-switch { display: none; }
@media(max-width:900px){
  .mobile-only-switch { display: flex; margin-top: 18px; margin-bottom: 2px; padding: 0; background: transparent; border: none; }
  .mobile-only-switch .today-mode-switch { width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mobile-only-switch .today-mode-switch > button { min-height: 48px; grid-template-columns: 22px 1fr; padding-inline: 8px; }
  .mobile-only-switch .today-mode-switch svg { width: 19px; height: 19px; }
}

.today-layout{display:block}
.today-layout .day-card{
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);
  grid-template-areas:"head head" "schedule action" "progress month";
  gap:10px;
  padding:0;
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.today-layout .day-card-head{
  grid-area:head;
  min-height:48px;
  padding:0 2px 6px;
  background:transparent;
  box-shadow:none;
}
.today-layout .day-card-head b{font-size:18px}
.today-layout .day-card-grid,.today-layout .day-summary{display:contents}
.today-layout .day-schedule,.today-layout .day-action,.today-layout .progress-card,.today-layout .month-card{
  border:0;
  border-radius:16px;
  box-shadow:0 12px 30px rgba(19,45,76,.07);
}

.today-layout .day-schedule{
  grid-area:schedule;
  min-height:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:16px 22px;
  background:rgba(255,255,255,.88);
}
.today-layout .day-section-icon{color:#3659e8;background:#eef0ff}
.today-layout .day-section-heading small{color:#78879b}
.today-layout .day-section-heading b{font-size:14px}
.today-layout .day-schedule .day-timeline{grid-template-columns:72px minmax(0,1fr) 72px;margin:20px 0 14px}
.today-layout .rail{height:6px;background:#e5e8f0}
.today-layout .rail>i{background:linear-gradient(90deg,#1467db,#7c61f5,#bb8bf4)}
.today-layout .day-context{gap:0;margin-top:auto;padding-top:10px;border-top:1px solid rgba(34,68,105,.09)}
.today-layout .day-context span{display:flex;align-items:center;gap:7px;padding:0 16px 0 0;border:0;background:transparent;box-shadow:none}
.today-layout .day-context span+span{margin-left:16px;padding-left:16px;border-left:1px solid rgba(34,68,105,.10)}
.today-layout .day-context svg{width:15px;height:15px;color:#63778e}
.today-layout .day-context b{color:#5c6f86;font-size:9px;font-weight:600}

.today-layout .day-card-grid .day-action{
  grid-area:action;
  min-height:260px;
  padding:150px 20px 18px;
  overflow:hidden;
  border:0;
  color:#fff;
  background:#071a34;
  box-shadow:0 16px 36px rgba(4,22,45,.18);
}
.today-layout .day-card-grid .day-action:after{inset:30px 0 0;background:linear-gradient(180deg,rgba(7,26,52,0) 0%,#071a34 55%)}
.today-layout .day-action-mascot{top:-15px;right:-8%;width:125%}
.today-layout .day-action-mascot img{filter:drop-shadow(0 15px 22px rgba(0,0,0,.22))}
.today-layout .day-action-copy{margin:0 0 14px}
.today-layout .day-action-copy>small{color:#77d8de}
.today-layout .day-action-copy h2{max-width:20ch;margin-top:4px;color:#fff;font-size:19px}
.today-layout .day-action-copy p{color:#c1d0e1}
.today-layout .day-card-grid .mark-button{min-height:56px;border:1px solid rgba(137,221,205,.16);background:rgba(6,47,67,.86);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.today-layout .day-card-grid .mark-button:hover:not(:disabled){background:#0a4358;box-shadow:0 10px 24px rgba(0,0,0,.18)}
.today-layout .day-card[data-attendance-state="marked"] .mark-button:disabled{color:#fff;border-color:rgba(131,222,194,.20);background:rgba(6,61,67,.90);box-shadow:inset 0 1px 0 rgba(255,255,255,.06);cursor:default}
.today-layout .day-card[data-attendance-state="marked"] .mark-button:disabled .mark-button-copy small{color:#87e0c5}
.today-layout .day-card[data-attendance-state="marked"] .mark-button:disabled>svg{color:#075a4c;background:#8ee4c8}

.today-layout .day-card-grid .mark-button.is-view {
  cursor:pointer;
  border-color:rgba(131,222,194,.22);
  color:#fff;
  background:rgba(6,61,67,.92);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 8px 18px rgba(0,0,0,.12);
}

.today-layout .day-card-grid .mark-button.is-view .mark-button-copy small { color:#8ce2c9; }
.today-layout .day-card-grid .mark-button.is-view>svg { color:#075a4c;background:#8ee4c8; }
.today-layout .day-card-grid .mark-button.is-view:hover { background:#09505a; }

.today-layout .day-card[data-attendance-state="late"] .mark-button.is-view {
  border-color:rgba(255,207,126,.24);
  color:#fff;
  background:#7d3b0d;
}

.today-layout .day-card[data-attendance-state="late"] .mark-button.is-view .mark-button-copy small { color:#ffd59a; }
.today-layout .day-card[data-attendance-state="late"] .mark-button.is-view>svg { color:#713006;background:#fff0d0; }
.today-layout .day-card[data-attendance-state="late"] .mark-button.is-view:hover { background:#91470e; }

.today-layout .progress-card{
  grid-area:progress;
  min-height:0;
  display:grid;
  grid-template-columns:96px minmax(0,1fr);
  grid-template-rows:1fr;
  align-items:center;
  gap:18px;
  padding:16px 22px;
  background:rgba(255,255,255,.88);
}
.hours-ring{
  --hours-angle:0deg;
  position:relative;
  width:112px;
  height:112px;
  display:grid;
  place-content:center;
  justify-items:center;
  isolation:isolate;
  border-radius:50%;
  background:conic-gradient(from -35deg,#5a47ed 0deg,#4b86ef var(--hours-angle),#e5e7ff var(--hours-angle) 360deg);
}
.hours-ring:before{content:"";position:absolute;z-index:-1;inset:10px;border-radius:50%;background:#fff;box-shadow:inset 0 2px 5px rgba(31,52,84,.06)}
.hours-ring>span{display:flex;align-items:baseline;gap:3px;color:#0b2a5c;line-height:1}
.hours-ring>span strong{font-size:26px;letter-spacing:-.035em}.hours-ring>span>b{font-size:13px}
.hours-ring>small{margin-top:7px;color:#7a899d;font-size:8px}.hours-ring>small b{color:#4f6076}
.today-layout .progress-card .summary-copy{min-width:0}
.today-layout .progress-card .summary-copy .eyebrow{margin-bottom:7px;color:#62758d}
.hours-rate{display:block;color:#0b2a5c;font-size:12px}
.today-layout .progress-card .summary-copy>p:last-of-type{margin:8px 0 0;color:#5f7188;font-size:10px}
.today-layout .progress-card .progress-track{height:6px;margin-top:18px;background:#e6e9f1}
.today-layout .progress-card .progress-track i{background:linear-gradient(90deg,#315fee,#8a7df1)}

.today-layout .month-card{
  grid-area:month;
  min-height:0;
  display:grid;
  align-content:center;
  gap:14px;
  padding:16px 22px;
  background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(240,252,247,.86));
}
.month-card-heading{display:flex;align-items:center;gap:14px}
.today-layout .month-icon{width:48px;height:48px;color:#0b9c70;background:#e4f8ef;box-shadow:none}
.today-layout .month-icon svg{width:23px}
.month-card-heading>span:last-child small,.month-card-heading>span:last-child b,.month-card-heading>span:last-child em{display:block}
.today-layout .month-card small{color:#708198;font-size:9px;font-weight:800;letter-spacing:.1em}
.today-layout .month-card b{margin-top:2px;color:#0b2a5c;font-size:27px}
.today-layout .month-card em{margin-top:2px;color:#687b91;font-size:9px;font-style:normal}
.month-days-visual{display:flex;flex-wrap:wrap;align-items:center;gap:9px;min-height:13px}
.month-days-visual i{position:relative;width:12px;height:12px;flex:0 0 12px;border-radius:50%;background:#27b985}
.month-days-visual i.t{background:#e5a33c}.month-days-visual i.j{background:#4f8fe7}.month-days-visual i.ng{background:#d86576}.month-days-visual i.pending{border:1.5px solid #c7d1de;background:transparent}
.month-days-visual i:not(.pending):after{content:"";position:absolute;left:4px;top:2px;width:3px;height:5px;border-right:1.5px solid #fff;border-bottom:1.5px solid #fff;transform:rotate(45deg)}

@media(max-width:1050px){
  .today-layout .day-card{grid-template-columns:minmax(0,1fr) minmax(330px,.9fr)}
  .today-layout .day-schedule{padding-inline:24px}
  .today-layout .progress-card{grid-template-columns:96px minmax(0,1fr);gap:18px;padding-inline:20px}
  .hours-ring{width:96px;height:96px}.hours-ring>span strong{font-size:23px}
}

@media(max-width:900px){
  .today-layout .day-card{grid-template-columns:1fr;grid-template-areas:"head" "schedule" "action" "progress" "month";gap:14px}
  .today-layout .day-schedule{min-height:316px}
  .today-layout .day-card-grid .day-action{min-height:350px;padding-top:205px}
  .today-layout .day-action-mascot{right:0;width:min(480px,95%)}
  .today-layout .progress-card,.today-layout .month-card{min-height:148px}
}

@media(max-width:650px){
  .today-layout .day-card-head{padding-inline:2px}
  .today-layout .day-schedule{min-height:300px;padding:24px 18px}
  .today-layout .day-schedule .day-timeline{grid-template-columns:62px minmax(0,1fr) 62px;margin:42px 0 38px}
  .today-layout .day-context span{padding-right:12px}.today-layout .day-context span+span{margin-left:12px;padding-left:12px}
  .today-layout .day-card-grid .day-action{min-height:340px;padding:194px 18px 18px}
  .today-layout .day-action-mascot{top:-10px;right:-8px;width:min(420px,120%)}
  .today-layout .progress-card{grid-template-columns:92px minmax(0,1fr);gap:17px;padding:20px 18px}
  .hours-ring{width:92px;height:92px}.hours-ring:before{inset:8px}.hours-ring>span strong{font-size:22px}
  .today-layout .month-card{padding:22px 18px}
  .month-days-visual{gap:8px}
}

/* ============================================================
   LÍNEA DE TIEMPO ELEGANTE Y MINIMALISTA (HORARIO ASIGNADO)
   ============================================================ */
.day-schedule {
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  padding: 24px 26px !important;
}

.day-section-heading {
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
}
.day-section-icon {
  width: 32px !important;
  height: 32px !important;
  border-radius: 9px !important;
  background: #edf5fe !important;
  color: #0a4da1 !important;
}

.day-schedule .day-timeline {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 72px 1fr 72px !important;
  align-items: center !important;
  margin: 18px 0 14px !important;
}

.time-label small {
  color: #78899e !important;
  font-size: 9px !important;
  font-weight: 800 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
}
.time-label b {
  margin-top: 3px !important;
  color: #0b2a5c !important;
  font-size: 22px !important;
  font-weight: 800 !important;
  letter-spacing: -0.03em !important;
  font-variant-numeric: tabular-nums !important;
}
.time-label.end {
  text-align: right !important;
}

/* Arco SVG del Horario (Camino tipo arcoíris) */
.rail-arc {
  position: relative;
  margin: 0 8px;
  min-height: 42px;
}
.arc-svg {
  width: 100%;
  height: auto;
  overflow: visible;
  display: block;
}
.arc-track {
  stroke: #e8eef5;
  stroke-width: 5;
  stroke-linecap: round;
}
.arc-progress {
  stroke: url(#arcGrad);
  stroke-width: 5;
  stroke-linecap: round;
  transition: stroke-dashoffset 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.arc-terminal {
  filter: drop-shadow(0 1px 3px rgba(0,0,0,.12));
}
.arc-now-dot {
  filter: drop-shadow(0 1px 4px rgba(0,132,255,.4));
  transition: cx 0.8s ease, cy 0.8s ease;
}
.arc-now-glow {
  transition: cx 0.8s ease, cy 0.8s ease;
  animation: arcGlowPulse 2.5s ease-in-out infinite;
}
@keyframes arcGlowPulse {
  0%, 100% { opacity: 0.2; r: 12; }
  50% { opacity: 0.45; r: 16; }
}
#arc-now-label rect {
  transition: x 0.8s ease, y 0.8s ease;
}
#arc-now-label text {
  transition: x 0.8s ease, y 0.8s ease;
  font-family: inherit;
}

/* Chips de Modalidad y Tolerancia */
.day-context {
  display: flex !important;
  gap: 8px !important;
  margin-top: 0px !important;
}
.day-context span {
  display: inline-flex !important;
  align-items: center !important;
  padding: 4px 10px !important;
  border-radius: 8px !important;
  color: #475569 !important;
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  font-size: 10px !important;
  font-weight: 600 !important;
}

/* ============================================================
   COUNTDOWN GLASSMORPHIC (TIEMPO RESTANTE DE JORNADA)
   ============================================================ */
.shift-clock {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  margin: 12px 0 8px;
  padding: 11px 16px;
  border-radius: 14px;
  background: rgba(237, 245, 254, .45);
  border: 1px solid rgba(10, 77, 161, .06);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.clock-label {
  margin: 0;
  color: #0a4da1;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.clock-digits {
  display: flex;
  align-items: center;
  gap: 6px;
}

.clock-digit-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.clock-digit {
  position: relative;
  width: 46px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, .7);
  border-radius: 10px;
  border: 1px solid rgba(15, 23, 42, .05);
  box-shadow: 0 2px 8px rgba(15, 23, 42, .04);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.clock-digit span {
  color: #0b2a5c;
  font-size: 21px;
  font-weight: 800;
  letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.clock-digit-group small {
  color: #94a3b8;
  font-size: 7.5px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.clock-sep {
  color: #94a3b8;
  font-size: 18px;
  font-weight: 700;
  margin: 0 1px;
  padding-bottom: 12px;
}

.clock-caption {
  margin: 2px 0 0;
  color: #64748b;
  font-size: 10px;
  font-weight: 500;
}

/* Tick animation */
@keyframes digitTick {
  0% { transform: translateY(-2px); opacity: .4; }
  100% { transform: translateY(0); opacity: 1; }
}
.clock-digit.tick span {
  animation: digitTick .28s ease-out;
}

/* Jornada finalizada */
.shift-clock.ended {
  background: rgba(241, 245, 249, .4);
  border-color: rgba(148, 163, 184, .08);
}
.shift-clock.ended .clock-label {
  color: #64748b;
}
.shift-clock.ended .clock-digit {
  background: rgba(248, 250, 252, .6);
}
.shift-clock.ended .clock-digit span {
  color: #94a3b8;
}
.shift-clock.ended .clock-sep {
  color: #cbd5e1;
}

/* ============================================================
   HEADER PREMIUM – Bienvenida + Sesión + Fecha
   ============================================================ */

/* ── Banner de Bienvenida ── */
.view-head {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px !important;
  margin-bottom: 12px !important;
  padding: 16px 24px !important;
  border-radius: 18px !important;
  background: linear-gradient(135deg, #071a36 0%, #0b2347 50%, #0e2d52 100%) !important;
  overflow: hidden !important;
  box-shadow: 0 6px 22px rgba(11, 42, 92, .16) !important;
}

/* Mesh decorativo de fondo */
.view-head::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background:
    radial-gradient(ellipse 60% 80% at 85% 20%, rgba(59, 158, 255, .2), transparent),
    radial-gradient(ellipse 50% 70% at 10% 80%, rgba(94, 206, 208, .12), transparent) !important;
  pointer-events: none !important;
}

/* Patrón de puntos sutil */
.view-head::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background-image: radial-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px) !important;
  background-size: 18px 18px !important;
  pointer-events: none !important;
}

.view-head > div {
  position: relative !important;
  z-index: 1 !important;
}

.view-head .eyebrow,
.view-head > div > p.eyebrow {
  margin: 0 0 4px !important;
  color: #5eced0 !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
}

.view-head h1 {
  margin: 0 !important;
  color: #ffffff !important;
  font-size: 22px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: -.03em !important;
}

.view-head > div > p:last-child {
  margin: 6px 0 0 !important;
  color: rgba(255, 255, 255, .55) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
}

/* ── Session Chip Premium ── */
.session-chip {
  position: relative !important;
  z-index: 1 !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 10px 16px !important;
  border: 1px solid rgba(255, 255, 255, .12) !important;
  border-radius: 14px !important;
  color: rgba(255, 255, 255, .7) !important;
  background: rgba(255, 255, 255, .08) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .08) !important;
}

.session-chip i {
  width: 8px !important;
  height: 8px !important;
  border-radius: 50% !important;
  background: #34d399 !important;
  box-shadow: 0 0 0 3px rgba(52, 211, 153, .2) !important;
  animation: sessionPulse 2.5s ease-in-out infinite !important;
}

.session-chip b {
  color: #ffffff !important;
  font-weight: 700 !important;
}

@keyframes sessionPulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(52, 211, 153, .2); }
  50% { box-shadow: 0 0 0 6px rgba(52, 211, 153, .35); }
}

/* ── Sub-Header Fecha + Estado ── */
.day-card-head {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding-bottom: 8px !important;
  margin-bottom: 2px !important;
  border-bottom: 1px solid #edf2f7 !important;
}

.day-card-head > span:first-child small {
  color: #0a4da1 !important;
  font-size: 9px !important;
  font-weight: 800 !important;
  letter-spacing: .12em !important;
}

.day-card-head > span:first-child b {
  display: block !important;
  margin-top: 3px !important;
  color: #0b2a5c !important;
  font-size: 15px !important;
  font-weight: 700 !important;
}

/* Status pill refined */
.status-pill {
  padding: 6px 14px !important;
  border-radius: 10px !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: .06em !important;
}

@media (max-width: 600px) {
  .view-head {
    flex-direction: column !important;
    align-items: flex-start !important;
    padding: 22px 20px !important;
    border-radius: 16px !important;
  }
  .view-head h1 {
    font-size: 24px !important;
  }
  .session-chip {
    align-self: flex-start !important;
  }
}

/* ============================================================
   MARCADO: validación real + comprobante
   ============================================================ */
.mark-sheet {
  isolation: isolate;
}

.mark-sheet h2#mark-title,
.mark-processing h2,
.mark-receipt h2 {
  color: #0b2a5c;
  background: none;
  -webkit-background-clip: initial;
  -webkit-text-fill-color: currentColor;
  letter-spacing: -.035em;
}

.mark-confirm-view > p:not(.eyebrow):not(.privacy-note) {
  margin: 0 0 20px;
  color: #6f7e91;
  font-size: 11px;
  line-height: 1.65;
}

.mark-processing,
.mark-receipt {
  outline: none;
  text-align: center;
  animation: markPanelIn .28s cubic-bezier(.22, 1, .36, 1) both;
}

.mark-processing {
  padding: 14px 2px 2px;
}

.mark-processing .eyebrow,
.mark-receipt .eyebrow {
  margin: 0 0 8px;
  color: #087a83;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .15em;
}

.mark-processing h2,
.mark-receipt h2 {
  margin: 0 0 8px;
  font-size: clamp(23px, 5vw, 28px);
  line-height: 1.18;
}

.mark-processing > p:not(.eyebrow):not(.mark-processing-note),
.mark-receipt > p:not(.eyebrow):not(.receipt-note) {
  margin: 0 auto;
  max-width: 390px;
  color: #718198;
  font-size: 11px;
  line-height: 1.65;
}

.mark-loader {
  position: relative;
  display: grid;
  width: 104px;
  height: 104px;
  margin: 0 auto 22px;
  place-items: center;
}

.mark-loader::before,
.mark-loader > i {
  content: "";
  position: absolute;
  border-radius: 50%;
}

.mark-loader::before {
  inset: 8px;
  border: 1px solid rgba(7, 90, 188, .28);
  background: rgba(7, 90, 188, .035);
  animation: markBreath 1.8s cubic-bezier(.4, 0, .2, 1) infinite;
}

.mark-loader > i {
  inset: 0;
  border: 1px solid rgba(7, 90, 188, .2);
  animation: markWave 1.8s cubic-bezier(.16, 1, .3, 1) infinite;
}

.mark-particles {
  --particle-a: #1476d4;
  --particle-b: #22a9b6;
  --particle-c: #7ccfd6;
  position: absolute;
  z-index: 1;
  inset: 0;
  font-style: normal;
  pointer-events: none;
}

.mark-sheet[data-progress-step="evidence"] .mark-particles {
  --particle-a: #ec1674;
  --particle-b: #075abc;
  --particle-c: #54c8cf;
}

.mark-sheet[data-progress-step="server"] .mark-particles {
  --particle-a: #075abc;
  --particle-b: #0b2a5c;
  --particle-c: #33aeb8;
}

.mark-particles > i {
  --angle: 0deg;
  --order: 0;
  position: absolute;
  left: 50%;
  top: 50%;
  width: 7px;
  height: 7px;
  margin: -3.5px;
  transform: rotate(var(--angle)) translateY(-49px);
}

.mark-particles > i::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: var(--particle-a);
  box-shadow: 0 3px 8px rgba(7, 90, 188, .16);
  animation: markParticle 1.5s cubic-bezier(.4, 0, .2, 1) infinite;
  animation-delay: calc(var(--order) * -.12s);
}

.mark-particles > i:nth-child(3n + 2)::after { background: var(--particle-b); }
.mark-particles > i:nth-child(3n)::after { background: var(--particle-c); }
.mark-particles > i:nth-child(1) { --angle: 0deg; --order: 0; }
.mark-particles > i:nth-child(2) { --angle: 36deg; --order: 1; }
.mark-particles > i:nth-child(3) { --angle: 72deg; --order: 2; }
.mark-particles > i:nth-child(4) { --angle: 108deg; --order: 3; }
.mark-particles > i:nth-child(5) { --angle: 144deg; --order: 4; }
.mark-particles > i:nth-child(6) { --angle: 180deg; --order: 5; }
.mark-particles > i:nth-child(7) { --angle: 216deg; --order: 6; }
.mark-particles > i:nth-child(8) { --angle: 252deg; --order: 7; }
.mark-particles > i:nth-child(9) { --angle: 288deg; --order: 8; }
.mark-particles > i:nth-child(10) { --angle: 324deg; --order: 9; }

.mark-loader > span {
  position: relative;
  z-index: 2;
  display: grid;
  width: 62px;
  height: 62px;
  border-radius: 21px;
  color: #fff;
  background: #0b2a5c;
  box-shadow: 0 12px 28px rgba(11, 42, 92, .2);
  place-items: center;
  animation: markCoreBreath 1.8s cubic-bezier(.4, 0, .2, 1) infinite;
}

.mark-loader svg {
  width: 28px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.mark-processing-track {
  height: 5px;
  margin: 24px 0 14px;
  overflow: hidden;
  border-radius: 99px;
  background: #e6edf5;
}

.mark-processing-track i {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #075abc, #19aebb);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .42s cubic-bezier(.22, 1, .36, 1);
}

.mark-steps {
  display: grid;
  gap: 8px;
  text-align: left;
}

.mark-steps > span {
  display: grid;
  min-height: 48px;
  padding: 9px 12px;
  border: 1px solid #e6ebf1;
  border-radius: 13px;
  color: #8b98aa;
  background: rgba(255, 255, 255, .72);
  grid-template-columns: 25px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  transition: border-color .22s ease, background-color .22s ease, color .22s ease;
}

.mark-steps > span > i {
  position: relative;
  width: 22px;
  height: 22px;
  border: 2px solid #cbd5e1;
  border-radius: 50%;
}

.mark-steps b {
  color: #31445e;
  font-size: 10px;
}

.mark-steps small {
  font-size: 8.5px;
  font-weight: 700;
  white-space: nowrap;
}

.mark-steps > span.active {
  border-color: rgba(7, 90, 188, .22);
  color: #075abc;
  background: #f1f7ff;
}

.mark-steps > span.active > i {
  border-color: rgba(7, 90, 188, .26);
  background: rgba(7, 90, 188, .06);
}

.mark-steps > span.active > i::after {
  content: "";
  position: absolute;
  inset: 5px;
  border-radius: 50%;
  background: #075abc;
  animation: markActivePulse 1.15s cubic-bezier(.4, 0, .2, 1) infinite;
}

.mark-steps > span.done,
.mark-steps > span.skipped {
  color: #087d6c;
  background: #f2fbf8;
}

.mark-steps > span.done > i {
  border-color: #16ad90;
  background: #16ad90;
}

.mark-steps > span.done > i::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 2px;
  width: 6px;
  height: 11px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  animation: markCheckIn .26s cubic-bezier(.16, 1, .3, 1) both;
}

.mark-steps > span.skipped {
  color: #6f7e91;
  background: #f7f9fb;
}

.mark-steps > span.skipped > i::after {
  content: "";
  position: absolute;
  left: 4px;
  right: 4px;
  top: 8px;
  height: 2px;
  border-radius: 2px;
  background: #94a3b8;
}

.mark-processing-note {
  margin: 16px 0 0;
  color: #93a0b1;
  font-size: 9px;
}

.mark-receipt {
  padding-top: 4px;
}

.receipt-seal {
  width: 88px;
  height: 88px;
  margin: 0 auto 16px;
  color: #10a884;
}

.receipt-seal svg {
  width: 100%;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 3;
  filter: drop-shadow(0 9px 14px rgba(16, 168, 132, .16));
}

.receipt-seal circle {
  fill: #ecfbf6;
  stroke-dasharray: 170;
  stroke-dashoffset: 170;
  animation: receiptCircle .58s cubic-bezier(.22, 1, .36, 1) .08s forwards;
}

.receipt-seal path {
  stroke-dasharray: 36;
  stroke-dashoffset: 36;
  animation: receiptCheck .38s cubic-bezier(.22, 1, .36, 1) .48s forwards;
}

.mark-sheet[data-receipt-state="late"] .receipt-seal {
  color: #d38312;
}

.mark-sheet[data-receipt-state="late"] .receipt-seal circle {
  fill: #fff7e9;
}

.mark-sheet[data-receipt-state="late"] .mark-receipt .eyebrow {
  color: #9b4c0d;
}

.mark-sheet[data-receipt-state="late"] .receipt-card {
  background: #873b0b;
  box-shadow: 0 18px 38px rgba(135, 59, 11, .2);
}

.mark-sheet[data-receipt-state="late"] .receipt-main {
  background:
    radial-gradient(circle at 100% 0, rgba(255, 199, 93, .26), transparent 46%),
    #873b0b;
}

.mark-sheet[data-receipt-state="late"] .receipt-main small {
  color: #ffd99a;
}

.mark-sheet[data-receipt-state="late"] .receipt-main b {
  display: inline-flex;
  width: max-content;
  padding: 6px 10px;
  border-radius: 999px;
  color: #713006;
  background: #fff0d0;
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
  align-items: center;
  gap: 7px;
}

.mark-sheet[data-receipt-state="late"] .receipt-main b::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #dc720e;
}

.mark-sheet[data-receipt-state="late"] .receipt-details {
  background: #fffaf1;
}

.mark-sheet[data-receipt-state="late"] .receipt-details small {
  color: #946b3a;
}

.mark-sheet[data-receipt-state="late"] .receipt-details b {
  color: #5e3b1f;
}

.mark-sheet[data-receipt-state="late"] .receipt-note svg {
  stroke: #d47a16;
}

.mark-sheet[data-receipt-state="neutral"] .receipt-seal {
  color: #446c9d;
}

.mark-sheet[data-receipt-state="neutral"] .receipt-seal circle {
  fill: #eef5fc;
}

.receipt-card {
  margin: 22px 0 16px;
  overflow: hidden;
  border-radius: 18px;
  text-align: left;
  background: #092a4d;
  box-shadow: 0 18px 38px rgba(9, 42, 77, .18);
  animation: receiptUnfold .46s cubic-bezier(.16, 1, .3, 1) .12s both;
}

.receipt-main {
  display: flex;
  min-height: 102px;
  padding: 20px 22px;
  color: #fff;
  align-items: center;
  justify-content: space-between;
  background:
    radial-gradient(circle at 100% 0, rgba(53, 211, 180, .22), transparent 43%),
    #092a4d;
}

.receipt-main span {
  display: grid;
  gap: 5px;
}

.receipt-main small,
.receipt-details small {
  color: #62d3c5;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.receipt-main b {
  font-size: 15px;
}

.receipt-main strong {
  font-size: 31px;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.04em;
}

.receipt-details {
  display: grid;
  padding: 16px 18px 18px;
  color: #31445e;
  background: #f7fafc;
  grid-template-columns: 1.25fr .9fr 1.15fr;
  gap: 13px;
}

.receipt-details span {
  display: grid;
  min-width: 0;
  gap: 4px;
}

.receipt-details small {
  color: #8695a9;
}

.receipt-details b {
  overflow: hidden;
  color: #203b5d;
  font-size: 9px;
  line-height: 1.45;
  text-overflow: ellipsis;
}

.receipt-close {
  width: 100%;
  min-height: 54px;
  display: flex;
  padding: 0 18px;
  border: 0;
  border-radius: 15px;
  color: #fff;
  background: #075abc;
  box-shadow: 0 10px 24px rgba(7, 90, 188, .2);
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.receipt-close > span {
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
}

.receipt-close > svg {
  width: 18px;
  height: 18px;
  display: block;
  flex: 0 0 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.receipt-note {
  display: flex;
  margin: 13px auto 0;
  color: #8391a4;
  font-size: 8.5px;
  line-height: 1.55;
  align-items: center;
  justify-content: center;
  gap: 7px;
}

.receipt-note svg {
  width: 15px;
  flex: 0 0 15px;
  fill: none;
  stroke: #18a58c;
  stroke-width: 1.8;
}

@keyframes markPanelIn {
  from { opacity: 0; transform: translateY(5px); }
  to { opacity: 1; transform: none; }
}
@keyframes markBreath {
  0%, 100% { transform: scale(.96); background-color: rgba(7, 90, 188, .025); }
  50% { transform: scale(1); background-color: rgba(7, 90, 188, .065); }
}
@keyframes markWave {
  0% { opacity: 0; transform: scale(.78); }
  28% { opacity: .7; }
  100% { opacity: 0; transform: scale(1.06); }
}
@keyframes markCoreBreath {
  0%, 100% { transform: translateY(0) scale(.985); box-shadow: 0 10px 24px rgba(11, 42, 92, .17); }
  50% { transform: translateY(-1px) scale(1); box-shadow: 0 14px 30px rgba(11, 42, 92, .22); }
}
@keyframes markActivePulse {
  0%, 100% { opacity: .48; transform: scale(.72); }
  50% { opacity: 1; transform: scale(1); }
}
@keyframes markParticle {
  0%, 100% { opacity: .2; transform: scale(.62); }
  38% { opacity: 1; transform: scale(1); }
  68% { opacity: .42; transform: scale(.78); }
}
@keyframes markCheckIn {
  from { opacity: 0; transform: rotate(45deg) scale(.65); }
  to { opacity: 1; transform: rotate(45deg) scale(1); }
}
@keyframes receiptUnfold {
  from { opacity: 0; clip-path: inset(0 0 14% 0 round 18px); transform: translateY(7px); }
  to { opacity: 1; clip-path: inset(0 round 18px); transform: none; }
}
@keyframes receiptCircle { to { stroke-dashoffset: 0; } }
@keyframes receiptCheck { to { stroke-dashoffset: 0; } }

@media (max-width: 600px) {
  .mark-processing,
  .mark-receipt { padding-inline: 3px; }
  .receipt-details { grid-template-columns: 1fr 1fr; }
  .receipt-details span:last-child { grid-column: 1 / -1; }
  .mark-steps small { max-width: 116px; overflow: hidden; text-overflow: ellipsis; }
}

@media (prefers-reduced-motion: reduce) {
  .mark-processing,
  .mark-receipt,
  .mark-loader::before,
  .mark-loader > i,
  .mark-loader > span,
  .mark-particles > i::after,
  .mark-steps > span.active > i::after,
  .mark-steps > span.done > i::after,
  .receipt-seal circle,
  .receipt-seal path,
  .receipt-card,
  .evidence-empty > span.evidence-icon-3d { animation: none !important; }
  .receipt-seal circle,
  .receipt-seal path { stroke-dashoffset: 0; }
  .mark-particles > i::after { opacity: .58; transform: scale(.82); }
  .mark-processing-track i { transition: none; }
}

/* Cabecera de inicio: franja compacta y enfocada en la jornada. */
#view-inicio > .view-head {
  gap: 24px !important;
  margin-bottom: 20px !important;
  padding: 17px 22px !important;
  border-radius: 16px !important;
  background: linear-gradient(110deg, #091f3d 0%, #0b2f58 100%) !important;
  box-shadow: 0 8px 22px rgba(11, 42, 92, .13) !important;
}

#view-inicio > .view-head::before {
  background: linear-gradient(90deg, transparent 54%, rgba(79, 151, 222, .1)) !important;
}

#view-inicio > .view-head::after {
  content: none !important;
}

#view-inicio > .view-head > div {
  min-width: 0 !important;
}

#view-inicio > .view-head .eyebrow,
#view-inicio > .view-head > div > p.eyebrow {
  display: none !important;
}

#view-inicio > .view-head h1 {
  font-size: clamp(21px, 1.8vw, 25px) !important;
  font-weight: 700 !important;
  line-height: 1.18 !important;
  letter-spacing: -.025em !important;
}

#view-inicio > .view-head > div > p:last-child {
  margin: 4px 0 0 !important;
  color: #c7d5e5 !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
}

#view-inicio > .view-head .session-chip {
  gap: 7px !important;
  padding: 7px 10px !important;
  border-color: rgba(255, 255, 255, .14) !important;
  border-radius: 10px !important;
  color: #c7d5e5 !important;
  background: rgba(255, 255, 255, .07) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  box-shadow: none !important;
  font-size: 10px !important;
  font-weight: 500 !important;
}

#view-inicio > .view-head .session-chip i {
  width: 7px !important;
  height: 7px !important;
  box-shadow: 0 0 0 3px rgba(52, 211, 153, .16) !important;
  animation: none !important;
}

@media (max-width: 600px) {
  #view-inicio > .view-head {
    flex-direction: row !important;
    align-items: center !important;
    gap: 14px !important;
    padding: 15px 16px !important;
    border-radius: 14px !important;
  }

  #view-inicio > .view-head h1 {
    font-size: 21px !important;
  }

  #view-inicio > .view-head > div > p:last-child {
    max-width: 30ch !important;
  }

  #view-inicio > .view-head .session-chip {
    flex: 0 0 auto !important;
    align-self: center !important;
    margin-top: 0 !important;
  }
}

/* Sistema de curvas: una jerarquía consistente en todo el dashboard. */
@media (min-width:901px) {
  .portal .sidebar,
  .portal .portal-rail {
    border-radius:var(--radius-shell);
  }
}

.portal #view-inicio > .view-head,
.portal .day-card,
.portal .progress-card,
.portal .month-card,
.portal .calendar-card,
.portal .profile-identity,
.portal .profile-data,
.portal .team-list,
.portal .team-summary,
.portal .rail-calendar,
.portal .rail-insight,
.portal .admin-section-nav,
.portal .admin-kpi,
.portal .admin-panel,
.portal .admin-modules,
.portal .admin-list-kpi,
.portal .admin-area-group,
.portal .admin-people-group,
.portal .admin-summary-hero article,
.portal .admin-summary-table,
.portal .admin-month-ledger,
.portal .admin-route-card,
.portal .admin-policy-card,
.portal .admin-access-requests,
.portal .admin-access-directory,
.portal .admin-access-audit,
.portal .admin-role-area,
.portal .admin-roles-audit {
  border-radius:var(--radius-card);
}

/* Los cuatro bloques del inicio comparten exactamente la misma silueta. */
.portal .today-layout .day-schedule,
.portal .today-layout .day-card-grid .day-action,
.portal .today-layout .progress-card,
.portal .today-layout .month-card {
  border-radius:var(--radius-card);
  overflow:hidden;
}

.portal .shift-clock,
.portal .day-section-icon,
.portal .day-action-icon,
.portal .summary-icon,
.portal .month-icon,
.portal .rail-event,
.portal .rail-empty,
.portal .att-stat,
.portal .cal-day,
.portal .profile-notice,
.portal .team-kpi,
.portal .team-row,
.portal .admin-module,
.portal .admin-person-card,
.portal .admin-contract-row,
.portal .receipt-card,
.portal .evidence-picker {
  border-radius:var(--radius-panel);
}

.portal .side-nav button,
.portal .session-chip,
.portal .time-preview-switch,
.portal .mark-button,
.portal .day-context span,
.portal .rail-cal-day,
.portal .month-toolbar button,
.portal .team-profile-open,
.portal .admin-refresh,
.portal .admin-primary-action,
.portal .admin-secondary-action,
.portal .admin-date-control button,
.portal .admin-month-picker button,
.portal .field-box,
.portal .primary {
  border-radius:var(--radius-control);
}

.portal .status-pill,
.portal .profile-badge,
.portal .team-state,
.portal .rail-role,
.portal .admin-role-chip,
.portal .admin-status-pill,
.portal .time-preview-track {
  border-radius:var(--radius-pill);
}

@media (min-width:601px) {
  .mark-sheet,
  .admin-editor-sheet,
  .admin-month-sheet,
  .team-profile-sheet {
    border-radius:var(--radius-shell);
  }
}

/* Control temporal para comparar el ambiente automático con la vista de día. */
#view-inicio > .view-head .header-tools {
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex:0 0 auto;
}

.time-preview-switch {
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid rgba(255,255,255,.14);
  border-radius:50%;
  color:#c7d5e5;
  background:rgba(255,255,255,.07);
  box-shadow:none;
  cursor:pointer;
  transition:color 180ms ease,border-color 180ms ease,background-color 180ms ease;
}

.time-preview-switch > svg {
  grid-area: 1 / 1;
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition: opacity 300ms ease, transform 400ms cubic-bezier(.16,1,.3,1);
}

.time-preview-switch .icon-sun {
  opacity: 1;
  transform: rotate(0deg);
}
.time-preview-switch .icon-moon {
  opacity: 0;
  transform: rotate(-90deg);
}

.time-preview-switch[aria-checked="true"] {
  color:#fff1c4;
  border-color:rgba(255,210,107,.3);
  background:rgba(255,190,72,.13);
}

.time-preview-switch[aria-checked="true"] .icon-sun {
  opacity: 0;
  transform: rotate(90deg);
}

.time-preview-switch[aria-checked="true"] .icon-moon {
  opacity: 1;
  transform: rotate(0deg);
}

.time-preview-switch:hover {
  border-color:rgba(255,255,255,.24);
  background:rgba(255,255,255,.11);
}

.time-preview-switch:focus-visible {
  outline:3px solid rgba(116,205,226,.55);
  outline-offset:3px;
}

@media (prefers-reduced-motion: reduce) {
  .time-preview-switch,
  .time-preview-track,
  .time-preview-track i { transition:none; }
}

/* Ambiente horario: una sola superficie continua detrás de las tres columnas. */
.portal {
  position: relative;
  isolation: isolate;
}

.portal > :not(.time-ambience) {
  z-index: 1;
}

.portal[data-time-phase] .workspace {
  background: transparent;
}

.time-ambience {
  --orb-x: 58%;
  --orb-y: 24%;
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  background: #eaf0f6;
  transition: filter 1200ms cubic-bezier(.16,1,.3,1);
}

.time-ambience-orb {
  position: absolute;
  left: var(--orb-x);
  top: var(--orb-y);
  width: 74px;
  height: 74px;
  border-radius: 50%;
  background: radial-gradient(circle at 38% 34%, #fff8cf 0 16%, #ffd66e 48%, #f2ad42 100%);
  box-shadow: 0 0 32px 12px rgba(255, 194, 86, .12);
  opacity: .24;
  transform: translate(-50%,-50%);
  transition: left 1200ms cubic-bezier(.16,1,.3,1),top 1200ms cubic-bezier(.16,1,.3,1),background 800ms ease,opacity 800ms ease,box-shadow 800ms ease;
  animation: ambience-orbit-breathe 12s ease-in-out infinite;
}

.time-ambience-haze {
  position: absolute;
  left: 6%;
  right: 6%;
  top: 7%;
  height: 360px;
  border-radius: 50%;
  background: radial-gradient(ellipse at 50% 55%, rgba(255, 184, 119, .22), transparent 67%);
  opacity: 0;
  transform: translate3d(0,0,0);
  transition: opacity 900ms ease,background 900ms ease;
  animation: ambience-haze-drift 20s ease-in-out infinite alternate;
}

.time-ambience-stars,
.time-ambience-stars::before {
  position: absolute;
  inset: 0;
  content: "";
  opacity: 0;
  background-repeat: no-repeat;
  transition: opacity 900ms ease;
}

.time-ambience-stars {
  background-image:
    radial-gradient(circle at 9% 8%, rgba(255,255,255,.88) 0 1px, transparent 1.5px),
    radial-gradient(circle at 22% 16%, rgba(255,255,255,.72) 0 1px, transparent 1.4px),
    radial-gradient(circle at 38% 7%, rgba(255,255,255,.9) 0 1.2px, transparent 1.7px),
    radial-gradient(circle at 53% 19%, rgba(255,255,255,.68) 0 1px, transparent 1.5px),
    radial-gradient(circle at 68% 9%, rgba(255,255,255,.82) 0 1px, transparent 1.5px),
    radial-gradient(circle at 86% 17%, rgba(255,255,255,.9) 0 1.2px, transparent 1.7px),
    radial-gradient(circle at 95% 6%, rgba(255,255,255,.65) 0 1px, transparent 1.5px);
}

.time-ambience-stars::before {
  background-image:
    radial-gradient(circle at 15% 31%, rgba(255,255,255,.6) 0 1px, transparent 1.4px),
    radial-gradient(circle at 31% 25%, rgba(255,255,255,.78) 0 1px, transparent 1.5px),
    radial-gradient(circle at 46% 35%, rgba(255,255,255,.58) 0 1px, transparent 1.4px),
    radial-gradient(circle at 61% 27%, rgba(255,255,255,.86) 0 1px, transparent 1.5px),
    radial-gradient(circle at 76% 34%, rgba(255,255,255,.62) 0 1px, transparent 1.4px),
    radial-gradient(circle at 91% 28%, rgba(255,255,255,.76) 0 1px, transparent 1.5px);
}

.portal[data-time-phase="dawn"] .time-ambience {
  background: linear-gradient(135deg, #e5edf5 0%, #f1e7e2 100%);
}

.portal[data-time-phase="dawn"] .time-ambience-haze {
  opacity: .2;
  background: radial-gradient(ellipse at 24% 52%, rgba(255, 166, 94, .24), transparent 64%);
}

.portal[data-time-phase="day"] .time-ambience {
  background: linear-gradient(135deg, #c9e2f2 0%, #e5eff5 100%);
}

.portal[data-time-phase="day"] .time-ambience-orb {
  box-shadow:0 0 44px 18px rgba(246,180,67,.22);
  opacity:.5;
}

.portal[data-time-phase="day"] .time-ambience-haze {
  opacity:.3;
  background:radial-gradient(ellipse at 54% 22%,rgba(255,221,146,.2),transparent 62%);
}

.portal[data-time-phase="sunset"] .time-ambience {
  background: linear-gradient(135deg, #e3e7f0 0%, #f1e4df 100%);
}

.portal[data-time-phase="sunset"] .time-ambience-orb {
  background: radial-gradient(circle at 38% 34%, #fff1c2 0 14%, #ff9c57 49%, #e85f53 100%);
  box-shadow: 0 0 34px 14px rgba(234, 102, 78, .12);
  opacity: .28;
}

.portal[data-time-phase="sunset"] .time-ambience-haze {
  opacity: .22;
  background: radial-gradient(ellipse at 82% 53%, rgba(236, 105, 90, .23), transparent 62%);
}

.portal[data-time-phase="night"] .time-ambience {
  background: linear-gradient(135deg, #c6d3e1 0%, #d9e2ec 100%);
}

.portal[data-time-phase="night"] .time-ambience-stars,
.portal[data-time-phase="night"] .time-ambience-stars::before {
  opacity: .32;
}

.portal[data-time-phase="night"] .time-ambience-stars {
  animation: ambience-stars-twinkle 6s ease-in-out infinite alternate;
}

.portal[data-time-phase="night"] .time-ambience-stars::before {
  animation: ambience-stars-twinkle-soft 8s 1.4s ease-in-out infinite alternate-reverse;
}

.portal[data-time-phase="night"] .time-ambience-orb {
  width: 58px;
  height: 58px;
  background: radial-gradient(circle at 34% 31%, #ffffff 0 9%, #eef4fb 48%, #cbd8e6 100%);
  box-shadow: 0 0 26px 9px rgba(222, 237, 255, .13),inset -10px -7px 15px rgba(77, 99, 129, .18);
  opacity: .26;
}

/* Un mismo tono ambiental recorre fondo, tarjetas y columna contextual. */
.portal[data-time-phase="dawn"] {
  --ambient-shell:#e8e9ec;
  --ambient-surface:rgba(245,243,242,.9);
  --ambient-strong:rgba(248,246,245,.95);
  --ambient-inset:rgba(250,248,247,.66);
  --ambient-border:rgba(73,91,113,.1);
}

.portal[data-time-phase="day"] {
  --ambient-shell:#d7e4ee;
  --ambient-surface:rgba(236,246,250,.92);
  --ambient-strong:rgba(243,249,252,.96);
  --ambient-inset:rgba(246,251,253,.72);
  --ambient-border:rgba(39,91,127,.1);
}

.portal[data-time-phase="sunset"] {
  --ambient-shell:#e8e7ea;
  --ambient-surface:rgba(246,241,240,.9);
  --ambient-strong:rgba(249,245,244,.95);
  --ambient-inset:rgba(251,247,246,.68);
  --ambient-border:rgba(95,78,87,.09);
}

.portal[data-time-phase="night"] {
  --ambient-shell:#cdd8e4;
  --ambient-surface:rgba(226,234,242,.92);
  --ambient-strong:rgba(233,239,245,.96);
  --ambient-inset:rgba(239,244,248,.7);
  --ambient-border:rgba(43,67,94,.11);
}

.portal[data-time-phase] {
  background:var(--ambient-shell);
}

.portal[data-time-phase] .portal-rail,
.portal[data-time-phase] .progress-card,
.portal[data-time-phase] .month-card,
.portal[data-time-phase] .calendar-card,
.portal[data-time-phase] .profile-identity,
.portal[data-time-phase] .profile-data,
.portal[data-time-phase] .team-list,
.portal[data-time-phase] .team-summary,
.portal[data-time-phase] .admin-section-nav,
.portal[data-time-phase] .admin-kpi,
.portal[data-time-phase] .admin-panel,
.portal[data-time-phase] .admin-modules,
.portal[data-time-phase] .admin-list-kpi,
.portal[data-time-phase] .admin-area-group,
.portal[data-time-phase] .admin-people-group,
.portal[data-time-phase] .admin-summary-table,
.portal[data-time-phase] .admin-month-ledger,
.portal[data-time-phase] .admin-route-card,
.portal[data-time-phase] .admin-policy-card,
.portal[data-time-phase] .admin-access-requests,
.portal[data-time-phase] .admin-access-directory,
.portal[data-time-phase] .admin-access-audit,
.portal[data-time-phase] .admin-role-area,
.portal[data-time-phase] .admin-roles-audit {
  border-color:var(--ambient-border);
  background:var(--ambient-surface);
  transition:background-color 420ms cubic-bezier(.16,1,.3,1),border-color 420ms ease;
}

.portal[data-time-phase] .day-card {
  border-color:var(--ambient-border);
  background:var(--ambient-strong);
  transition:background-color 420ms cubic-bezier(.16,1,.3,1),border-color 420ms ease;
}

.portal[data-time-phase] .day-summary {
  background:var(--ambient-surface);
}

.portal[data-time-phase] .shift-clock,
.portal[data-time-phase] .day-context span,
.portal[data-time-phase] .rail-calendar,
.portal[data-time-phase] .rail-event,
.portal[data-time-phase] .att-stat,
.portal[data-time-phase] .cal-day:not(.empty),
.portal[data-time-phase] .admin-module,
.portal[data-time-phase] .admin-person-card,
.portal[data-time-phase] .admin-contract-row {
  border-color:var(--ambient-border);
  background:var(--ambient-inset);
  transition:background-color 420ms cubic-bezier(.16,1,.3,1),border-color 420ms ease;
}

.portal[data-time-phase="day"] #view-inicio > .view-head {
  background:linear-gradient(110deg,#0a315f 0%,#135285 100%) !important;
}

.portal[data-time-phase="night"] #view-inicio > .view-head {
  background:linear-gradient(110deg,#071a34 0%,#0a294c 100%) !important;
}

@media (min-width:901px) {
  .portal[data-time-phase="day"] .sidebar { background:rgba(8,49,83,.93); }
  .portal[data-time-phase="night"] .sidebar { background:rgba(6,30,59,.95); }
}

.portal[data-ambience-paused="true"] .time-ambience-orb,
.portal[data-ambience-paused="true"] .time-ambience-haze,
.portal[data-ambience-paused="true"] .time-ambience-stars,
.portal[data-ambience-paused="true"] .time-ambience-stars::before {
  animation-play-state: paused;
}

@keyframes ambience-orbit-breathe {
  0%,100% { translate: 0 0; }
  50% { translate: 0 -4px; }
}

@keyframes ambience-haze-drift {
  from { transform: translate3d(-7px,0,0) scale(.99); }
  to { transform: translate3d(7px,-3px,0) scale(1.01); }
}

@keyframes ambience-stars-twinkle {
  from { opacity: .18; }
  to { opacity: .32; }
}

@keyframes ambience-stars-twinkle-soft {
  from { opacity: .12; }
  to { opacity: .28; }
}

@media (max-width: 900px) {
  .time-ambience-orb { width:58px;height:58px;opacity:.2; }
  .time-ambience-haze { left:-18%;right:-18%;height:300px; }
  .portal[data-time-phase="night"] .time-ambience-stars,
  .portal[data-time-phase="night"] .time-ambience-stars::before { opacity:.24; }
}

@media (prefers-reduced-motion: reduce) {
  .time-ambience-orb,
  .time-ambience-haze,
  .time-ambience-stars,
  .time-ambience-stars::before {
    animation: none !important;
  }
}

/* El bento flota sobre el ambiente; su grilla no debe dibujar otra superficie. */
.portal[data-time-phase] .today-layout .day-card {
  border-color:transparent;
  background:transparent;
  box-shadow:none;
}

/* Fecha integrada: jerarquía compacta, sin placa ni divisor decorativo. */
.portal .today-layout .day-card-head {
  min-height:56px;
  margin:0 !important;
  padding:0 4px 8px !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none;
}

.portal .today-layout .day-date-group {
  display:inline-flex;
  align-items:center;
  gap:11px;
  min-width:0;
}

.portal .today-layout .day-date-icon {
  width:36px;
  height:36px;
  flex:0 0 36px;
  display:grid;
  place-items:center;
  border:1px solid rgba(10,77,161,.12);
  border-radius:var(--radius-control);
  color:#0a4da1;
  background:rgba(255,255,255,.38);
}

.portal .today-layout .day-date-icon svg {
  width:18px;
  height:18px;
  stroke-width:1.9;
}

.portal .today-layout .day-card-head .day-date-group > b {
  margin:0 !important;
  color:#0b2a5c !important;
  font-size:15px !important;
  font-weight:750 !important;
  line-height:1.25;
  letter-spacing:-.015em;
}

@media (max-width:650px) {
  .portal .today-layout .day-card-head {
    min-height:52px;
    padding:0 2px 6px !important;
  }

  .portal .today-layout .day-date-icon {
    width:34px;
    height:34px;
    flex-basis:34px;
  }

  .portal .today-layout .day-card-head .day-date-group > b {
    font-size:14px !important;
  }
}

/* La cabecera comparte el mismo cielo y la misma fuente de luz del ambiente. */
.portal[data-time-phase="dawn"] {
  --banner-sky-start:#102d50;
  --banner-sky-end:#6f5067;
  --banner-light:rgba(255,176,100,.62);
  --banner-light-opacity:.82;
  --banner-stars-opacity:0;
  --glass-reflection:rgba(255,174,108,.16);
  --glass-reflection-dark:rgba(255,177,112,.13);
  --glass-edge:rgba(255,255,255,.48);
  --glass-highlight:rgba(255,255,255,.58);
  --sidebar-ambient:rgba(9,38,68,.94);
}

.portal[data-time-phase="day"] {
  --banner-sky-start:#0a3b70;
  --banner-sky-end:#1976a4;
  --banner-light:rgba(255,222,139,.58);
  --banner-light-opacity:.9;
  --banner-stars-opacity:0;
  --glass-reflection:rgba(255,222,145,.20);
  --glass-reflection-dark:rgba(255,218,137,.15);
  --glass-edge:rgba(255,255,255,.56);
  --glass-highlight:rgba(255,255,255,.66);
  --sidebar-ambient:rgba(8,49,83,.93);
}

.portal[data-time-phase="sunset"] {
  --banner-sky-start:#102b50;
  --banner-sky-end:#8a4d59;
  --banner-light:rgba(255,132,82,.62);
  --banner-light-opacity:.86;
  --banner-stars-opacity:0;
  --glass-reflection:rgba(255,132,91,.16);
  --glass-reflection-dark:rgba(255,125,86,.14);
  --glass-edge:rgba(255,255,255,.46);
  --glass-highlight:rgba(255,255,255,.54);
  --sidebar-ambient:rgba(9,35,66,.94);
}

.portal[data-time-phase="night"] {
  --banner-sky-start:#071a33;
  --banner-sky-end:#123858;
  --banner-light:rgba(194,220,255,.30);
  --banner-light-opacity:.72;
  --banner-stars-opacity:0;
  --glass-reflection:rgba(173,207,246,.14);
  --glass-reflection-dark:rgba(174,209,250,.13);
  --glass-edge:rgba(235,245,255,.34);
  --glass-highlight:rgba(239,247,255,.44);
  --sidebar-ambient:rgba(6,30,59,.95);
}

.portal[data-time-phase] #view-inicio > .view-head {
  isolation:isolate;
  overflow:hidden;
  background:linear-gradient(112deg,var(--banner-sky-start),var(--banner-sky-end)) !important;
  transition:background 700ms cubic-bezier(.16,1,.3,1),box-shadow 700ms ease !important;
}

.portal[data-time-phase] #view-inicio > .view-head::before {
  content:"" !important;
  position:absolute !important;
  inset:auto !important;
  left:var(--orb-x) !important;
  top:var(--orb-y) !important;
  width:clamp(230px,30vw,390px) !important;
  height:210px !important;
  border-radius:50% !important;
  background:radial-gradient(circle,var(--banner-light) 0,rgba(255,255,255,.07) 22%,transparent 68%) !important;
  opacity:var(--banner-light-opacity) !important;
  transform:translate(-50%,-50%) !important;
  filter:saturate(112%) !important;
  pointer-events:none !important;
  transition:left 1200ms cubic-bezier(.16,1,.3,1),top 1200ms cubic-bezier(.16,1,.3,1),opacity 700ms ease,background 700ms ease !important;
}

.portal[data-time-phase] #view-inicio > .view-head::after {
  content:none !important;
  background:none !important;
  opacity:0 !important;
}

.portal[data-time-phase="dawn"] #view-inicio > .view-head {
  box-shadow:0 9px 24px rgba(77,45,61,.16) !important;
}

.portal[data-time-phase="day"] #view-inicio > .view-head {
  box-shadow:0 9px 24px rgba(10,78,124,.18) !important;
}

.portal[data-time-phase="sunset"] #view-inicio > .view-head {
  box-shadow:0 9px 24px rgba(95,45,54,.18) !important;
}

.portal[data-time-phase="night"] #view-inicio > .view-head {
  box-shadow:0 9px 24px rgba(2,18,38,.22) !important;
}

@media (prefers-reduced-motion: reduce) {
  .portal[data-time-phase] #view-inicio > .view-head,
  .portal[data-time-phase] #view-inicio > .view-head::before,
  .portal[data-time-phase] #view-inicio > .view-head::after {
    transition:none !important;
  }
}

/* Reflejo ambiental sobre las superficies de vidrio del sistema. */
.portal[data-time-phase] .portal-rail,
.portal[data-time-phase] .today-layout .day-schedule,
.portal[data-time-phase] .today-layout .progress-card,
.portal[data-time-phase] .today-layout .month-card,
.portal[data-time-phase] .calendar-card,
.portal[data-time-phase] .profile-identity,
.portal[data-time-phase] .profile-data,
.portal[data-time-phase] .team-list,
.portal[data-time-phase] .team-summary,
.portal[data-time-phase] .admin-section-nav,
.portal[data-time-phase] .admin-kpi,
.portal[data-time-phase] .admin-panel,
.portal[data-time-phase] .admin-modules,
.portal[data-time-phase] .admin-list-kpi,
.portal[data-time-phase] .admin-area-group,
.portal[data-time-phase] .admin-people-group,
.portal[data-time-phase] .admin-summary-table,
.portal[data-time-phase] .admin-month-ledger,
.portal[data-time-phase] .admin-route-card,
.portal[data-time-phase] .admin-policy-card,
.portal[data-time-phase] .admin-access-requests,
.portal[data-time-phase] .admin-access-directory,
.portal[data-time-phase] .admin-access-audit,
.portal[data-time-phase] .admin-role-area,
.portal[data-time-phase] .admin-roles-audit {
  border-color:var(--glass-edge);
  background:
    radial-gradient(circle at var(--orb-x) var(--orb-y),var(--glass-reflection) 0,transparent 42%),
    linear-gradient(135deg,rgba(255,255,255,.18),transparent 48%),
    var(--ambient-surface);
  -webkit-backdrop-filter:blur(14px) saturate(112%);
  backdrop-filter:blur(14px) saturate(112%);
  box-shadow:inset 0 1px 0 var(--glass-highlight),0 12px 30px rgba(13,38,68,.065);
  transition:background 900ms cubic-bezier(.16,1,.3,1),border-color 700ms ease,box-shadow 700ms ease;
}

.portal[data-time-phase] .today-layout .day-schedule {
  background:
    radial-gradient(circle at var(--orb-x) var(--orb-y),var(--glass-reflection) 0,transparent 44%),
    linear-gradient(135deg,rgba(255,255,255,.22),transparent 52%),
    var(--ambient-strong);
}

.portal[data-time-phase] .rail-calendar,
.portal[data-time-phase] .rail-event,
.portal[data-time-phase] .rail-empty,
.portal[data-time-phase] .att-stat,
.portal[data-time-phase] .cal-day,
.portal[data-time-phase] .admin-module,
.portal[data-time-phase] .admin-person-card,
.portal[data-time-phase] .admin-contract-row {
  border-color:var(--glass-edge);
  background:
    radial-gradient(circle at var(--orb-x) var(--orb-y),var(--glass-reflection) 0,transparent 48%),
    var(--ambient-inset);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.34);
  transition:background 900ms cubic-bezier(.16,1,.3,1),border-color 700ms ease;
}

.portal[data-time-phase] .rail-insight,
.portal[data-time-phase] .side-help {
  background:
    radial-gradient(circle at var(--orb-x) var(--orb-y),var(--glass-reflection-dark) 0,transparent 46%),
    linear-gradient(145deg,#0b3768,#092347);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 12px 28px rgba(9,36,76,.15);
}

@media (min-width:901px) {
  .portal[data-time-phase] .sidebar {
    background:
      radial-gradient(circle at var(--orb-x) var(--orb-y),var(--glass-reflection-dark) 0,transparent 42%),
      var(--sidebar-ambient);
    box-shadow:inset -1px 0 0 rgba(255,255,255,.09),0 18px 42px rgba(5,25,50,.16);
    transition:background 900ms cubic-bezier(.16,1,.3,1),box-shadow 700ms ease;
  }
}

@media (max-width:900px) {
  .portal[data-time-phase] .portal-rail,
  .portal[data-time-phase] .today-layout .day-schedule,
  .portal[data-time-phase] .today-layout .progress-card,
  .portal[data-time-phase] .today-layout .month-card,
  .portal[data-time-phase] .calendar-card,
  .portal[data-time-phase] .profile-identity,
  .portal[data-time-phase] .profile-data {
    -webkit-backdrop-filter:blur(9px) saturate(108%);
    backdrop-filter:blur(9px) saturate(108%);
  }
}

/* Las cabeceras internas comparten el mismo cielo de la vista principal. */
.portal[data-time-phase] .view:not(#view-inicio) > .view-head {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:20px 26px;
  border-radius:var(--radius-card);
  background:linear-gradient(112deg,var(--banner-sky-start),var(--banner-sky-end)) !important;
  box-shadow:0 9px 24px rgba(7,31,58,.16);
}

.portal[data-time-phase] .view:not(#view-inicio) > .view-head::before {
  content:"" !important;
  position:absolute !important;
  inset:auto !important;
  left:var(--orb-x) !important;
  top:var(--orb-y) !important;
  width:clamp(250px,32vw,430px) !important;
  height:230px !important;
  border-radius:50% !important;
  background:radial-gradient(circle,var(--banner-light) 0,rgba(255,255,255,.06) 24%,transparent 68%) !important;
  opacity:var(--banner-light-opacity) !important;
  transform:translate(-50%,-50%) !important;
  pointer-events:none !important;
  transition:left 1200ms cubic-bezier(.16,1,.3,1),top 1200ms cubic-bezier(.16,1,.3,1),opacity 700ms ease !important;
}

.portal[data-time-phase] .view:not(#view-inicio) > .view-head::after { content:none !important; }
.portal[data-time-phase] .view:not(#view-inicio) > .view-head h1 { color:#fff !important; }
.portal[data-time-phase] .view:not(#view-inicio) > .view-head > div > p:last-child { color:rgba(226,238,250,.78) !important; }

/* Mi asistencia · historial compacto y centro de solicitudes. */
.attendance-topbar {
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}

.attendance-topbar .month-toolbar { justify-content:flex-start;margin:0; }
.attendance-topbar .month-toolbar b { min-width:150px;text-align:left; }

.attendance-new-request {
  min-height:42px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:0 14px;
  border:0;
  border-radius:var(--radius-control);
  color:#fff;
  background:#0b4f87;
  box-shadow:0 8px 18px rgba(11,79,135,.16);
  font-size:11px;
  font-weight:750;
}
.attendance-new-request svg { width:16px;height:16px;stroke-width:2.2; }
.attendance-new-request:hover { background:#0d619f; }
.attendance-new-request:focus-visible { outline:3px solid var(--focus);outline-offset:3px; }

#view-asistencia .attendance-stats {
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-bottom:14px;
}
#view-asistencia .att-stat { min-height:76px;padding:14px 16px;border-radius:var(--radius-panel); }
#view-asistencia .att-stat b { font-size:24px;line-height:1.1; }

.attendance-workspace {
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(310px,.72fr);
  align-items:start;
  gap:16px;
}

.attendance-calendar { min-width:0;padding:18px 20px; }
.attendance-calendar-head { display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px; }
.attendance-calendar-mobile-tools{display:none}
.attendance-calendar-head b,.attendance-calendar-head small { display:block; }
.attendance-calendar-head b { color:#0b2a5c;font-size:14px; }
.attendance-calendar-head small { margin-top:3px;color:#667a91;font-size:10px; }
.attendance-hours { flex:0 0 auto;padding:6px 9px;border-radius:var(--radius-control);color:#0a6658;background:rgba(224,247,240,.76);font-size:9px;font-weight:750; }

#view-asistencia .calendar-week,#view-asistencia .calendar-grid { gap:6px; }
#view-asistencia .calendar-week span { padding:5px; }
#view-asistencia .cal-day {
  min-height:68px;
  overflow:hidden;
  padding:9px 10px 8px;
  border-color:rgba(29,70,111,.11);
  border-radius:var(--radius-control);
  background:rgba(255,255,255,.48);
  text-align:left;
  appearance:none;
  font:inherit;
  transition:transform 180ms cubic-bezier(.16,1,.3,1),border-color 180ms ease,box-shadow 180ms ease,background-color 180ms ease;
}
#view-asistencia button.cal-day { cursor:pointer; }
#view-asistencia button.cal-day:hover { z-index:1;border-color:rgba(7,90,188,.34);transform:translateY(-2px);box-shadow:0 8px 18px rgba(17,55,91,.10); }
#view-asistencia button.cal-day:focus-visible { outline:3px solid var(--focus);outline-offset:1px; }
#view-asistencia .cal-day.empty { background:transparent; }
#view-asistencia .cal-day-top { display:flex;align-items:center;justify-content:space-between;gap:5px; }
#view-asistencia .cal-day-top b { color:#183c65;font-size:12px;line-height:1; }
#view-asistencia .cal-day-top i { position:static;width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#b9c6d3;box-shadow:none; }
#view-asistencia .cal-day-top em { padding:3px 5px;border-radius:999px;color:#fff;background:#0b4f87;font-size:7px;font-style:normal;font-weight:800;letter-spacing:.04em;text-transform:uppercase; }
#view-asistencia .cal-day small { display:block;overflow:hidden;margin-top:13px;color:#71849a;font-size:8px;font-weight:700;line-height:1.1;text-overflow:ellipsis;white-space:nowrap; }
#view-asistencia .cal-day.p { border-color:rgba(21,166,124,.18);background:linear-gradient(145deg,rgba(240,252,248,.88),rgba(255,255,255,.48)); }
#view-asistencia .cal-day.p .cal-day-top i { background:#1bad82;box-shadow:0 0 0 3px rgba(27,173,130,.11); }
#view-asistencia .cal-day.p small { color:#118066; }
#view-asistencia .cal-day.t { border-color:rgba(220,147,29,.23);background:linear-gradient(145deg,rgba(255,248,232,.90),rgba(255,255,255,.48)); }
#view-asistencia .cal-day.t .cal-day-top i { background:#df9b26;box-shadow:0 0 0 3px rgba(223,155,38,.12); }
#view-asistencia .cal-day.t small { color:#9a6712; }
#view-asistencia .cal-day.j { border-color:rgba(62,128,210,.21);background:linear-gradient(145deg,rgba(237,246,255,.92),rgba(255,255,255,.48)); }
#view-asistencia .cal-day.j .cal-day-top i { background:#4e8fdc;box-shadow:0 0 0 3px rgba(78,143,220,.12); }
#view-asistencia .cal-day.j small { color:#326fae; }
#view-asistencia .cal-day.ng { border-color:rgba(203,74,98,.20);background:linear-gradient(145deg,rgba(255,240,243,.90),rgba(255,255,255,.48)); }
#view-asistencia .cal-day.ng .cal-day-top i { background:#d35a70;box-shadow:0 0 0 3px rgba(211,90,112,.12); }
#view-asistencia .cal-day.ng small { color:#aa4055; }
#view-asistencia .cal-day.off { background:rgba(243,247,250,.50); }
#view-asistencia .cal-day.off .cal-day-top i { background:#c8d2dc; }
#view-asistencia .cal-day.off small { color:#8998a8; }
#view-asistencia .cal-day.future { opacity:.66; }
#view-asistencia .cal-day.today { border-color:rgba(11,79,135,.56);background:linear-gradient(145deg,#123d6d,#0b5d94);box-shadow:0 8px 17px rgba(8,54,95,.18); }
#view-asistencia .cal-day.today .cal-day-top b,#view-asistencia .cal-day.today small { color:#fff; }
#view-asistencia .cal-day.today small { opacity:.78; }
#view-asistencia .cal-day.today .cal-day-top em { color:#0b4f87;background:#fff; }
#view-asistencia .calendar-legend { margin-top:14px;padding-top:13px; }

.attendance-request-center {
  overflow:hidden;
  border:1px solid var(--glass-edge);
  border-radius:var(--radius-card);
  background:
    radial-gradient(circle at var(--orb-x) var(--orb-y),var(--glass-reflection) 0,transparent 44%),
    var(--ambient-surface);
  -webkit-backdrop-filter:blur(14px) saturate(112%);
  backdrop-filter:blur(14px) saturate(112%);
  box-shadow:inset 0 1px 0 var(--glass-highlight),0 12px 30px rgba(13,38,68,.065);
}
.attendance-request-center > header { min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 18px;border-bottom:1px solid rgba(9,36,76,.09); }
.attendance-request-center > header b,.attendance-request-center > header small { display:block; }
.attendance-request-center > header b { color:#0b2a5c;font-size:14px; }
.attendance-request-center > header small { margin-top:3px;color:#657990;font-size:10px; }
.attendance-request-center > header > i { min-width:26px;height:26px;display:grid;place-items:center;border-radius:50%;color:#0a5e83;background:rgba(220,242,249,.8);font-size:10px;font-style:normal;font-weight:800; }

.attendance-request-actions { display:grid;padding:8px; }
.attendance-request-actions > button {
  min-height:65px;
  display:grid;
  grid-template-columns:38px minmax(0,1fr) 18px;
  align-items:center;
  gap:10px;
  padding:10px;
  border:0;
  border-radius:var(--radius-panel);
  color:#243a55;
  background:transparent;
  text-align:left;
}
.attendance-request-actions > button:hover { background:rgba(255,255,255,.48); }
.attendance-request-actions > button:focus-visible { outline:3px solid var(--focus);outline-offset:-2px; }
.attendance-request-actions > button > svg { width:17px;height:17px;color:#71849a; }
.attendance-request-actions b,.attendance-request-actions small { display:block; }
.attendance-request-actions b { font-size:11px; }
.attendance-request-actions small { margin-top:3px;color:#6f8196;font-size:9px;line-height:1.35; }
.request-action-icon { width:38px;height:38px;display:grid;place-items:center;border-radius:var(--radius-control);color:#075abc;background:rgba(229,240,253,.88); }
.request-action-icon svg { width:19px;height:19px; }

.personal-request-history { border-top:1px solid rgba(9,36,76,.09); }
.personal-request-history > div:first-child { display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px 8px; }
.personal-request-history > div:first-child b { color:#30465f;font-size:10px; }
.personal-request-history > div:first-child button { padding:4px;border:0;color:#075abc;background:transparent;font-size:9px;font-weight:700; }
#personal-request-list { max-height:248px;overflow:auto;padding:0 10px 12px; }
.request-empty { margin:8px;padding:15px;border-radius:var(--radius-panel);color:#718298;background:rgba(255,255,255,.34);font-size:10px;line-height:1.5;text-align:center; }
.personal-request-row { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;padding:11px 8px;border-bottom:1px solid rgba(9,36,76,.07); }
.personal-request-row:last-child { border-bottom:0; }
.personal-request-row b,.personal-request-row small,.personal-request-row p { display:block;margin:0; }
.personal-request-row b { color:#2a405b;font-size:10px; }
.personal-request-row small { margin-top:3px;color:#74869a;font-size:8px; }
.personal-request-row p { grid-column:1/-1;color:#687a8f;font-size:9px;line-height:1.4; }
.request-status { align-self:start;padding:5px 7px;border-radius:999px;color:#8b620d;background:#fff1d8;font-size:8px;font-weight:800;text-transform:uppercase; }
.request-status.aprobada { color:#08745c;background:#e3f6ef; }
.request-status.rechazada { color:#a33d4d;background:#ffe9ed; }

.personal-request-sheet {
  position:relative;
  z-index:1;
  width:min(610px,100%);
  max-height:calc(100vh - 36px);
  overflow:auto;
  padding:26px;
  border-radius:var(--radius-shell);
  background:#f7fafc;
  box-shadow:0 30px 90px rgba(0,18,45,.34);
}
.personal-request-sheet > header { display:flex;align-items:center;gap:13px;padding-right:42px; }
.personal-request-sheet > header h2,.personal-request-sheet > header p { margin:0; }
.personal-request-sheet > header h2 { color:#0b2a5c;font-size:21px; }
.personal-request-sheet > header p { margin-top:4px;color:#6f8196;font-size:10px;line-height:1.45; }
.personal-request-icon { width:44px;height:44px;flex:0 0 44px;display:grid;place-items:center;border-radius:var(--radius-panel);color:#075abc;background:#e7f1fc; }
.personal-request-icon svg { width:22px;height:22px; }
#personal-request-form { display:grid;gap:15px;margin-top:22px; }
.personal-request-dates { position:relative;display:grid;grid-template-columns:1fr 1fr;gap:10px; }
.request-date-field,.personal-request-detail,.personal-request-kind { display:grid;gap:7px;color:#40536a;font-size:10px;font-weight:700; }
.personal-request-detail textarea {
  width:100%;
  border:1px solid rgba(9,36,76,.16);
  border-radius:var(--radius-control);
  color:#243a55;
  background:#fff;
  outline:0;
}
.request-date-field { position:relative; }
.request-date-field > input { position:absolute;width:1px;height:1px;opacity:0;pointer-events:none; }
.request-date-button {
  width:100%;
  min-height:42px;
  display:grid;
  grid-template-columns:28px minmax(0,1fr) 14px;
  align-items:center;
  gap:8px;
  padding:6px 9px;
  border:1px solid rgba(9,36,76,.14);
  border-radius:11px;
  color:#29435f;
  background:#fff;
  text-align:left;
  transition:border-color .16s ease,background .16s ease,box-shadow .16s ease;
}
.request-date-button:hover { border-color:rgba(7,90,188,.34);background:#fbfdff; }
.request-date-button:focus-visible,.request-date-button[aria-expanded="true"] { border-color:#2d7fd0;box-shadow:0 0 0 2px var(--focus);outline:0; }
.request-date-button > span:nth-child(2) { min-width:0; }
.request-date-button small,.request-date-button b { display:block; }
.request-date-button small { display:none; }
.request-date-button b { overflow:hidden;color:#173859;font-size:10px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap; }
.request-date-icon { width:28px;height:28px;display:grid;place-items:center;border-radius:8px;color:#0967c7;background:#e8f3ff; }
.request-date-icon svg { width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }
.request-date-chevron { width:14px;height:14px;fill:none;stroke:#7890a7;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .16s ease; }
.request-date-button[aria-expanded="true"] .request-date-chevron { transform:rotate(180deg); }

.personal-request-kind { min-width:0;margin:0;padding:0;border:0; }
.personal-request-kind legend { margin-bottom:7px;padding:0;color:#40536a;font-size:10px;font-weight:700; }
.request-kind-options { display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border:1px solid rgba(9,36,76,.09);border-radius:12px;background:#edf3f8; }
.request-kind-options > button {
  min-width:0;
  min-height:40px;
  display:grid;
  grid-template-columns:26px minmax(0,1fr);
  align-items:center;
  gap:7px;
  padding:6px 9px;
  border:0;
  border-radius:9px;
  color:#52677d;
  background:transparent;
  text-align:left;
  transition:color .16s ease,background .16s ease,box-shadow .16s ease;
}
.request-kind-options > button:hover { color:#173f69;background:rgba(255,255,255,.56); }
.request-kind-options > button:focus-visible { outline:0;box-shadow:0 0 0 3px var(--focus); }
.request-kind-options > button[aria-checked="true"] { color:#0b477f;background:#fff;box-shadow:0 2px 7px rgba(17,55,89,.10); }
.request-kind-options b,.request-kind-options small { display:block; }
.request-kind-options b { font-size:10px; }
.request-kind-options small { display:none; }
.request-kind-icon { width:26px;height:26px;display:grid;place-items:center;border-radius:7px;color:#678098; }
.request-kind-options > button[aria-checked="true"] .request-kind-icon { color:#0868c8;background:#e8f3ff; }
.request-kind-icon svg { width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round; }
.request-kind-options i { display:none; }

.request-calendar {
  position:absolute;
  z-index:8;
  left:0;
  width:min(300px,100%);
  padding:10px;
  border:0;
  border-radius:13px;
  background:#fff;
  box-shadow:0 16px 38px rgba(10,42,74,.18);
  animation:request-calendar-in .16s ease-out both;
}
.request-calendar[data-side="end"] { right:0;left:auto; }
.request-calendar > header { display:grid;grid-template-columns:30px 1fr 30px;align-items:center;gap:6px;margin-bottom:5px; }
.request-calendar > header strong { color:#15395d;font-size:11px;text-align:center;text-transform:capitalize; }
.request-calendar > header button { width:30px;height:30px;display:grid;place-items:center;border:0;border-radius:8px;color:#426789;background:#f1f6fa;transition:color .15s ease,background .15s ease; }
.request-calendar > header button:hover:not(:disabled) { color:#075abc;background:#e4f1fd; }
.request-calendar > header button:focus-visible,.request-calendar-grid button:focus-visible,#request-calendar-today:focus-visible { outline:0;box-shadow:0 0 0 3px var(--focus); }
.request-calendar > header button:disabled { cursor:not-allowed;opacity:.35; }
.request-calendar > header svg { width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round; }
.request-calendar-weekdays,.request-calendar-grid { display:grid;grid-template-columns:repeat(7,1fr);gap:3px; }
.request-calendar-weekdays { margin-bottom:2px; }
.request-calendar-weekdays span { padding:4px 0;color:#8797a8;font-size:7px;font-weight:700;text-align:center;text-transform:uppercase; }
.request-calendar-grid span,.request-calendar-grid button { min-width:0;height:30px;border:0;border-radius:8px;font-size:9px; }
.request-calendar-grid span { display:block; }
.request-calendar-grid button { position:relative;color:#40566e;background:transparent;font-weight:600;transition:color .14s ease,background .14s ease,transform .14s ease; }
.request-calendar-grid button:hover:not(:disabled) { color:#075abc;background:#eaf4fe;transform:translateY(-1px); }
.request-calendar-grid button.today:not(.selected)::after { content:"";position:absolute;left:50%;bottom:4px;width:3px;height:3px;border-radius:50%;background:#0b77d7;transform:translateX(-50%); }
.request-calendar-grid button.selected { color:#fff;background:#0868c8;box-shadow:0 4px 9px rgba(8,104,200,.22); }
.request-calendar-grid button:disabled { color:#c1cad4;cursor:not-allowed;background:transparent; }
.request-calendar > footer { display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;padding-top:7px;border-top:1px solid rgba(9,36,76,.08); }
#request-calendar-today { min-height:28px;padding:0 9px;border:0;border-radius:8px;color:#075abc;background:#eaf4fe;font-size:8px;font-weight:800; }
#request-calendar-today:disabled { color:#9ba9b7;background:#f1f4f7;cursor:not-allowed; }
#request-calendar-help { color:#8795a5;font-size:7px;font-weight:500; }
@keyframes request-calendar-in { from { opacity:0;transform:translateY(-5px); } to { opacity:1;transform:none; } }

.personal-request-detail { position:relative; }
.personal-request-detail textarea { min-height:116px;padding:12px 13px;resize:vertical;font:inherit;font-size:11px;line-height:1.55; }
.personal-request-detail > small { position:absolute;right:10px;bottom:8px;color:#8795a6;font-size:8px;font-weight:500; }
.personal-request-detail textarea:focus { border-color:#4b8dce;box-shadow:0 0 0 3px var(--focus); }

.personal-request-evidence { overflow:hidden;border:1px dashed rgba(7,90,188,.28);border-radius:var(--radius-panel);background:#f2f7fc; }
#personal-request-file-button { width:100%;min-height:94px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:16px;border:0;color:#36516e;background:transparent;text-align:left; }
#personal-request-file-button > .personal-request-file-art { width:42px;height:42px;display:grid;place-items:center;border-radius:var(--radius-control);color:#075abc;background:#e2effc; }
#personal-request-file-button .personal-request-file-art img { width:42px;height:42px;object-fit:contain; }
#personal-request-file-button .evidence-regular-icon { display:none; }
#personal-request-file-button .personal-request-file-text { min-width:0;overflow-wrap:anywhere; }
#personal-request-file-button .personal-request-file-cta { justify-self:end;padding:9px 12px;border-radius:10px;color:#075abc;background:#e2effc;font-size:11px;font-weight:700;white-space:nowrap; }
@media(max-width:400px) { #personal-request-file-button { grid-template-columns:42px minmax(0,1fr); } #personal-request-file-button .personal-request-file-cta { grid-column:2;justify-self:start; } }
#personal-request-file-button svg { width:21px;height:21px; }
#personal-request-file-button b,#personal-request-file-button small { display:block; }
#personal-request-file-button b { align-self:end;font-size:11px; }
#personal-request-file-button small { align-self:start;color:#76889c;font-size:9px; }
.personal-request-preview { display:grid;grid-template-columns:98px minmax(0,1fr);align-items:center;gap:12px;padding:10px; }
.personal-request-preview img { width:98px;height:72px;border-radius:var(--radius-control);object-fit:cover;background:#dfe8f0; }
.personal-request-preview span b { display:block;color:#324b66;font-size:10px; }
.personal-request-preview span button { margin-top:7px;padding:0;border:0;color:#075abc;background:transparent;font-size:9px;font-weight:700; }
.personal-request-note,.personal-request-message { margin:0;color:#738398;font-size:9px;line-height:1.5; }
.personal-request-message { min-height:0;color:#a33d4d; }
.personal-request-message.success { color:#08745c; }
#personal-request-form > footer { display:flex;justify-content:flex-end;gap:9px;padding-top:3px; }

.attendance-day-sheet {
  position:relative;
  z-index:1;
  width:min(980px,100%);
  max-height:calc(100vh - 36px);
  overflow:auto;
  border:1px solid rgba(255,255,255,.78);
  border-radius:var(--radius-shell);
  background:linear-gradient(145deg,#f9fbfd,#eef5f9);
  box-shadow:0 32px 100px rgba(0,18,45,.34);
}
.attendance-day-sheet.evidence-open { overflow:hidden; }
.attendance-day-content { padding:27px; }
.attendance-day-head { display:flex;align-items:center;gap:14px;padding:0 44px 19px 0;border-bottom:1px solid rgba(18,54,89,.10); }
.attendance-day-head > div { min-width:0; }
.attendance-day-head h2 { margin:0;color:#0a2854;font-size:24px;line-height:1.2;letter-spacing:-.02em; }
.attendance-day-state-icon { width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;border-radius:var(--radius-panel);color:#128469;background:#e2f7f0; }
.attendance-day-state-icon svg { width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round; }
.attendance-day-state-icon.t { color:#a86e0e;background:#fff0d4; }
.attendance-day-state-icon.j { color:#397dc5;background:#e6f1fc; }
.attendance-day-state-icon.ng { color:#b4475a;background:#ffe7eb; }
.attendance-day-state-icon.off,.attendance-day-state-icon.pending { color:#6f8195;background:#e9eff4; }
.attendance-day-status { width:max-content;display:flex;align-items:center;gap:6px;margin-top:8px;padding:6px 9px;border-radius:999px;color:#08745c;background:#def5ed;font-size:9px;font-weight:800;text-transform:uppercase; }
.attendance-day-status i { width:6px;height:6px;border-radius:50%;background:currentColor; }
.attendance-day-status.t { color:#96620d;background:#fff0d5; }
.attendance-day-status.j { color:#326fac;background:#e6f1fc; }
.attendance-day-status.ng { color:#a63e52;background:#ffe8ec; }
.attendance-day-status.off,.attendance-day-status.pending { color:#607489;background:#e8eef3; }
.attendance-day-layout { display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"details" "evidence" "footer";align-items:start;gap:14px 24px;margin-top:20px; }
.attendance-day-details { min-width:0;grid-area:details; }
.attendance-day-facts { display:grid;grid-template-columns:1fr 1fr;gap:1px;border:1px solid rgba(20,62,101,.10);border-radius:14px;background:rgba(20,62,101,.08);overflow:hidden;box-shadow:0 6px 16px rgba(13,38,76,.04); }
.attendance-day-facts > div { min-width:0;background:rgba(255,255,255,.8);padding:14px 16px;display:flex;flex-direction:column;justify-content:center; }
.attendance-day-facts > div:first-child { grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;column-gap:18px; }
.attendance-day-facts small,.attendance-day-facts b,.attendance-day-facts span { display:block; }
.attendance-day-facts small { color:#6b8299;font-size:9px;font-weight:800;letter-spacing:.05em;margin-bottom:3px; }
.attendance-day-facts b { overflow:hidden;margin:0;color:#15365e;font-size:18px;text-overflow:ellipsis;white-space:nowrap; }
.attendance-day-facts span { color:#60758d;font-size:11px;margin-top:1px; }
.attendance-day-facts > div:first-child small { align-self:end;margin-bottom:0; }
.attendance-day-facts > div:first-child span { align-self:start;margin-top:4px;font-size:10px; }
.attendance-day-facts > div:first-child b { grid-column:2;grid-row:1/3;text-align:right;font-size:17px; }
.attendance-day-validation { display:flex;flex-wrap:wrap;gap:6px;margin-top:8px; }
.attendance-day-validation span { min-width:0;max-width:100%;display:flex;align-items:center;gap:6px;overflow:hidden;padding:6px 9px;border-radius:999px;color:#536a82;background:rgba(229,237,244,.82);font-size:9px;font-weight:700;text-overflow:ellipsis;white-space:nowrap; }
.attendance-day-validation i { width:5px;height:5px;flex:0 0 5px;border-radius:50%;background:#1aa881; }
.attendance-day-note,.attendance-day-request { margin-top:12px;padding:14px 15px;border:1px solid rgba(20,62,101,.10);border-radius:var(--radius-panel);background:rgba(255,255,255,.55); }
.attendance-day-note small,.attendance-day-request small { color:#677c93;font-size:9px;font-weight:800;letter-spacing:.07em; }
.attendance-day-note p,.attendance-day-request p { margin:7px 0 0;color:#374f69;font-size:11px;line-height:1.55; }
.attendance-day-request { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px; }
.attendance-day-request > div b { display:block;margin-top:4px;color:#17395f;font-size:12px; }
.attendance-day-request > p { grid-column:1/-1;margin:0; }
.attendance-day-request .attendance-day-response { padding-top:8px;border-top:1px solid rgba(20,62,101,.08); }
.attendance-day-evidence { min-width:0;grid-area:evidence;padding-top:18px;border-top:1px solid rgba(18,54,89,.10); }
.attendance-day-section-title { display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px; }
.attendance-day-section-title b,.attendance-day-section-title small { display:block; }
.attendance-day-section-title b { color:#16375d;font-size:14px; }
.attendance-day-section-title small { margin-top:3px;color:#647990;font-size:10px; }
.attendance-day-section-title svg { width:18px;height:18px;color:#65819b;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }
.attendance-day-evidence .attendance-activity-tabs { display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px; }
.attendance-day-evidence .attendance-activity-tabs button { display:flex;align-items:center;gap:7px;min-height:40px;padding:8px 13px;border:1px solid #cfdae6;border-radius:12px;color:#36516e;background:#fff;font-size:12px; }
.attendance-day-evidence .attendance-activity-tabs button[aria-pressed="true"] { color:#075abc;background:#e2effc;border-color:#8cb7e3; }
.attendance-day-evidence .attendance-activity-tabs button span { padding:2px 6px;border-radius:6px;background:#edf3f8;font-size:10px; }
#attendance-day-modal .attendance-activity-tabs button.is-missing { border-color:#df8792;background:#fff0f2;color:#b32d43; }
#attendance-day-modal .attendance-activity-tabs button.is-missing span { background:#fbdce2;color:#b32d43; }
#attendance-day-modal .attendance-activity-tabs button.is-missing[aria-pressed="true"] { border-color:#bd3048;background:#fbdce2;color:#952238; }
.attendance-day-evidence .attendance-compact-stage { display:grid;height:clamp(240px,38vh,420px);overflow:hidden;border-radius:14px;background:#e9f0f5; }
.attendance-day-evidence .attendance-compact-photo { position:relative;width:100%;height:100%;min-height:0;padding:10px 10px 32px;border:0;background:transparent;cursor:zoom-in; }
.attendance-day-evidence .attendance-compact-photo img,.attendance-day-evidence .attendance-compact-stage video { display:block;width:100%;height:100%;object-fit:contain; }
.attendance-day-evidence .attendance-compact-photo span { position:absolute;bottom:8px;left:0;right:0;color:#075abc;font-size:11px; }
.attendance-day-evidence .attendance-activity-empty { padding:18px;overflow:auto;font-size:13px;line-height:1.5; }
.attendance-day-evidence .attendance-activity-empty p { white-space:pre-wrap; }
.attendance-day-evidence .attendance-file-nav { display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;color:#52677d;font-size:12px; }
.attendance-day-evidence .attendance-file-nav button { width:44px;height:40px;border:0;border-radius:10px;background:#e2effc;color:#075abc;font-size:24px; }
.attendance-day-evidence .attendance-file-nav button:disabled { color:#8998a8;background:#edf3f8; }
.attendance-day-evidence button:focus-visible,.personal-request-delete:focus-visible { outline:3px solid var(--focus);outline-offset:2px; }
.personal-request-controls { display:flex;align-items:flex-start;gap:5px; }
.personal-request-delete { display:grid;place-items:center;width:30px;height:30px;padding:6px;border:0;border-radius:8px;background:transparent;color:#9a4856; }
.personal-request-delete:hover { background:#fce9ec;color:#b52e44; }
.personal-request-delete:disabled { opacity:.45;cursor:wait; }
.personal-request-delete svg { width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }
.attendance-day-gallery { display:grid;grid-template-columns:1fr;gap:10px; }
.attendance-day-photo { width:100%;overflow:hidden;display:block;padding:0;border:1px solid rgba(20,62,101,.13);border-radius:var(--radius-panel);color:inherit;background:#fff;text-align:left;cursor:zoom-in;transition:box-shadow 180ms ease,border-color 180ms ease; }
.attendance-day-photo:hover { border-color:rgba(11,86,143,.30);box-shadow:0 10px 24px rgba(18,51,83,.10); }
.attendance-day-photo:focus-visible { outline:3px solid var(--focus);outline-offset:2px; }
.attendance-day-photo-canvas { width:100%;height:clamp(240px,28vh,310px);display:grid;place-items:center;overflow:hidden;padding:10px;background:#e9f0f5; }
.attendance-day-photo-canvas img { display:block;width:auto!important;height:auto!important;max-width:100%!important;max-height:100%!important;object-fit:initial!important;border-radius:8px;box-shadow:0 8px 20px rgba(10,39,70,.12); }
.attendance-day-photo-meta { min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border-top:1px solid rgba(20,62,101,.08);background:#fff; }
.attendance-day-photo-meta b { overflow:hidden;color:#254360;font-size:11px;text-overflow:ellipsis;white-space:nowrap; }
.attendance-day-photo-meta small { flex:0 0 auto;display:flex;align-items:center;gap:5px;color:#0f5f9f;font-size:10px;font-weight:750; }
.attendance-day-photo-meta svg { width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }
.attendance-day-no-photo { grid-column:1/-1;min-height:106px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:17px;border:1px dashed rgba(20,62,101,.18);border-radius:var(--radius-panel);color:#72859a;background:rgba(255,255,255,.34);text-align:center; }
.attendance-day-no-photo > span { width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:#68839d;background:rgba(224,234,242,.85); }
.attendance-day-no-photo svg { width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }
.attendance-day-no-photo b { margin-top:8px;color:#435a72;font-size:12px; }
.attendance-day-no-photo small { max-width:360px;margin-top:4px;font-size:10px;line-height:1.45; }
.attendance-day-footer { grid-area:footer;display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:14px;border-top:1px solid rgba(18,54,89,.10); }
.attendance-day-footer > span { color:#63778e;font-size:9px;line-height:1.45; }
.attendance-day-footer button,.attendance-day-error button { min-height:40px;padding:0 15px;border:0;border-radius:var(--radius-control);color:#fff;background:#0b568f;font-size:10px;font-weight:800; }
.attendance-day-footer button:hover,.attendance-day-error button:hover { background:#0d68a9; }
.attendance-day-footer button:focus-visible,.attendance-day-error button:focus-visible { outline:3px solid var(--focus);outline-offset:2px; }
.attendance-evidence-viewer { position:fixed;z-index:520;inset:18px;overflow:hidden;border:1px solid rgba(255,255,255,.24);border-radius:var(--radius-shell);background:rgba(5,20,38,.97);box-shadow:0 32px 100px rgba(0,12,30,.46); }
.attendance-evidence-viewer[hidden] { display:none; }
.attendance-evidence-viewer > div { position:absolute;inset:64px 34px 24px;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:14px;min-width:0;min-height:0; }
.attendance-evidence-stage { min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:4px; }
.attendance-evidence-stage img,.attendance-evidence-stage video { display:block;width:100%!important;height:100%!important;min-width:0;min-height:0;max-width:100%!important;max-height:100%!important;object-fit:contain!important;border-radius:10px; }
.attendance-evidence-viewer p { margin:0;color:#dce9f3;font-size:11px;font-weight:700;text-align:center; }
.attendance-evidence-close { position:absolute;z-index:1;top:18px;right:18px;width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-control);color:#fff;background:rgba(255,255,255,.10); }
.attendance-evidence-close:hover { background:rgba(255,255,255,.18); }
.attendance-evidence-close:focus-visible { outline:3px solid rgba(129,203,255,.55);outline-offset:2px; }
.attendance-evidence-close svg { width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round; }
.attendance-day-loading,.attendance-day-error { min-height:310px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center; }
.attendance-day-loading i { width:30px;height:30px;border:3px solid #d8e5ef;border-top-color:#0b5f99;border-radius:50%;animation:attendance-day-spin .7s linear infinite; }
.attendance-day-loading span { margin-top:13px;color:#61778e;font-size:10px;font-weight:700; }
.attendance-day-error > span { width:48px;height:48px;display:grid;place-items:center;border-radius:50%;color:#a74457;background:#ffe8ec; }
.attendance-day-error svg { width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round; }
.attendance-day-error h2 { margin:14px 0 0;color:#18385e;font-size:19px; }
.attendance-day-error p { max-width:430px;margin:7px 0 15px;color:#6d8095;font-size:10px;line-height:1.55; }
@keyframes attendance-day-spin { to { transform:rotate(360deg); } }

.admin-request.personal { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px; }
.admin-request.personal p { grid-column:1/-1; }
.admin-request-meta { color:#718296;font-size:8px; }
.admin-request-actions { grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:5px; }
.admin-request-actions input { min-width:150px;min-height:31px;flex:1;padding:0 9px;border:1px solid rgba(9,36,76,.13);border-radius:8px;background:#fff;font-size:8px; }
.admin-request-actions button { min-height:31px;padding:0 9px;border:0;border-radius:8px;font-size:8px;font-weight:800; }
.admin-request-actions .approve { color:#08745c;background:#e3f6ef; }
.admin-request-actions .reject { color:#a33d4d;background:#ffe9ed; }
.admin-request-actions .evidence { color:#075abc;background:#e7f1fc; }

@media (max-width:1100px) {
  .attendance-workspace { grid-template-columns:minmax(0,1.35fr) minmax(285px,.72fr); }
  #view-asistencia .cal-day { min-height:52px; }
}

@media (max-width:900px) {
  .attendance-workspace { grid-template-columns:1fr; gap: 24px; }
  .attendance-request-center { order:2; }
  #personal-request-list { max-height:248px; }
}

@media (max-width:820px) {
  .attendance-day-layout { grid-template-columns:1fr;grid-template-areas:"details" "evidence" "footer";gap:20px; }
  .attendance-day-evidence { padding:18px 0 0;border-top:1px solid rgba(18,54,89,.10);border-left:0; }
  .attendance-day-photo-canvas { height:clamp(260px,42vh,380px); }
}

@media (max-width:600px) {
  .portal[data-time-phase] .view:not(#view-inicio) > .view-head { padding:17px 18px; }
  .attendance-topbar { align-items:stretch;flex-direction:column; gap: 12px; }
  .attendance-new-request { justify-content:center; }
  #view-asistencia .attendance-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .attendance-calendar { padding:15px 10px; }
  .attendance-calendar-head { padding-inline:4px; }
  .attendance-calendar-head small { display:none; }
  #view-asistencia .calendar-week,#view-asistencia .calendar-grid { gap:4px; }
  #view-asistencia .cal-day { min-height:54px;padding:7px; }
  #view-asistencia .cal-day small { margin-top:10px;font-size:7px; }
  #view-asistencia .cal-day-top em { padding:2px 4px;font-size:6px; }
  .attendance-day-modal { align-items:end;padding:0; }
  .attendance-day-sheet { width:100%;max-height:92vh;border-radius:20px 20px 0 0; }
  .attendance-day-content { padding:23px 16px; }
  .attendance-day-head h2 { font-size:20px; }
  .attendance-day-facts > div:first-child { padding:14px; }
  .attendance-day-photo-canvas { height:min(48vh,390px);padding:8px; }
  .attendance-evidence-viewer { inset:0;border:0;border-radius:0; }
  .attendance-evidence-viewer > div { inset:60px 12px 16px; }
  .attendance-day-footer { align-items:stretch;flex-direction:column; }
  .attendance-day-footer button { width:100%; }
  .personal-request-sheet { width:100%;max-height:92vh;padding:23px 17px;border-radius:20px 20px 0 0; }
  .personal-request-modal { align-items:end;padding:0; }
  .personal-request-dates { grid-template-columns:1fr; }
  .request-calendar { width:min(300px,100%);padding:10px; }
  .request-calendar[data-side="end"] { right:auto;left:0; }
  .request-calendar-grid span,.request-calendar-grid button { height:32px; }
  #personal-request-form > footer > * { flex:1; }
}

@media (max-width:390px) {
  #request-calendar-help { display:none; }
}

@media (prefers-reduced-motion:reduce) {
  #view-asistencia button.cal-day { transition:none; }
  .attendance-day-photo { transition:none; }
  .attendance-day-loading i { animation:none;border-color:#8ca8bd; }
  .request-calendar { animation:none; }
  .request-date-button,.request-kind-options > button,.request-calendar-grid button { transition:none; }
}

/* Marcado uniforme: la acción solo se activa con evidencia lista. */
.mark-assurance {
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:-8px 0 16px;
}
.mark-assurance span {
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 9px;
  border:1px solid rgba(8,122,131,.14);
  border-radius:999px;
  color:#47647a;
  background:#f1faf8;
  font-size:9px;
  font-weight:700;
  line-height:1;
}
.mark-assurance i {
  width:6px;
  height:6px;
  border-radius:50%;
  background:#13ad87;
  box-shadow:0 0 0 3px rgba(19,173,135,.11);
}
.mark-confirm {
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
  padding:0 22px !important;
}
.mark-confirm > span {
  min-width:0;
  line-height:1.2;
}
.mark-confirm > svg {
  display:block !important;
  flex:0 0 18px !important;
  width:18px !important;
  height:18px !important;
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:2.4 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}
.mark-confirm:disabled {
  color:#708198 !important;
  background:#e8edf3 !important;
  box-shadow:none !important;
  cursor:not-allowed !important;
  opacity:1 !important;
  transform:none !important;
}
.mark-confirm:disabled > svg { opacity:.48; }
.admin-policy-toggle.fixed {
  cursor:default;
}
.admin-policy-toggle.fixed small::after {
  content:' · protegida por servidor';
  color:#087a68;
  font-weight:700;
}
.admin-policy-toggle.fixed input:disabled + i {
  opacity:1;
  filter:none;
}

@media (max-width:520px) {
  .mark-assurance { gap:6px;margin-bottom:14px; }
  .mark-assurance span { flex:1 1 auto;justify-content:center; }
  .mark-confirm { min-height:54px;height:auto !important;padding-block:11px !important; }
}

/* La acción principal de asistencia debe encontrarse en el primer vistazo. */
.today-layout .day-card[data-attendance-state="open"] .mark-button:not(:disabled),
.today-layout .day-card[data-attendance-state="late"] .mark-button:not(.is-view):not(:disabled) {
  min-height:68px;
  padding:10px 12px 10px 19px;
  border:1px solid rgba(255,255,255,.28);
  color:#fff;
  background:#0b6dd7;
  box-shadow:0 13px 28px rgba(2,83,178,.38),inset 0 1px 0 rgba(255,255,255,.24);
  animation:markCtaReady 1.15s cubic-bezier(.16,1,.3,1) both;
}
.today-layout .day-card[data-attendance-state="open"] .mark-button:not(:disabled) .mark-button-copy small,
.today-layout .day-card[data-attendance-state="late"] .mark-button:not(.is-view):not(:disabled) .mark-button-copy small {
  color:#d9ecff;
  font-size:9px;
  letter-spacing:.13em;
}
.today-layout .day-card[data-attendance-state="open"] .mark-button:not(:disabled) .mark-button-copy b,
.today-layout .day-card[data-attendance-state="late"] .mark-button:not(.is-view):not(:disabled) .mark-button-copy b {
  font-size:15px;
  font-weight:800;
}
.today-layout .day-card[data-attendance-state="open"] .mark-button:not(:disabled)>svg,
.today-layout .day-card[data-attendance-state="late"] .mark-button:not(.is-view):not(:disabled)>svg {
  width:42px;
  height:42px;
  padding:10px;
  color:#0755ad;
  background:#fff;
  box-shadow:0 5px 13px rgba(0,35,78,.22);
}
.today-layout .day-card[data-attendance-state="open"] .mark-button:hover:not(:disabled),
.today-layout .day-card[data-attendance-state="open"] .mark-button:focus-visible,
.today-layout .day-card[data-attendance-state="late"] .mark-button:not(.is-view):hover:not(:disabled),
.today-layout .day-card[data-attendance-state="late"] .mark-button:not(.is-view):focus-visible {
  transform:translateY(-2px);
  background:#0879ed;
  box-shadow:0 17px 34px rgba(2,83,178,.46),inset 0 1px 0 rgba(255,255,255,.28);
}
.today-layout .day-card[data-attendance-state="late"] .mark-button:not(.is-view):not(:disabled) {
  border-color:#ffd789;
  color:#241800;
  background:#f5b73e;
  box-shadow:0 13px 28px rgba(194,118,0,.34),inset 0 1px 0 rgba(255,255,255,.42);
}
.today-layout .day-card[data-attendance-state="late"] .mark-button:not(.is-view):not(:disabled) .mark-button-copy small {
  color:#684400;
}
.today-layout .day-card[data-attendance-state="late"] .mark-button:not(.is-view):not(:disabled)>svg {
  color:#805100;
}
.today-layout .day-card[data-attendance-state="late"] .mark-button:not(.is-view):hover:not(:disabled),
.today-layout .day-card[data-attendance-state="late"] .mark-button:not(.is-view):focus-visible {
  background:#ffc451;
  box-shadow:0 17px 34px rgba(194,118,0,.42),inset 0 1px 0 rgba(255,255,255,.48);
}
@keyframes markCtaReady {
  0% { transform:translateY(5px);filter:brightness(.84);box-shadow:0 4px 10px rgba(2,83,178,.15); }
  100% { transform:translateY(0);filter:brightness(1); }
}
@media (prefers-reduced-motion:reduce) {
  .today-layout .day-card[data-attendance-state="open"] .mark-button:not(:disabled),
  .today-layout .day-card[data-attendance-state="late"] .mark-button:not(.is-view):not(:disabled) { animation:none; }
}

/* Modalidad diaria y geocerca presencial. */
.today-mode-choice {
  display:grid;
  grid-template-columns:minmax(155px,1fr) auto;
  align-items:center;
  gap:10px;
  margin-top:12px;
  padding:9px 12px;
  border:1px solid rgba(18,65,111,.12);
  border-radius:12px;
  background:rgba(247,250,253,.76);
}
.today-mode-copy { min-width:0; }
.today-mode-copy > small {
  display:block;
  margin-bottom:3px;
  color:#768aa1;
  font-size:9px;
  font-weight:800;
  letter-spacing:.12em;
}
.today-mode-copy > b { display:block;color:#12345e;font-size:14px; }
.today-mode-copy > p { margin:3px 0 0;color:#72849a;font-size:10px;line-height:1.45; }
.today-mode-switch {
  display:grid;
  grid-template-columns:repeat(2,minmax(112px,1fr));
  gap:4px;
  padding:4px;
  border-radius:13px;
  background:#e8eef4;
}
.today-mode-switch > button {
  min-height:42px;
  display:grid;
  grid-template-columns:22px 1fr;
  align-items:center;
  gap:6px;
  padding:5px 9px;
  border:0;
  border-radius:9px;
  color:#687b91;
  background:transparent;
  text-align:left;
  transition:color 160ms ease,background-color 160ms ease,box-shadow 160ms ease,transform 160ms ease;
}
.today-mode-switch svg {
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.today-mode-switch span,.today-mode-switch b,.today-mode-switch small { display:block; }
.today-mode-switch b { color:inherit;font-size:11px; }
.today-mode-switch small { margin-top:1px;color:#7d8d9f;font-size:9px; }
.today-mode-switch > button[aria-checked="true"] {
  color:#075abc;
  background:#fff;
  box-shadow:0 5px 14px rgba(19,53,91,.10);
}
.today-mode-switch > button[aria-checked="true"] small { color:#4e7399; }
.today-mode-switch > button:not(:disabled):hover { color:#075abc;transform:translateY(-1px); }
.today-mode-switch > button:focus-visible { outline:3px solid rgba(7,90,188,.22);outline-offset:2px; }
.today-mode-switch > button:disabled { cursor:not-allowed;opacity:.66;transform:none; }
.today-mode-choice[data-mode="presencial"] { border-color:rgba(13,128,111,.19);background:rgba(239,249,246,.82); }
.today-mode-choice[data-locked="true"] .today-mode-copy > p { color:#08765f;font-weight:700; }
.day-schedule .day-context { justify-content:flex-end; }

.mark-mode-check {
  display:grid;
  grid-template-columns:38px minmax(0,1fr) auto;
  align-items:center;
  gap:11px;
  margin:0 0 15px;
  padding:12px 13px;
  border-radius:14px;
  color:#28577f;
  background:#edf6ff;
  text-align:left;
}
.mark-mode-icon {
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:11px;
  color:#075abc;
  background:#fff;
  box-shadow:0 6px 15px rgba(13,62,109,.09);
}
.mark-mode-icon svg {
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.mark-mode-check > span:nth-child(2) { min-width:0; }
.mark-mode-check small,.mark-mode-check b,.mark-mode-check em { display:block; }
.mark-mode-check small { color:#5881a5;font-size:9px;font-weight:800;letter-spacing:.1em; }
.mark-mode-check b { margin-top:2px;color:#173d66;font-size:12px; }
.mark-mode-check em { margin-top:2px;color:#657b91;font-size:10px;font-style:normal;line-height:1.45; }
.mark-mode-check > button {
  min-height:36px;
  padding:0 11px;
  border:0;
  border-radius:10px;
  color:#fff;
  background:#075abc;
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
}
.mark-mode-check > button:hover { background:#064c9e; }
.mark-mode-check > button:disabled { cursor:wait;opacity:.62; }
.mark-mode-check[data-mode="presencial"] { color:#08765f;background:#ecf8f4; }
.mark-mode-check[data-mode="presencial"] .mark-mode-icon { color:#08765f; }
.mark-mode-check[data-location-state="ready"] { background:#e5f7f1; }
.mark-mode-check[data-location-state="ready"] > button { color:#07594c;background:#bcebdc; }
.mark-mode-check[data-location-state="error"] { color:#925208;background:#fff3df; }
.mark-mode-check[data-location-state="error"] .mark-mode-icon { color:#a8640d; }

/* Ruta presencial: contexto de geocerca sin competir con la acción principal. */
.mark-sheet[data-state="confirm"][data-mode="presencial"] {
  width:min(1040px,calc(100vw - 36px));
}
.mark-sheet[data-state="confirm"][data-mode="presencial"] .mark-confirm-view {
  display:grid;
  grid-template-columns:minmax(340px,.9fr) minmax(410px,1.1fr);
  column-gap:24px;
  align-items:start;
}
.mark-confirm-main { min-width:0; }
.mark-confirm-head > p:not(.eyebrow) {
  margin:0 0 20px;
  color:#6f7e91;
  font-size:11px;
  line-height:1.65;
}
.mark-route-panel {
  min-width:0;
  padding:16px;
  border:1px solid rgba(14,58,98,.12);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(247,251,253,.98),rgba(237,246,250,.92));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 15px 32px rgba(12,48,80,.08);
}
.mark-route-head {
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  align-items:center;
  gap:11px;
  margin-bottom:13px;
}
.mark-route-head > span:first-child {
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:13px;
  color:#075abc;
  background:#fff;
  box-shadow:0 7px 18px rgba(12,55,98,.10);
}
.mark-route-head svg,
.mark-route-open svg {
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.mark-route-head h3 {
  margin:0;
  color:#11365e;
  font-size:15px;
  line-height:1.25;
}
.mark-route-head p {
  margin:3px 0 0;
  color:#687e94;
  font-size:10px;
  line-height:1.5;
}
.mark-route-map-shell {
  position:relative;
  height:350px;
  overflow:hidden;
  border:1px solid rgba(13,54,94,.14);
  border-radius:15px;
  background:#e8f0f4;
  isolation:isolate;
}
.mark-route-map {
  width:100%;
  height:100%;
  background:#e8f0f4;
}
.mark-route-map-state {
  position:absolute;
  z-index:500;
  inset:0;
  display:grid;
  align-content:center;
  justify-items:center;
  gap:6px;
  padding:24px;
  color:#405a73;
  background:linear-gradient(145deg,#edf4f7,#e5eef3);
  text-align:center;
}
.mark-route-map-state > span {
  width:25px;
  height:25px;
  border:3px solid rgba(7,90,188,.16);
  border-top-color:#075abc;
  border-radius:50%;
  animation:office-map-spin .8s linear infinite;
}
.mark-route-map-state b { font-size:13px; }
.mark-route-map-state small { max-width:270px;color:#708195;font-size:10px;line-height:1.5; }
.mark-route-map-shell[data-state="ready"] .mark-route-map-state { display:none; }
.mark-route-map-shell[data-state="error"] .mark-route-map-state > span { display:none; }
.mark-route-legend {
  position:absolute;
  z-index:450;
  left:10px;
  bottom:10px;
  display:flex;
  gap:10px;
  padding:7px 10px;
  border:1px solid rgba(13,54,94,.08);
  border-radius:999px;
  color:#3f5872;
  background:rgba(255,255,255,.94);
  box-shadow:0 6px 16px rgba(13,47,79,.13);
  font-size:9px;
  font-weight:750;
  pointer-events:none;
}
.mark-route-map-shell[data-state="error"] .mark-route-legend { display:none; }
.mark-route-legend span { display:flex;align-items:center;gap:5px; }
.mark-route-legend i { width:8px;height:8px;border-radius:50%;box-shadow:0 0 0 3px rgba(7,90,188,.10); }
.mark-route-legend i.office { background:#e21b72;box-shadow:0 0 0 3px rgba(226,27,114,.11); }
.mark-route-legend i.user { background:#075abc; }
.mark-route-map-shell .leaflet-control-zoom { overflow:hidden;border:0;border-radius:10px;box-shadow:0 7px 18px rgba(13,47,79,.16); }
.mark-route-map-shell .leaflet-control-zoom a { width:34px;height:34px;color:#173c62;font:600 20px/34px Inter,sans-serif;background:#fff; }
.mark-route-map-shell .leaflet-control-attribution { padding:3px 6px;color:#5e7082;background:rgba(255,255,255,.88);font-size:9px; }
.mark-route-map-shell .leaflet-control-attribution a { color:#075abc; }
.mark-route-marker { border:0!important;background:transparent!important; }
.mark-route-marker > span {
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border:3px solid #fff;
  border-radius:14px 14px 14px 4px;
  color:#fff;
  box-shadow:0 9px 20px rgba(4,56,113,.28);
  transform:rotate(-45deg);
}
.mark-route-marker.office > span { background:#e21b72;box-shadow:0 9px 20px rgba(190,18,91,.30); }
.mark-route-marker.user > span { background:#075abc; }
.mark-route-marker svg { width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;transform:rotate(45deg); }
.mark-route-facts {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin:10px 0;
}
.mark-route-facts > span {
  min-width:0;
  padding:10px 11px;
  border:1px solid rgba(15,57,95,.10);
  border-radius:11px;
  background:rgba(255,255,255,.82);
}
.mark-route-facts small,.mark-route-facts b { display:block; }
.mark-route-facts small { color:#75889c;font-size:9px;font-weight:750;letter-spacing:.06em;text-transform:uppercase; }
.mark-route-facts b { overflow:hidden;margin-top:3px;color:#173d66;font-size:12px;text-overflow:ellipsis;white-space:nowrap; }
.mark-route-facts b[data-state="ready"] { color:#08765f; }
.mark-route-facts b[data-state="error"] { color:#a35f0b; }
.mark-route-open {
  min-height:54px;
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  grid-template-areas:"icon title arrow" "icon copy arrow";
  align-items:center;
  column-gap:10px;
  padding:9px 12px;
  border-radius:12px;
  color:#fff;
  background:#075abc;
  box-shadow:0 9px 20px rgba(7,90,188,.20);
  text-decoration:none;
  transition:background-color 160ms ease,transform 160ms ease,box-shadow 160ms ease;
}
.mark-route-open > span { grid-area:icon;width:34px;height:34px;display:grid;place-items:center;border-radius:10px;color:#075abc;background:#fff; }
.mark-route-open > b { grid-area:title;font-size:12px;line-height:1.2; }
.mark-route-open > small { grid-area:copy;margin-top:2px;color:#d5e8fb;font-size:9px; }
.mark-route-open > svg { grid-area:arrow;width:19px; }
.mark-route-open:not(.disabled):hover { color:#fff;background:#064c9e;box-shadow:0 12px 24px rgba(7,90,188,.28);transform:translateY(-1px); }
.mark-route-open.disabled { color:#738398;background:#e3e9ef;box-shadow:none;pointer-events:none; }
.mark-route-open.disabled > span { color:#718197;background:#f7f9fb; }
.mark-route-open.disabled > small { color:#8997a7; }
.mark-route-note { display:block;margin:8px 2px 0;color:#7a8b9d;font-size:9px;line-height:1.45; }

@media (max-width:900px) {
  .mark-sheet[data-state="confirm"][data-mode="presencial"] { width:min(600px,calc(100vw - 36px)); }
  .mark-sheet[data-state="confirm"][data-mode="presencial"] .mark-confirm-view { display:block; }
  .mark-route-panel { margin:18px 0 0; }
  .mark-route-map-shell { height:290px; }
}
@media (max-width:600px) {
  .mark-sheet[data-state="confirm"][data-mode="presencial"] { width:100%; }
  .mark-route-panel { padding:12px;border-radius:16px; }
  .mark-route-map-shell { height:245px; }
  .mark-route-head h3 { font-size:14px; }
  .mark-route-legend { gap:8px;max-width:calc(100% - 20px); }
}

.admin-office-rule {
  min-width:0;
  padding:18px 20px 20px;
  border-top:1px solid rgba(11,35,71,.09);
  border-bottom:1px solid rgba(11,35,71,.09);
  background:#f8fbfd;
}
.admin-office-heading {
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  align-items:center;
  gap:11px;
}
.admin-office-icon {
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:13px;
  color:#08765f;
  background:#e4f7f1;
}
.admin-office-icon svg { width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round; }
.admin-office-rule b,.admin-office-rule small { display:block; }
.admin-office-heading b { color:#29435f;font-size:13px; }
.admin-office-heading small { margin-top:3px;color:#74869a;font-size:11px;line-height:1.4; }
.admin-office-radius {
  padding:7px 9px;
  border-radius:999px;
  color:#075abc;
  background:#e8f2fc;
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
}
.admin-office-rule > p { margin:12px 0 14px;color:#667a91;font-size:11px;line-height:1.55; }
.admin-office-search {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:7px;
  margin-bottom:8px;
}
.admin-office-search > span {
  min-width:0;
  height:42px;
  display:grid;
  grid-template-columns:18px minmax(0,1fr);
  align-items:center;
  gap:7px;
  padding:0 11px;
  border:1px solid rgba(20,60,99,.16);
  border-radius:11px;
  background:#fff;
}
.admin-office-search svg { width:17px;height:17px;fill:none;stroke:#70849a;stroke-width:1.9;stroke-linecap:round; }
.admin-office-search input { min-width:0;border:0;outline:0;color:#183b62;background:transparent;font:600 12px/1.2 Inter,sans-serif; }
.admin-office-search input::placeholder { color:#8d9baa;font-weight:500; }
.admin-office-search > span:focus-within { border-color:#3b82c4;box-shadow:0 0 0 3px rgba(7,90,188,.1); }
.admin-office-search > button,.admin-office-map-state button {
  min-height:42px;
  padding:0 13px;
  border:1px solid rgba(7,90,188,.18);
  border-radius:11px;
  color:#075abc;
  background:#fff;
  font-size:11px;
  font-weight:800;
}
.admin-office-search > button:hover,.admin-office-map-state button:hover { border-color:#075abc;background:#eaf3fc; }
.admin-office-search > button:disabled { cursor:wait;opacity:.58; }
.admin-office-results {
  max-height:190px;
  overflow:auto;
  margin:0 0 8px;
  padding:5px;
  border:1px solid rgba(20,60,99,.13);
  border-radius:12px;
  background:#fff;
  box-shadow:0 12px 28px rgba(12,42,72,.10);
}
.admin-office-results > button {
  width:100%;
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  align-items:center;
  gap:9px;
  padding:9px;
  border:0;
  border-radius:9px;
  color:#314b66;
  background:transparent;
  text-align:left;
}
.admin-office-results > button:hover,.admin-office-results > button:focus-visible { background:#edf5fc; }
.admin-office-results > button > i { width:28px;height:28px;display:grid;place-items:center;border-radius:9px;color:#075abc;background:#e8f2fc;font-size:11px;font-style:normal;font-weight:800; }
.admin-office-results b { overflow:hidden;font-size:11px;line-height:1.4;text-overflow:ellipsis; }
.admin-office-results > small { padding:6px 9px 5px;color:#7f8d9d;font-size:9px; }
.admin-office-map-shell {
  position:relative;
  height:280px;
  overflow:hidden;
  border:1px solid rgba(13,54,94,.14);
  border-radius:14px;
  background:#e9f0f4;
  isolation:isolate;
}
.admin-office-map { width:100%;height:100%;background:#e9f0f4; }
.admin-office-map-state {
  position:absolute;
  z-index:500;
  inset:0;
  display:grid;
  align-content:center;
  justify-items:center;
  gap:6px;
  padding:24px;
  color:#405a73;
  background:#edf3f6;
  text-align:center;
}
.admin-office-map-state > span { width:24px;height:24px;border:3px solid rgba(7,90,188,.18);border-top-color:#075abc;border-radius:50%;animation:office-map-spin .8s linear infinite; }
.admin-office-map-state b { font-size:13px; }
.admin-office-map-state small { max-width:260px;color:#708195;font-size:10px;line-height:1.5; }
.admin-office-map-shell[data-state="ready"] .admin-office-map-state { display:none; }
.admin-office-map-shell[data-state="error"] .admin-office-map-state > span { display:none; }
.admin-office-map-shell[data-state="error"] .admin-office-map-state button { display:block!important;margin-top:5px; }
.admin-office-map-hint {
  position:absolute;
  z-index:450;
  top:10px;
  left:50%;
  padding:7px 10px;
  border-radius:999px;
  color:#163b61;
  background:rgba(255,255,255,.92);
  box-shadow:0 5px 14px rgba(13,47,79,.13);
  font-size:9px;
  font-weight:800;
  pointer-events:none;
  transform:translateX(-50%);
  white-space:nowrap;
}
.admin-office-map-shell[data-state="error"] .admin-office-map-hint { display:none; }
.admin-office-map-shell .leaflet-control-zoom { overflow:hidden;border:0;border-radius:10px;box-shadow:0 7px 18px rgba(13,47,79,.16); }
.admin-office-map-shell .leaflet-control-zoom a { width:34px;height:34px;color:#173c62;font:600 20px/34px Inter,sans-serif;background:#fff; }
.admin-office-map-shell .leaflet-control-attribution { padding:3px 6px;color:#5e7082;background:rgba(255,255,255,.88);font-size:9px; }
.admin-office-map-shell .leaflet-control-attribution a { color:#075abc; }
.admin-office-marker { border:0!important;background:transparent!important; }
.admin-office-pin {
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border:3px solid #fff;
  border-radius:14px 14px 14px 4px;
  color:#fff;
  background:#075abc;
  box-shadow:0 9px 20px rgba(4,56,113,.30);
  transform:rotate(-45deg);
}
.admin-office-pin svg { width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transform:rotate(45deg); }
.admin-office-selection {
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:11px 2px 8px;
}
.admin-office-selection small { color:#7b8da0;font-size:9px;font-weight:800;letter-spacing:.08em; }
.admin-office-selection b { overflow:hidden;margin-top:2px;color:#294660;font-size:11px;text-overflow:ellipsis;white-space:nowrap; }
.admin-office-selection > span:last-child { padding:6px 8px;border-radius:999px;color:#866113;background:#fff0cf;font-size:9px;font-weight:800;white-space:nowrap; }
.admin-office-rule.configured:not(.pending) .admin-office-selection > span:last-child { color:#08765f;background:#def5ed; }
.admin-office-coordinates { margin-top:2px;border-top:1px solid rgba(11,35,71,.08); }
.admin-office-coordinates summary { padding:10px 1px;color:#526b83;font-size:10px;font-weight:750;cursor:pointer; }
.admin-office-coordinates > div { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 0 10px; }
.admin-office-coordinates label span { display:block;margin-bottom:5px;color:#73869a;font-size:9px;font-weight:700; }
.admin-office-coordinates input { width:100%;height:40px;padding:0 10px;border:1px solid rgba(20,60,99,.15);border-radius:10px;outline:0;color:#183b62;background:#fff;font:700 11px/1 Inter,sans-serif;font-variant-numeric:tabular-nums; }
.admin-office-coordinates input:focus { border-color:#3b82c4;box-shadow:0 0 0 3px rgba(7,90,188,.1); }
.admin-office-actions { display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:5px; }
.admin-office-actions > button {
  min-height:40px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:0 12px;
  border:1px solid rgba(7,90,188,.18);
  border-radius:11px;
  color:#075abc;
  background:#fff;
  font-size:10px;
  font-weight:800;
}
.admin-office-actions > button svg { width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round; }
.admin-office-actions > button:hover { border-color:#075abc;background:#eaf3fc; }
.admin-office-actions > button:disabled { cursor:wait;opacity:.58; }
.admin-office-actions > small { max-width:150px;color:#8090a1;font-size:9px;line-height:1.4;text-align:right; }
.admin-audit-list .audit-location-change { display:block;overflow-wrap:anywhere;margin-top:4px;color:#4d6b88;font-size:9px;font-style:normal;font-variant-numeric:tabular-nums;line-height:1.4; }
.admin-office-rule.configured .admin-office-icon { color:#fff;background:#11987b; }
.admin-office-rule.configured #admin-office-status { color:#08765f;font-weight:700; }
.admin-office-rule.pending .admin-office-icon { color:#fff;background:#075abc; }
.admin-office-rule.pending #admin-office-status { color:#075abc;font-weight:700; }
@keyframes office-map-spin { to { transform:rotate(360deg); } }

@media (max-width:720px) {
  .today-mode-choice { grid-template-columns:1fr;gap:10px; }
  .today-mode-switch { width:100%;grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:520px) {
  .today-mode-choice { margin-top:16px;padding:12px; }
  .today-mode-switch > button { min-height:48px;grid-template-columns:22px 1fr;padding-inline:8px; }
  .today-mode-switch svg { width:19px;height:19px; }
  .mark-mode-check { grid-template-columns:36px 1fr; }
  .mark-mode-check > button { grid-column:1/-1;width:100%; }
  .admin-office-rule { padding:16px; }
  .admin-office-heading { grid-template-columns:40px minmax(0,1fr); }
  .admin-office-radius { grid-column:2;justify-self:start; }
  .admin-office-search { grid-template-columns:1fr; }
  .admin-office-search input { font-size:16px; }
  .admin-office-search > button { width:100%; }
  .admin-office-map-shell { height:250px; }
  .admin-office-coordinates > div { grid-template-columns:1fr; }
  .admin-office-coordinates input { font-size:16px; }
  .admin-office-actions { align-items:stretch;flex-direction:column; }
  .admin-office-actions > button { width:100%;justify-content:center; }
  .admin-office-actions > small { max-width:none;text-align:left; }
}
/* ── Login KJA · puente visual entre la web pública y el portal ─────── */
.access .eyebrow,
.access .story-copy .eyebrow{color:var(--pink)}
.access .story-copy h1 em{color:var(--pink)}
.access .story-divider{background:var(--pink)}
.access .story-feature svg{color:var(--pink)}
.access .login-tabs button.active{color:var(--pink);box-shadow:0 1px 3px rgba(0,0,0,.1),inset 0 -3px 0 var(--pink)}
.access .field-box:focus-within{border-color:var(--pink);box-shadow:0 0 0 3px rgba(241,0,117,.12)}
.access .remember-me input{accent-color:var(--pink)}
.access .forgot-pin:hover{color:var(--pink)}
.access .access-footer svg{color:var(--mint)}
.access .primary{background:var(--navy)}
.access .primary:hover{background:var(--blue)}

@media (min-width:901px){
  .access{background:url("../../../images/dashboard/fondo-1-1920.webp") center/cover no-repeat}
  .access:before{background:rgba(5,28,60,.60)}
  .access-story{background:linear-gradient(145deg,#071a36 0%,var(--navy) 54%,var(--blue) 100%)}
  .access-story:before{background:url("../../../images/logo/logo-160.webp") center/600px no-repeat;opacity:.08}
}

@media (max-width:900px){
  .login-panel{background:#fff;border-color:rgba(9,36,76,.12);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 18px 40px rgba(9,36,76,.14)}
  .login-panel:before{display:none}
  .login-tabs{background:#edf3fb;border-color:#dfe7f0}
  .login-tabs button.active{color:var(--pink);background:#fff;box-shadow:0 2px 8px rgba(9,36,76,.09),inset 0 -3px 0 var(--pink)}
  .field-box{background:#f7f9fc;border-color:#d4dfeb}
  .field-box svg{color:#0b568f}
  .field-box input::placeholder{color:#71839a}
  .field-box:focus-within{border-color:var(--pink);box-shadow:0 0 0 3px rgba(241,0,117,.13)}
}

@media (max-width:767px), (max-height:520px) and (pointer:coarse){
  .access{
    background:
      linear-gradient(180deg,rgba(5,34,71,.82) 0%,rgba(5,34,71,.58) 46%,rgba(5,20,42,.88) 100%),
      url("../../../images/dashboard/login-mobile-kja.webp") center center/cover no-repeat;
  }
  .access:before{background:linear-gradient(180deg,rgba(255,255,255,.05),transparent 24%,rgba(3,18,39,.18));-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
  .mobile-logo{width:max-content;padding:8px 12px;border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 8px 22px rgba(2,17,36,.18)}
  .mobile-logo img{filter:none}
  .login-panel{background:#fff}
  .access .primary{background:var(--navy)}
  .access .primary:hover{background:var(--blue)}
}

@media (prefers-reduced-motion:reduce){
  .access .primary:hover{transform:none}
}
@media (prefers-reduced-motion:reduce) { .admin-office-map-state > span,.mark-route-map-state > span { animation:none; } }

/* Login oficial Liquid 3D: fotografía institucional, lectura clara y acceso intacto. */
.access{
  position:relative;
  isolation:isolate;
  min-height:100svh;
  min-height:100dvh;
  overflow:hidden;
  padding:64px 38px 54px;
  background:#09244c;
}
.access:before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  pointer-events:none;
  background:rgba(7,25,51,.57);
}
.access:after{
  content:"";
  position:absolute;
  z-index:-2;
  inset:-5px;
  background:url("../../../images/dashboard/fondo-1-1920.webp") center/cover no-repeat;
  filter:blur(2px);
}
.access .back-home{
  top:22px;
  left:22px;
  right:auto;
  min-height:40px;
  padding:0 14px 0 11px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:12px;
  color:#fff;
  background:rgba(5,27,56,.52);
  box-shadow:0 10px 26px rgba(2,15,34,.18);
  -webkit-backdrop-filter:blur(12px) saturate(115%);
  backdrop-filter:blur(12px) saturate(115%);
}
.access .back-home:hover{background:rgba(5,27,56,.72);transform:translateY(-1px)}
.access-shell{
  position:relative;
  z-index:1;
  width:min(1180px,100%);
  min-height:650px;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(390px,438px);
  align-items:center;
  gap:clamp(60px,8vw,118px);
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.access-story{
  position:relative;
  min-width:0;
  overflow:visible;
  padding:24px 0 28px;
  color:#fff;
  background:transparent;
}
.access-story:before,.access-story:after{display:none}
.story-brand{gap:14px}
.story-brand img{
  width:176px;
  filter:drop-shadow(0 10px 24px rgba(1,14,31,.24));
}
.story-brand-text b{
  color:rgba(244,249,255,.9);
  font-size:10px;
  letter-spacing:.08em;
  text-shadow: 0 1px 4px rgba(0,0,0,0.6);
}
.story-copy{max-width:610px;margin-top:clamp(74px,10vh,108px)}
.story-copy h1{
  max-width:9ch;
  margin:0;
  color:#fff;
  font-family:'Fraunces',Georgia,serif;
  font-size:clamp(58px,6.2vw,82px);
  font-weight:600;
  line-height:.96;
  letter-spacing:-.035em;
  text-wrap:balance;
  text-shadow: 0 2px 8px rgba(2,14,31,0.65), 0 8px 30px rgba(2,14,31,0.5);
}
.access .story-copy h1 em{color:#ffc0dc;font-style:normal}
.story-copy>p:last-of-type{
  max-width:48ch;
  margin:23px 0 0;
  color:rgba(255,255,255,.95);
  font-size:14px;
  line-height:1.72;
  text-shadow: 0 1px 3px rgba(2,14,31,0.8), 0 4px 16px rgba(2,14,31,0.5);
  font-weight:500;
}
.story-trust{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}
.story-trust span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:34px;
  padding:0 12px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  color:#eef8ff;
  background:rgba(4,28,59,.43);
  box-shadow:0 9px 22px rgba(1,14,31,.11);
  font-size:10px;
  font-weight:700;
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
}
.story-trust i{width:7px;height:7px;border-radius:50%;background:#48d6b2;box-shadow:0 0 0 4px rgba(72,214,178,.12)}
.story-trust span:last-child i{background:#ff6fab;box-shadow:0 0 0 4px rgba(255,111,171,.12)}
.story-features,.story-divider{display:none}
.access-form-wrap{
  position:relative;
  isolation:isolate;
  width:100%;
  align-self:center;
  justify-self:end;
  display:block;
  padding:28px;
  border:0;
  border-radius:16px;
  color:var(--ink);
  background:rgba(230,237,245,.9);
  box-shadow:0 34px 84px rgba(1,15,34,.38);
  -webkit-backdrop-filter:blur(18px) saturate(105%);
  backdrop-filter:blur(18px) saturate(105%);
  transform:perspective(1500px) rotateY(-3deg) translateZ(0);
  transform-origin:center right;
  animation:access-card-in .58s cubic-bezier(.16,1,.3,1) both;
}
.access-form-wrap:before,.access-form-wrap:after{display:none}
.access-form-wrap>*{position:relative;z-index:1}
.access-form-head,.login-panel{width:100%;margin-inline:0}
.secure-badge{gap:9px;margin-bottom:13px}
.secure-icon{width:8px;height:8px;border-radius:50%;color:transparent;background:#2bb99a;box-shadow:0 0 0 4px rgba(43,185,154,.12)}
.secure-icon svg{display:none}
.secure-badge .eyebrow{display:block;margin:0;color:#315b7d;font-size:10px;letter-spacing:.15em}
.access-form-head h2{margin:0 0 7px;color:var(--navy);font-family:'Fraunces',Georgia,serif;font-size:32px;line-height:1.12;letter-spacing:-.03em}
.access-form-head>p:last-child{margin:0;color:#60748a;font-size:12px;line-height:1.55}
.login-panel{margin-top:20px;padding:0;border:0;background:transparent;box-shadow:none}
.login-panel:before{display:none}
.login-tabs{min-height:52px;margin:0 0 15px;padding:4px;border:1px solid #dce6f0;border-radius:13px;background:#eaf1f7;box-shadow:none}
.login-tabs button{min-height:42px;border-radius:9px;color:#687990;font-size:12px;font-weight:700}
.access .login-tabs button.active{color:var(--navy);background:#fff;box-shadow:0 3px 10px rgba(9,36,76,.1),inset 0 1px 0 rgba(255,255,255,.82);font-weight:700}
.login-role-help{min-height:18px;margin:0 0 16px;color:#60748a;font-size:11px;line-height:1.55}
.login-form{gap:14px}
.field label{margin-bottom:7px;color:#405671;font-size:11px;font-weight:700}
.field-box{height:52px;min-height:52px;padding:0 12px;border:1px solid #d4dfeb;border-radius:12px;background:#fff;box-shadow:none}
.field-box:hover{border-color:#aabdd0}
.access .field-box:focus-within{border-color:var(--pink);background:#fff;box-shadow:0 0 0 3px rgba(241,0,117,.12)}
.field-box svg{width:19px;color:#0b568f}
.field-box input{font-size:15px;caret-color:var(--pink)}
.field-box input::placeholder{color:#76879c}
.field-hint{margin-top:5px;color:#76879c;font-size:10px}
.reveal{width:44px;height:44px;margin-right:-8px;padding:0;color:var(--blue);border-radius:9px;font-size:11px;font-weight:800}
.form-options{gap:12px;color:#65778c;font-size:10px}
.remember-me{color:#65778c}
.forgot-pin{color:var(--navy);text-underline-offset:3px}
.form-msg{padding:10px 12px;border:1px solid rgba(167,45,67,.12);border-radius:10px;font-size:11px}
.access .primary{
  min-height:52px;
  margin-top:1px;
  border-radius:12px;
  background:var(--navy);
  box-shadow:0 13px 27px rgba(11,35,71,.21);
  font-size:13px;
  font-weight:800;
}
.access .primary:hover{background:var(--blue);box-shadow:0 16px 30px rgba(0,79,176,.23);transform:translateY(-1px)}
.access .primary:focus-visible,.access .login-tabs button:focus-visible,.access .reveal:focus-visible,.access .back-home:focus-visible,.access .forgot-pin:focus-visible{outline:3px solid #ff6fab;outline-offset:3px}
.access-footer{justify-content:flex-start;margin-top:18px;padding-top:15px;border-top:1px solid #dfe7ef;color:#697d92;font-size:9px;line-height:1.5}
.access-footer svg{flex:0 0 auto;width:15px;color:var(--mint)}
@keyframes access-card-in{
  from{opacity:.8;filter:blur(5px);transform:perspective(1500px) rotateY(-3deg) translate3d(0,18px,0)}
  to{opacity:1;filter:none;transform:perspective(1500px) rotateY(-3deg) translate3d(0,0,0)}
}

@media (max-width:900px){
  .access{
    display:block;
    overflow-x:hidden;
    overflow-y:auto;
    padding:0;
    background:#09244c;
  }
  .access:before{position:fixed;background:linear-gradient(180deg, rgba(5,34,71,.3) 0%, transparent 20%, transparent 50%, rgba(5,34,71,.4) 100%)}
  .access:after{display:block;position:fixed;z-index:-2;inset:0;background:url("../../../images/dashboard/login-mobile-kja.webp") center top/cover no-repeat;filter:none}
  .access .back-home{position:fixed;top:max(13px,env(safe-area-inset-top));left:max(13px,env(safe-area-inset-left));right:auto}
  .access-shell{
    width:100%;
    min-height:100svh;
    min-height:100dvh;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-end;
    padding:max(72px,calc(env(safe-area-inset-top) + 60px)) 0 0 0;
  }
  .access-story{display:none}
  .access-form-wrap{
    width:100%;
    max-width:600px;
    min-height:0;
    display:flex;
    flex-direction:column;
    margin:auto auto 0 auto;
    padding:24px 24px max(24px,calc(env(safe-area-inset-bottom) + 16px));
    border-radius:36px 36px 0 0;
    background:#fff;
    box-shadow:0 -10px 40px rgba(1,15,34,.12);
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
    transform:none;
    animation:access-card-in-mobile .48s cubic-bezier(.16,1,.3,1) both;
  }
  .access-form-wrap:before{
    content:"";
    display:block;
    width:48px;
    height:5px;
    border-radius:3px;
    background:#cbd5e1;
    margin:0 auto 24px;
  }
  .access-form-wrap:after{display:none}
  .access-form-head{width:100%;margin:0 0 20px;color:var(--ink);text-align:left}
  .mobile-logo{display:block;width:max-content;margin:0 0 22px;padding:0;background:transparent;box-shadow:none}
  .mobile-logo img{width:150px;height:auto;filter:none}
  .access-form-head .eyebrow{display:block}
  .access-form-head h2{color:var(--navy);font-size:29px;text-shadow:none}
  .access-form-head>p:last-child{max-width:none;margin:0;color:#60748a;font-size:12px;text-shadow:none}
  .access-form-head .secure-badge{display:none}
  .login-panel{width:100%;margin:0;padding:0;border:0;background:transparent;box-shadow:none}
  .login-tabs{margin-bottom:14px}
  .field-box{background:#f8fafc}
  .access-footer{margin-top:18px}
}

@media (max-width:480px){
  .access-shell{align-items:center;padding-top:max(72px,calc(env(safe-area-inset-top) + 58px))}
  .access-form-wrap{padding:24px 18px max(24px,calc(env(safe-area-inset-bottom) + 16px))}
  .mobile-logo{margin-bottom:18px}.mobile-logo img{width:136px}
  .access-form-head{margin-bottom:17px}
  .access-form-head h2{font-size:27px}
  .login-role-help{margin-bottom:13px}
  .login-form{gap:12px}
  .field-box{height:52px;min-height:52px}
  .form-options{align-items:center;flex-direction:row;justify-content:space-between;gap:9px}
  .access .primary{min-height:52px}
}

@media (max-height:520px) and (pointer:coarse){
  .access-shell{align-items:flex-start;padding-top:max(64px,calc(env(safe-area-inset-top) + 52px))}
  .access-form-wrap{display:block;margin:auto;padding:18px 20px}
  .mobile-logo{display:none}
  .access-form-head{margin:0 0 14px}
  .access-form-head h2{font-size:25px}
  .login-panel{margin:0;padding:0}
}

@media (prefers-reduced-transparency:reduce){
  .access .back-home{background:#0b2347;-webkit-backdrop-filter:none;backdrop-filter:none}
  .story-trust span{-webkit-backdrop-filter:none;backdrop-filter:none}
  .access-form-wrap{background:#f8fbfe}
}

@media (prefers-reduced-motion:reduce){
  .access-form-wrap{animation:none;transform:none}
  .access .primary:hover,.access .back-home:hover{transform:none}
}

@keyframes access-card-in-mobile{
  from{opacity:.82;filter:blur(4px);transform:translateY(14px)}
  to{opacity:1;filter:none;transform:none}
}

/* Noche viva: luna legible, reflejo lunar continuo y movimiento de bajo costo. */
.time-ambience-reflection{
  position:absolute;
  z-index:0;
  top:-16%;
  bottom:-16%;
  left:-34%;
  width:42%;
  opacity:0;
  pointer-events:none;
  background:linear-gradient(108deg,transparent 5%,rgba(210,231,255,.05) 35%,rgba(223,239,255,.28) 50%,rgba(196,221,250,.06) 65%,transparent 95%);
  filter:blur(26px);
  transform:translate3d(0,0,0) skewX(-10deg);
  transition:opacity 900ms ease;
}

.portal[data-time-phase="night"]{
  --ambient-shell:#b9c8d8;
  --ambient-surface:rgba(221,231,241,.89);
  --ambient-strong:rgba(232,239,246,.94);
  --ambient-inset:rgba(239,245,250,.69);
  --banner-light:rgba(202,226,255,.46);
  --banner-light-opacity:.92;
  --glass-reflection:rgba(190,219,251,.26);
  --glass-reflection-dark:rgba(180,214,250,.21);
  --glass-edge:rgba(239,247,255,.48);
  --glass-highlight:rgba(245,250,255,.63);
}

.portal[data-time-phase="night"] .time-ambience{
  background:linear-gradient(142deg,#aebfd1 0%,#c7d4e0 54%,#b7c7d7 100%);
}

.portal[data-time-phase="night"] .time-ambience-orb{
  z-index:1;
  width:92px;
  height:92px;
  background:
    radial-gradient(circle at 67% 32%,rgba(126,148,175,.2) 0 5%,transparent 6%),
    radial-gradient(circle at 37% 66%,rgba(119,143,171,.18) 0 7%,transparent 8%),
    radial-gradient(circle at 31% 28%,#fff 0 10%,#f2f7fd 45%,#cbd9e8 100%);
  box-shadow:0 10px 30px rgba(69,92,120,.16),0 0 58px 20px rgba(220,237,255,.28),inset -13px -10px 20px rgba(71,94,123,.2);
  opacity:.78;
  animation:ambience-moon-float 9s ease-in-out infinite;
}

.portal[data-time-phase="night"] .time-ambience-orb::after{
  content:"";
  position:absolute;
  inset:-18px;
  border:1px solid rgba(227,241,255,.22);
  border-radius:50%;
  opacity:.7;
  animation:ambience-moon-halo 5.5s ease-in-out infinite;
}

.portal[data-time-phase="night"] .time-ambience-haze{
  top:4%;
  opacity:.44;
  background:radial-gradient(ellipse at var(--orb-x) var(--orb-y),rgba(207,229,255,.3),transparent 62%);
  animation-duration:17s;
}

.portal[data-time-phase="night"] .time-ambience-reflection{
  opacity:.62;
  animation:ambience-moonbeam 18s cubic-bezier(.45,0,.55,1) infinite alternate;
}

.portal[data-time-phase="night"] #view-inicio > .view-head::before{
  left:58% !important;
  top:50% !important;
  width:clamp(250px,32vw,410px) !important;
  height:230px !important;
  animation:ambience-banner-light 7s ease-in-out infinite !important;
}

.portal[data-time-phase="night"] #view-inicio > .view-head::after{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  left:58% !important;
  top:50% !important;
  width:46px !important;
  height:46px !important;
  border-radius:50% !important;
  background:
    radial-gradient(circle at 68% 31%,rgba(111,137,168,.24) 0 5%,transparent 6%),
    radial-gradient(circle at 35% 67%,rgba(111,137,168,.2) 0 7%,transparent 8%),
    radial-gradient(circle at 31% 27%,#fff 0 10%,#eff6fd 48%,#c8d9e9 100%) !important;
  box-shadow:0 0 24px 9px rgba(214,233,255,.24),inset -7px -5px 10px rgba(69,94,124,.2) !important;
  opacity:.92 !important;
  transform:translate(-50%,-50%) !important;
  pointer-events:none !important;
  animation:ambience-banner-moon 8s ease-in-out infinite !important;
}

.portal[data-time-phase="night"] .portal-rail,
.portal[data-time-phase="night"] .today-layout .day-schedule,
.portal[data-time-phase="night"] .today-layout .progress-card,
.portal[data-time-phase="night"] .today-layout .month-card,
.portal[data-time-phase="night"] .calendar-card,
.portal[data-time-phase="night"] .profile-identity,
.portal[data-time-phase="night"] .profile-data,
.portal[data-time-phase="night"] .attendance-calendar,
.portal[data-time-phase="night"] .attendance-request-center,
.portal[data-time-phase="night"] .attendance-stats .att-stat{
  box-shadow:inset 0 1px 0 var(--glass-highlight),inset 18px 0 40px rgba(207,229,255,.08),0 14px 32px rgba(10,31,56,.1);
}

.portal[data-time-phase="night"] #view-asistencia > .view-head::before{
  left:62% !important;
  top:50% !important;
  width:clamp(220px,28vw,370px) !important;
  height:200px !important;
  animation:ambience-banner-light 8s ease-in-out infinite !important;
}

.portal[data-time-phase="night"] #view-asistencia > .view-head::after{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  left:65% !important;
  top:50% !important;
  width:38px !important;
  height:38px !important;
  border-radius:50% !important;
  background:
    radial-gradient(circle at 68% 31%,rgba(111,137,168,.24) 0 5%,transparent 6%),
    radial-gradient(circle at 35% 67%,rgba(111,137,168,.2) 0 7%,transparent 8%),
    radial-gradient(circle at 31% 27%,#fff 0 10%,#eff6fd 48%,#c8d9e9 100%) !important;
  box-shadow:0 0 20px 8px rgba(214,233,255,.22),inset -6px -4px 9px rgba(69,94,124,.2) !important;
  opacity:.88 !important;
  transform:translate(-50%,-50%) !important;
  pointer-events:none !important;
  animation:ambience-banner-moon 9s ease-in-out infinite !important;
}

.portal[data-time-phase="night"] .attendance-new-request{
  box-shadow:0 0 14px 4px rgba(200,225,255,.12);
}

.portal[data-time-phase="night"] .attendance-topbar .month-toolbar{
  border-color:rgba(190,215,245,.25);
}

.portal[data-ambience-paused="true"] .time-ambience-reflection,
.portal[data-ambience-paused="true"] .time-ambience-orb::after,
.portal[data-ambience-paused="true"] #view-inicio > .view-head::before,
.portal[data-ambience-paused="true"] #view-inicio > .view-head::after,
.portal[data-ambience-paused="true"] .mobile-portal-hero::before{
  animation-play-state:paused !important;
}

@keyframes ambience-moon-float{
  0%,100%{transform:translate(-50%,-50%) translate3d(0,0,0) rotate(-1deg)}
  50%{transform:translate(-50%,-50%) translate3d(0,-9px,0) rotate(1deg)}
}

@keyframes ambience-moon-halo{
  0%,100%{opacity:.38;transform:scale(.94)}
  50%{opacity:.76;transform:scale(1.06)}
}

@keyframes ambience-moonbeam{
  from{transform:translate3d(0,0,0) skewX(-10deg);opacity:.36}
  to{transform:translate3d(300%,0,0) skewX(-10deg);opacity:.62}
}

@keyframes ambience-banner-light{
  0%,100%{scale:.96}
  50%{scale:1.04}
}

@keyframes ambience-banner-moon{
  0%,100%{translate:0 0;rotate:-1deg}
  50%{translate:0 -3px;rotate:1deg}
}

@media (max-width:900px){
  .portal[data-time-phase="night"] .time-ambience-orb{width:70px;height:70px;opacity:.66}
  .portal[data-time-phase="night"] .time-ambience-reflection{opacity:.36}
  .portal[data-time-phase="night"] #view-inicio > .view-head::after{width:38px !important;height:38px !important}

  .portal[data-time-phase="night"] .mobile-portal-home{
    background:linear-gradient(145deg,#062b56 0%,#0a4a82 100%);
  }

  .portal[data-time-phase="night"] .mobile-portal-hero::before{
    content:"";
    position:absolute;
    z-index:-1;
    top:88px;
    right:27px;
    width:54px;
    height:54px;
    border-radius:50%;
    background:
      radial-gradient(circle at 68% 31%,rgba(97,124,157,.24) 0 5%,transparent 6%),
      radial-gradient(circle at 35% 67%,rgba(97,124,157,.2) 0 7%,transparent 8%),
      radial-gradient(circle at 31% 27%,#fff 0 10%,#eef6fd 48%,#c6d8e9 100%);
    box-shadow:0 0 34px 12px rgba(205,229,255,.2),inset -8px -6px 12px rgba(55,84,119,.22);
    opacity:.78;
    animation:ambience-banner-moon 8s ease-in-out infinite;
  }
}

@media (prefers-reduced-motion:reduce){
  .time-ambience-reflection,
  .portal[data-time-phase="night"] .time-ambience-orb,
  .portal[data-time-phase="night"] .time-ambience-orb::after,
  .portal[data-time-phase="night"] #view-inicio > .view-head::before,
  .portal[data-time-phase="night"] #view-inicio > .view-head::after,
  .portal[data-time-phase="night"] .mobile-portal-hero::before{
    animation:none !important;
  }
  .portal[data-time-phase="night"] .time-ambience-reflection{left:34%;opacity:.28;transform:skewX(-10deg)}
}

/* Estado de asistencia: ilustración completa y lenguaje operativo claro. */
.today-layout .day-card-grid .day-action{
  isolation:isolate;
  padding-top:198px;
}

.today-layout .day-card-grid .day-action::after{
  inset:0;
  background:
    radial-gradient(circle at 72% 18%,rgba(57,117,183,.18),transparent 34%),
    linear-gradient(180deg,rgba(7,26,52,0) 0 36%,rgba(7,26,52,.72) 58%,#071a34 72%);
}

.today-layout .day-action-mascot{
  top:30px;
  right:auto;
  left:50%;
  width:min(94%,500px);
  -webkit-mask-image:
    linear-gradient(90deg,transparent 0,#000 6%,#000 96%,transparent 100%),
    linear-gradient(180deg,#000 0,#000 78%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:
    linear-gradient(90deg,transparent 0,#000 6%,#000 96%,transparent 100%),
    linear-gradient(180deg,#000 0,#000 78%,transparent 100%);
  mask-composite:intersect;
  transform:translateX(-50%);
}

.today-layout .day-action-mascot img{
  filter:drop-shadow(0 18px 24px rgba(0,0,0,.2));
}

.today-layout .day-action-copy{
  margin-bottom:16px;
}

.today-layout .day-action-copy h2{
  max-width:22ch;
  margin:0 0 7px;
  font-size:21px;
  line-height:1.17;
}

.today-layout .day-action-copy p{
  max-width:38ch;
  color:#c8d5e4;
  font-size:11px;
  line-height:1.55;
}

.today-layout .status-pill.closed{
  color:#53677f;
  background:rgba(241,246,251,.92);
  box-shadow:inset 0 0 0 1px rgba(51,77,107,.1);
}

.today-layout .day-card[data-attendance-state="closed"] .mark-button:disabled,
.today-layout .day-card[data-attendance-state="off"] .mark-button:disabled{
  grid-template-columns:minmax(0,1fr);
  border-color:rgba(196,215,235,.18);
  color:#e5edf6;
  background:rgba(32,58,87,.72);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}

.today-layout .day-card[data-attendance-state="closed"] .mark-button:disabled .mark-button-copy small,
.today-layout .day-card[data-attendance-state="off"] .mark-button:disabled .mark-button-copy small{
  color:#9fb1c6;
}

.today-layout .day-card[data-attendance-state="closed"] .mark-button:disabled > svg,
.today-layout .day-card[data-attendance-state="off"] .mark-button:disabled > svg{
  display:none;
}

.today-layout .day-card[data-attendance-state="closed"] .mark-button:disabled .mark-button-copy b,
.today-layout .day-card[data-attendance-state="off"] .mark-button:disabled .mark-button-copy b{
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
  line-height:1.25;
}

@media (max-width:650px){
  .today-layout .day-card-grid .day-action{padding-top:182px}
  .today-layout .day-action-mascot{top:10px;right:auto;left:50%;width:94%;transform:translateX(-50%)}
}

/* --- Avatar Crop Modal --- */
.avatar-crop-sheet { max-width: 480px; padding: 28px 26px 24px; }
.avatar-crop-sheet h2 { margin: 0 0 4px; font-size: 22px; }
.avatar-crop-sheet > p { margin: 0 0 18px; color: var(--muted); font-size: 12px; }
.avatar-crop-area { width: 100%; max-height: 420px; overflow: hidden; border-radius: 14px; background: #0b1a2e; }
.avatar-crop-area img { display: block; max-width: 100%; max-height: 420px; }
.avatar-crop-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px; }
.avatar-crop-actions .btn-secondary { min-height: 44px; padding: 0 20px; border: 0; border-radius: 10px; font-size: 13px; font-weight: 600; color: #475569; background: #e8edf3; }
.avatar-crop-actions .btn-secondary:hover { background: #d5dce5; }

.avatar-crop-loader { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; min-height: 280px; }
.avatar-crop-loader span { color: #94a3b8; font-size: 12px; font-weight: 600; }
.avatar-crop-spinner { width: 38px; height: 38px; border: 3px solid #e2e8f0; border-top-color: var(--pink); border-radius: 50%; animation: avatar-crop-spin .7s linear infinite; }
@keyframes avatar-crop-spin { to { transform: rotate(360deg); } }

.avatar-crop-modal .mark-sheet { animation: avatar-crop-in .25s ease; }
@keyframes avatar-crop-in { from { opacity: 0; transform: scale(.95) translateY(12px); } to { opacity: 1; transform: none; } }

/*
   Rediseño visual del panel de Dirección.
   Se mantiene separado del shell personal para no alterar sus vistas ni su
   comportamiento responsive. El shell administrativo queda anclado al
   viewport y desplaza únicamente la sección activa en escritorio.
*/
@media (min-width:901px){
  .portal.admin-wide{
    display:block;
    height:100dvh;
    min-height:100dvh;
    overflow:hidden;
    --admin-ambient-background:linear-gradient(135deg,#c9e2f2 0%,#e5eff5 100%);
    background:var(--admin-ambient-background);
  }

  .portal.admin-wide[data-time-phase="dawn"]{
    --admin-ambient-background:linear-gradient(135deg,#e5edf5 0%,#f1e7e2 100%);
  }

  .portal.admin-wide[data-time-phase="day"]{
    --admin-ambient-background:linear-gradient(135deg,#c9e2f2 0%,#e5eff5 100%);
  }

  .portal.admin-wide[data-time-phase="sunset"]{
    --admin-ambient-background:linear-gradient(135deg,#e3e7f0 0%,#f1e4df 100%);
  }

  .portal.admin-wide[data-time-phase="night"]{
    --admin-ambient-background:linear-gradient(142deg,#aebfd1 0%,#c7d4e0 54%,#b7c7d7 100%);
  }

  .portal.admin-wide .sidebar{
    position:fixed!important;
    z-index:50;
    inset:16px auto auto 16px!important;
    width:236px!important;
    height:calc(100dvh - 32px);
    min-height:0;
    margin:0;
    overflow-y:auto;
    border:1px solid rgba(255,255,255,.12);
    border-radius:22px;
  }

  .portal.admin-wide .workspace{
    height:100dvh;
    min-height:100dvh;
    margin-left:268px!important;
    padding:16px 16px 16px 0!important;
    overflow:hidden;
    background:transparent;
  }

  .portal.admin-wide .time-ambience{
    background:transparent;
  }

  .portal.admin-wide .view{
    width:100%;
    max-width:none;
    margin:0;
  }

  .portal.admin-wide #view-gestion{
    --admin-gutter:22px;
    position:fixed!important;
    z-index:10;
    inset:16px 16px 16px 268px;
    width:auto;
    height:auto;
    min-height:0;
    display:grid;
    grid-template-rows:auto auto minmax(0,1fr);
    row-gap:16px;
    padding:0 var(--admin-gutter);
    overflow:hidden;
    background:transparent;
  }

  .portal.admin-wide #view-gestion>.view-head{
    grid-row:1;
    margin:0!important;
    overflow:hidden!important;
  }

  .portal.admin-wide .admin-head-actions{
    gap:8px;
  }

  .portal.admin-wide .admin-role-chip{
    padding:8px 11px;
    color:#08765d;
    background:#e4f7f1;
  }

  .portal.admin-wide .admin-section-nav{
    grid-row:2;
    margin:0;
  }

  .portal.admin-wide .admin-section-nav button,
  .portal.admin-wide .admin-section-nav a{
    min-height:34px;
    padding-inline:12px;
    border-radius:9px;
  }

  .portal.admin-wide .admin-section-nav button.active{
    color:#fff;
  }

  .portal.admin-wide #view-gestion>#admin-overview-section,
  .portal.admin-wide #view-gestion>#admin-control-section,
  .portal.admin-wide #view-gestion>#admin-list-section,
  .portal.admin-wide #view-gestion>#admin-close-section,
  .portal.admin-wide #view-gestion>#admin-month-section,
  .portal.admin-wide #view-gestion>#admin-summary-section,
  .portal.admin-wide #view-gestion>#admin-people-section,
  .portal.admin-wide #view-gestion>#admin-contracts-section,
  .portal.admin-wide #view-gestion>#admin-roles-section,
  .portal.admin-wide #view-gestion>#admin-access-section{
    grid-row:3;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
  }

  .portal.admin-wide #admin-overview-section{
    padding:18px 0 0;
  }

  .portal.admin-wide #admin-list-section,
  .portal.admin-wide #admin-control-section,
  .portal.admin-wide #admin-close-section,
  .portal.admin-wide #admin-month-section,
  .portal.admin-wide #admin-summary-section,
  .portal.admin-wide #admin-people-section,
  .portal.admin-wide #admin-contracts-section,
  .portal.admin-wide #admin-roles-section,
  .portal.admin-wide #admin-access-section{
    padding:20px 0 0;
  }

  .portal.admin-wide .admin-kpis{
    gap:12px;
    margin-bottom:16px;
  }
}

/* Control diario: una mesa de excepciones, no otra pantalla de administración. */
.admin-control-section{display:grid;gap:14px;min-width:0}.admin-control-section[hidden]{display:none}
.admin-control-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;border-radius:15px;background:#0b2a54;box-shadow:0 12px 30px rgba(9,36,76,.13)}
.admin-control-head h2,.admin-control-head p{margin:0}.admin-control-head h2{color:#fff;font-size:19px;letter-spacing:-.02em}.admin-control-head p{max-width:58ch;margin-top:4px;color:#c4d4e8;font-size:11px;line-height:1.45}
.admin-control-actions{display:flex;align-items:end;gap:7px}.admin-control-actions label{display:grid;gap:4px;color:#cfdbeb;font-size:9px;font-weight:800}.admin-control-actions input,.admin-control-actions>button{height:40px;border-radius:9px;font:700 10px Inter,sans-serif}.admin-control-actions input{padding:0 10px;border:1px solid rgba(255,255,255,.25);color:#183552;background:#fff}.admin-control-actions>button:not(.admin-primary-action){padding:0 12px;border:1px solid rgba(255,255,255,.25);color:#fff;background:rgba(255,255,255,.09)}.admin-control-actions .admin-primary-action{padding-inline:14px;color:#0b2a54;background:#fff;box-shadow:none}.admin-control-actions button:hover{transform:translateY(-1px)}
.admin-control-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));overflow:hidden;border:1px solid #dfe7ef;border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(15,36,66,.045)}.admin-control-kpis button{position:relative;min-width:0;min-height:78px;display:grid;align-content:center;gap:3px;padding:13px 15px;border:0;border-right:1px solid #e7edf3;color:#102b50;background:#fff;text-align:left}.admin-control-kpis button:last-child{border-right:0}.admin-control-kpis button:not(:disabled){cursor:pointer}.admin-control-kpis button:not(:disabled):hover{background:#f5f9fd}.admin-control-kpis button:disabled{opacity:1;cursor:default}.admin-control-kpis small,.admin-control-kpis b,.admin-control-kpis span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-control-kpis small{color:#66798f;font-size:8px;font-weight:800;letter-spacing:.06em}.admin-control-kpis b{color:#102b50;font-size:22px;font-variant-numeric:tabular-nums}.admin-control-kpis span{position:absolute;right:10px;bottom:8px;color:#075abc;font-size:8px;font-weight:800;opacity:0;transition:opacity 160ms ease}.admin-control-kpis button:hover span,.admin-control-kpis button:focus-visible span{opacity:1}
.admin-control-filters{display:grid;grid-template-columns:minmax(180px,1fr) minmax(150px,.55fr) minmax(170px,.65fr) auto;align-items:center;gap:8px;padding:11px 12px;border:1px solid #e1e7ed;border-radius:12px;background:#fff}.admin-control-filters input,.admin-control-filters select{width:100%;height:39px;padding:0 11px;border:1px solid #d5dee7;border-radius:9px;outline:0;color:#30465e;background:#fff;font:600 11px Inter,sans-serif}.admin-control-filters input:focus,.admin-control-filters select:focus{border-color:#6d9fd5;box-shadow:0 0 0 3px rgba(7,90,188,.09)}.admin-control-filters>span{min-width:74px;color:#607087;font-size:10px;font-weight:800;text-align:right}
.admin-control-table{min-width:0;overflow:hidden;border:1px solid #dfe6ed;border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(15,36,66,.04)}.admin-control-table-head,.admin-control-row{display:grid;grid-template-columns:minmax(180px,1.25fr) repeat(5,minmax(82px,.62fr)) minmax(118px,.72fr) 82px;align-items:center;gap:9px;padding-inline:15px}.admin-control-table-head{min-height:39px;color:#66778b;background:#f4f7fa;font-size:8px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.admin-control-row{position:relative;min-height:72px;border-top:1px solid #edf1f4;color:#344c65;font-size:10px}.admin-control-row:before{content:"";position:absolute;inset:14px auto 14px 0;width:3px;border-radius:0 3px 3px 0;background:#aeb9c5}.admin-control-row[data-tone="danger"]:before{background:#cc4c62}.admin-control-row[data-tone="warning"]:before{background:#d28a19}.admin-control-row[data-tone="success"]:before{background:#1d9a7d}.admin-control-row>span{min-width:0}.admin-control-row>span>b,.admin-control-row>span>small{display:block}.admin-control-row>span>b{overflow:hidden;color:#2c435c;font-size:10px;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.admin-control-row>span>small{margin-top:3px;overflow:hidden;color:#718197;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.admin-control-person{display:flex;align-items:center;gap:9px}.admin-control-person>i{width:34px;height:34px;display:grid;flex:0 0 34px;place-items:center;border-radius:10px;color:#fff;background:#153d6d;font-size:8px;font-style:normal;font-weight:800}.admin-control-person>span{min-width:0}.admin-control-person b,.admin-control-person small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-control-person b{color:#183552;font-size:11px}.admin-control-person small{margin-top:2px;color:#718197;font-size:8px}.admin-control-row .needs-attention b{color:#9b3046}.admin-control-row .needs-review b{color:#8a5708}.admin-control-row .is-ok b{color:#08735a}.admin-control-state{display:inline-flex;padding:6px 8px;border-radius:999px;color:#53667c;background:#edf1f5;font-size:8px;font-style:normal;font-weight:800;white-space:nowrap}.admin-control-state.danger{color:#922e43;background:#ffe8ed}.admin-control-state.warning{color:#79520e;background:#fff0d7}.admin-control-state.success{color:#08735a;background:#e4f7f0}.admin-control-row>button{min-height:34px;padding:0 8px;border:1px solid #ccdae7;border-radius:8px;color:#174f84;background:#f8fbfe;font-size:8px;font-weight:800}.admin-control-row>button:hover{border-color:#8eb4d9;background:#eef6fd}.admin-control-row>button:focus-visible,.admin-control-kpis button:focus-visible,.admin-control-actions button:focus-visible{outline:3px solid #46a9d1;outline-offset:2px}
.admin-control-loading{min-height:240px;display:grid;place-items:center;align-content:center;gap:13px;color:#607087;font-size:11px}.admin-control-loading i{width:28px;height:28px;border:3px solid #dce7ef;border-top-color:#075abc;border-radius:50%;animation:daily-upload-spin 800ms linear infinite}.admin-control-empty{min-height:210px;display:grid;place-items:center;align-content:center;gap:5px;padding:24px;text-align:center}.admin-control-empty b{color:#26425f;font-size:14px}.admin-control-empty p{margin:0;color:#718197;font-size:10px}.admin-control-empty button{min-height:36px;margin-top:9px;padding:0 13px;border:1px solid #cbd9e6;border-radius:9px;color:#174f84;background:#f7fbff;font-size:9px;font-weight:800}

@media(max-width:1120px){.admin-control-kpis{grid-template-columns:repeat(3,1fr)}.admin-control-kpis button:nth-child(3){border-right:0}.admin-control-kpis button:nth-child(-n+3){border-bottom:1px solid #e7edf3}.admin-control-table{overflow:auto}.admin-control-table-head,.admin-control-row{min-width:970px}}
@media(max-width:760px){.admin-control-head{align-items:stretch;flex-direction:column}.admin-control-actions{display:grid;grid-template-columns:1fr auto auto}.admin-control-actions label{min-width:0}.admin-control-actions input{width:100%}.admin-control-kpis{grid-template-columns:repeat(2,1fr)}.admin-control-kpis button:nth-child(3){border-right:1px solid #e7edf3}.admin-control-kpis button:nth-child(2n){border-right:0}.admin-control-kpis button:nth-child(-n+4){border-bottom:1px solid #e7edf3}.admin-control-filters{grid-template-columns:1fr}.admin-control-filters>span{text-align:left}.admin-control-table{overflow:visible;border:0;background:transparent;box-shadow:none}.admin-control-table-head{display:none}.admin-control-row{min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:10px;padding:16px;border:1px solid #dfe6ed;border-radius:13px;background:#fff;box-shadow:0 7px 20px rgba(15,36,66,.04)}.admin-control-row:before{inset:15px auto 15px 0}.admin-control-person{grid-column:1/-1;padding-bottom:10px;border-bottom:1px solid #edf1f4}.admin-control-row>span:not(.admin-control-person):before{content:attr(data-label);display:block;margin-bottom:4px;color:#75859a;font-size:8px;font-weight:800;text-transform:uppercase}.admin-control-row>button{grid-column:1/-1;min-height:42px}.admin-control-row>span>b{font-size:11px}}
@media(max-width:440px){.admin-control-actions{grid-template-columns:1fr 1fr}.admin-control-actions label{grid-column:1/-1}.admin-control-kpis button{padding-inline:11px}.admin-control-row{grid-template-columns:1fr}.admin-control-person,.admin-control-row>button{grid-column:1}}

@media(min-width:901px){
  .portal.admin-wide #admin-control-section{
    height:100%;
    grid-template-rows:auto auto auto auto minmax(0,1fr);
    overflow:hidden;
    padding-bottom:0;
  }
  .portal.admin-wide #admin-control-section>.admin-control-head{grid-row:1}
  .portal.admin-wide #admin-control-section>.admin-control-kpis{grid-row:2}
  .portal.admin-wide #admin-control-section>.admin-control-filters{grid-row:3}
  .portal.admin-wide #admin-control-section>#admin-control-message{grid-row:4}
  .portal.admin-wide #admin-control-section>.admin-control-table{
    grid-row:5;
    min-height:0;
    overflow-x:auto;
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
    scrollbar-color:#94a9bd #edf2f6;
    scrollbar-width:thin;
  }
  .portal.admin-wide .admin-control-table-head{
    position:sticky;
    z-index:3;
    top:0;
    box-shadow:0 1px 0 #dfe6ed;
  }
  .portal.admin-wide .admin-control-table::-webkit-scrollbar{width:10px;height:10px}
  .portal.admin-wide .admin-control-table::-webkit-scrollbar-track{background:#edf2f6}
  .portal.admin-wide .admin-control-table::-webkit-scrollbar-thumb{border:2px solid #edf2f6;border-radius:999px;background:#94a9bd}
}

/* Clima vivo: la hora define la luz y el estado meteorológico modela el cielo. */
.weather-chip{
  min-height:36px;
  display:grid;
  align-content:center;
  gap:1px;
  padding:5px 10px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:10px;
  color:#f5f9fd;
  background:rgba(255,255,255,.07);
  text-decoration:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.weather-chip span{font-size:9px;font-weight:750;line-height:1.2;white-space:nowrap}
.weather-chip small{color:#a9c1d9;font-size:7px;line-height:1.15}
.weather-chip:hover{color:#fff;background:rgba(255,255,255,.12)}
.weather-chip:focus-visible{outline:3px solid rgba(116,205,226,.55);outline-offset:3px}

.time-ambience-clouds{
  position:absolute;
  z-index:2;
  inset:-12% -30% 22%;
  opacity:0;
  pointer-events:none;
  background:
    radial-gradient(ellipse at 7% 22%,rgba(255,255,255,.88) 0 6%,rgba(238,244,246,.58) 14%,rgba(184,204,215,.18) 22%,transparent 33%),
    radial-gradient(ellipse at 29% 38%,rgba(255,255,255,.78) 0 8%,rgba(232,240,244,.48) 18%,rgba(172,194,208,.16) 25%,transparent 36%),
    radial-gradient(ellipse at 56% 18%,rgba(255,255,255,.82) 0 7%,rgba(237,244,247,.46) 17%,rgba(181,201,213,.15) 25%,transparent 35%),
    radial-gradient(ellipse at 82% 42%,rgba(255,255,255,.74) 0 8%,rgba(226,236,241,.43) 19%,rgba(166,189,204,.14) 27%,transparent 38%),
    radial-gradient(ellipse at 96% 16%,rgba(255,255,255,.72) 0 6%,rgba(230,239,243,.38) 17%,transparent 32%);
  -webkit-mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.94) 44%,rgba(0,0,0,.38) 78%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.94) 44%,rgba(0,0,0,.38) 78%,transparent 100%);
  filter:blur(23px) saturate(.48);
  transform:translate3d(-4%,0,0);
  animation:weather-cloud-drift var(--weather-cloud-duration,32s) linear infinite alternate;
  transition:opacity 1.4s cubic-bezier(.16,1,.3,1),filter 1.2s ease;
}
.time-ambience-clouds::before{
  content:"";
  position:absolute;
  inset:16% 1% -10%;
  background:
    radial-gradient(ellipse at 18% 44%,rgba(142,168,185,.34) 0 9%,transparent 29%),
    radial-gradient(ellipse at 48% 34%,rgba(158,180,194,.31) 0 11%,transparent 33%),
    radial-gradient(ellipse at 76% 54%,rgba(137,164,182,.29) 0 10%,transparent 31%);
  filter:blur(32px);
}
.time-ambience-rain{
  position:absolute;
  z-index:3;
  inset:-28% -12%;
  opacity:0;
  pointer-events:none;
  background-image:repeating-linear-gradient(102deg,transparent 0 23px,rgba(224,239,249,.34) 24px,transparent 26px 48px);
  background-size:170px 220px;
  filter:blur(.25px);
  transform:translate3d(0,-8%,0);
  animation:weather-rain-fall 1.15s linear infinite;
  transition:opacity 1s ease;
}

.portal[data-weather="clear"] .time-ambience-clouds{opacity:.24}
.portal[data-weather="partly-cloudy"] .time-ambience-clouds{opacity:max(.48,var(--weather-cloud-opacity,.48))}
.portal[data-weather="cloudy"] .time-ambience-clouds,
.portal[data-weather="fog"] .time-ambience-clouds,
.portal[data-weather="rain"] .time-ambience-clouds,
.portal[data-weather="storm"] .time-ambience-clouds{opacity:var(--weather-cloud-opacity,.78)}
.portal[data-weather="fog"] .time-ambience-clouds{filter:blur(34px) saturate(.35)}
.portal[data-weather="rain"] .time-ambience-clouds,
.portal[data-weather="storm"] .time-ambience-clouds{filter:blur(18px) saturate(.38) brightness(.82)}
.portal[data-weather="rain"] .time-ambience-rain{opacity:.30}
.portal[data-weather="storm"] .time-ambience-rain{opacity:.46;animation-duration:.82s}

.portal[data-time-phase="day"][data-weather="clear"] .time-ambience{
  background:linear-gradient(150deg,#a8d1e2 0%,#d1e3e8 54%,#edf0ec 100%);
}
.portal[data-time-phase="day"][data-weather="partly-cloudy"] .time-ambience{
  background:linear-gradient(150deg,#aac9d7 0%,#d0dce0 57%,#e9ebe8 100%);
}
.portal[data-time-phase="day"][data-weather="cloudy"] .time-ambience,
.portal[data-time-phase="day"][data-weather="fog"] .time-ambience{
  background:linear-gradient(150deg,#aebfca 0%,#d3dce1 57%,#e5e8e9 100%);
}
.portal[data-time-phase="day"][data-weather="rain"] .time-ambience{
  background:linear-gradient(150deg,#849cad 0%,#b3c2cb 55%,#d9dfe2 100%);
}
.portal[data-time-phase="day"][data-weather="storm"] .time-ambience{
  background:linear-gradient(150deg,#667b8d 0%,#96a8b4 52%,#c5cdd2 100%);
}
.portal[data-time-phase="dawn"][data-weather="cloudy"] .time-ambience,
.portal[data-time-phase="sunset"][data-weather="cloudy"] .time-ambience{
  background:linear-gradient(145deg,#aeb8c2 0%,#d3cbc9 58%,#e2dedc 100%);
}
.portal[data-time-phase="night"][data-weather="rain"] .time-ambience,
.portal[data-time-phase="night"][data-weather="storm"] .time-ambience{
  background:linear-gradient(142deg,#718397 0%,#929fac 54%,#7c8c9c 100%);
}

.portal[data-time-phase="day"][data-weather="clear"] .time-ambience-orb{opacity:.62;box-shadow:0 0 54px 24px rgba(255,204,104,.25)}
.portal[data-time-phase="day"][data-weather="partly-cloudy"] .time-ambience-orb{opacity:.42}
.portal[data-time-phase="day"][data-weather="cloudy"] .time-ambience-orb,
.portal[data-time-phase="day"][data-weather="fog"] .time-ambience-orb{opacity:.12;box-shadow:0 0 40px 18px rgba(255,220,153,.13)}
.portal[data-time-phase="day"][data-weather="rain"] .time-ambience-orb,
.portal[data-time-phase="day"][data-weather="storm"] .time-ambience-orb{opacity:.05}

@keyframes weather-cloud-drift{
  from{transform:translate3d(-4%,0,0) scale(1)}
  to{transform:translate3d(5%,-1.5%,0) scale(1.025)}
}
@keyframes weather-rain-fall{
  from{transform:translate3d(-1%,-9%,0)}
  to{transform:translate3d(2%,9%,0)}
}

@media(max-width:1100px){.weather-chip small{display:none}.weather-chip{padding-inline:9px}}
@media(max-width:900px){.weather-chip{display:none}}
@media(prefers-reduced-motion:reduce){
  .time-ambience-clouds,.time-ambience-rain{animation:none!important;transform:none}
}

/* ── Cierre diario · evidencias y salida ─────────────────────────── */
.today-layout .day-card{grid-template-areas:"head head" "schedule action" "close close" "progress month"}
.today-layout .day-close{grid-area:close;border-radius:16px;box-shadow:0 12px 30px rgba(19,45,76,.07)}
.welcome-context{display:flex;align-items:center;flex-wrap:wrap;gap:9px 12px;margin-top:8px}
.view-head .welcome-context>p{margin:0;color:var(--text-muted,#64758b);font-size:14px;line-height:1.55}
.welcome-area{display:inline-flex;align-items:center;min-height:32px;padding:5px 10px;border:1px solid #cfe1f2;border-radius:999px;color:#0754a6;background:#edf6ff;font-size:12px;font-weight:800}

.day-close{border-top:1px solid #e6ebf0;background:#fbfcfd}
.day-close[hidden],.daily-evidence-editor[hidden],.daily-evidence-mode[hidden],.daily-evidence-mode label[hidden],.daily-evidence-previews[hidden]{display:none}
.day-close.is-load-error{display:block;padding:16px;border:1px solid #f0d4da;border-radius:14px;background:#fff8f9}
.day-close.is-load-error>:not(.day-close-load-error){display:none!important}
.day-close-load-error{display:flex;align-items:center;justify-content:space-between;gap:16px}
.day-close-load-error[hidden],.mcv2-load-error[hidden]{display:none!important}
.day-close-load-error span,.day-close-load-error b,.day-close-load-error small{display:block}
.day-close-load-error b{color:#8d3548;font-size:13px}
.day-close-load-error small{margin-top:3px;color:#6e5a60;font-size:11px;line-height:1.45}
.day-close-load-error button,.mcv2-load-error button{min-height:38px;padding:0 13px;border:0;border-radius:10px;color:#fff;background:#0b315f;font:inherit;font-size:11px;font-weight:800;white-space:nowrap}
.day-close-load-error button:disabled,.mcv2-load-error button:disabled{opacity:.58;cursor:wait}
.day-close-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 28px 17px}
.day-close-head h2,.day-close-head p{margin:0}
.day-close-head h2{color:#102b50;font-size:17px;line-height:1.3;letter-spacing:-.025em}
.day-close-head p{margin-top:5px;color:#506278;font-size:12px;line-height:1.5}
.day-close-state{display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:6px 10px;border-radius:999px;color:#79520e;background:#fff0d5;font-size:12px;font-weight:800;white-space:nowrap}
.day-close-state i{width:7px;height:7px;border-radius:50%;background:#df9d29}
.day-close-state[data-state="complete"],.day-close-state[data-state="ready"]{color:#08725b;background:#e3f7ef}
.day-close-state[data-state="complete"] i,.day-close-state[data-state="ready"] i{background:#159b78}
.day-close-state[data-state="incomplete"]{color:#a23c51;background:#ffe8ed}
.day-close-state[data-state="incomplete"] i{background:#d34f68}
.day-close-state[data-state="waiting"]{color:#607087;background:#edf1f5}
.day-close-state[data-state="waiting"] i{background:#8795a8}

.day-close-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:22px;padding:0 28px 24px}
.day-close-checklist{border-top:1px solid #e7ebef}
.day-close-item{width:100%;min-height:68px;display:grid;grid-template-columns:35px minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 3px;border:0;border-bottom:1px solid #e7ebef;color:inherit;background:transparent;text-align:left}
.day-close-item:not(:disabled){cursor:pointer}
.day-close-item:not(:disabled):hover .day-close-item-copy b{color:#075abc}
.day-close-item:focus-visible,.day-close-button:focus-visible,.daily-evidence-picker:focus-visible,.daily-evidence-editor button:focus-visible,.daily-evidence-mode input:focus-visible+span{outline:3px solid #075abc;outline-offset:3px}
.day-close-check{width:31px;height:31px;display:grid;place-items:center;border:1px solid #edbd67;border-radius:10px;color:#a96a00;background:#fff5e3}
.day-close-check svg{width:16px;fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}
.day-close-item.is-complete .day-close-check{color:#08735a;border-color:#bce3d5;background:#e5f7f0}
.day-close-item.is-locked .day-close-check{color:#7d8999;border-color:#dae1e8;background:#f0f3f6}
.day-close-item-copy b,.day-close-item-copy small{display:block}
.day-close-item-copy b{color:#263c58;font-size:13px;line-height:1.4}
.day-close-item-copy small{margin-top:3px;color:#506278;font-size:12px;line-height:1.45}
.day-close-item-status{display:flex;align-items:center;gap:5px;color:#855400;font-size:11px;font-weight:800;text-transform:uppercase}
.day-close-item.is-complete .day-close-item-status{color:#08735a}
.day-close-item.is-locked .day-close-item-status{color:#8995a5}
.day-close-item-status svg{width:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

.day-close-action{align-self:start;padding:17px;border:1px solid #e0e6ec;border-radius:15px;background:#fff}
.day-close-time small,.day-close-time b,.day-close-time span{display:block}
.day-close-time small{color:#506278;font-size:11px;font-weight:800;letter-spacing:.06em}
.day-close-time b{margin:3px 0 2px;color:#102b50;font-size:24px;letter-spacing:-.04em}
.day-close-time span{color:#506278;font-size:11px;line-height:1.4}
.day-close-button{width:100%;min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:15px;padding:10px 13px;border:0;border-radius:13px;color:#fff;background:#0b315f;box-shadow:0 9px 22px rgba(11,49,95,.18);text-align:left}
.day-close-button:not(:disabled):hover{background:#0754a6;transform:translateY(-1px)}
.day-close-button:disabled{color:#8996a6;background:#e9edf1;box-shadow:none;cursor:not-allowed}
.day-close-button span small,.day-close-button span b{display:block}
.day-close-button span small{font-size:11px;font-weight:800;letter-spacing:.06em}
.day-close-button span b{margin-top:2px;font-size:13px}
.day-close-button svg{width:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.day-close-message{min-height:18px;margin:9px 0 0;color:#506278;font-size:12px;line-height:1.45}
.day-close-message.is-error{color:#a53c50}
.day-close-message.is-success{color:#08735a}

.daily-evidence-editor{margin:0 28px 25px;padding:20px;border:1px solid #dbe5ef;border-radius:15px;background:#fff;box-shadow:0 12px 30px rgba(15,45,80,.07)}
.daily-evidence-editor>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:17px}
.daily-evidence-editor h3,.daily-evidence-editor header p{margin:0}
.daily-evidence-editor h3{color:#173453;font-size:15px}
.daily-evidence-editor header p{margin-top:4px;color:#506278;font-size:12px;line-height:1.5}
.daily-evidence-editor>header>button{width:44px;height:44px;border:1px solid #d3dce5;border-radius:10px;color:#42566d;background:#f8fafc;font-size:20px;line-height:1}
.daily-evidence-mode{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0 0 13px;padding:0;border:0}
.daily-evidence-mode legend{grid-column:1/-1;margin-bottom:2px;color:#455970;font-size:12px;font-weight:800}
.daily-evidence-mode label{cursor:pointer}
.daily-evidence-mode input{position:absolute;opacity:0;pointer-events:none}
.daily-evidence-mode label>span{min-height:58px;display:flex;flex-direction:column;justify-content:center;padding:10px 12px;border:1px solid #dfe6ed;border-radius:12px;background:#fff}
.daily-evidence-mode label>span b,.daily-evidence-mode label>span small{display:block}
.daily-evidence-mode label>span b{color:#30445d;font-size:13px}
.daily-evidence-mode label>span small{margin-top:3px;color:#506278;font-size:12px;line-height:1.35}
.daily-evidence-mode input:checked+span{border-color:#78aade;background:#f0f7ff;box-shadow:0 0 0 2px rgba(7,90,188,.08)}
.daily-evidence-mode input:checked+span b{color:#0754a6}

.daily-evidence-picker{width:100%;min-height:68px;display:flex;align-items:center;gap:13px;padding:12px 14px;border:1px dashed #a9bfd5;border-radius:13px;color:inherit;background:#f8fbfe;text-align:left}
.daily-evidence-picker:hover{border-color:#4f8fce;background:#f1f7fd}
.daily-evidence-picker>span:first-child{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;color:#075abc;background:#e7f2fd}
.daily-evidence-picker svg{width:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.daily-evidence-picker b,.daily-evidence-picker small{display:block}
.daily-evidence-picker b{color:#2e435c;font-size:13px}
.daily-evidence-picker small{margin-top:3px;color:#506278;font-size:12px}
.daily-evidence-previews{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:10px}
.daily-evidence-preview{position:relative;min-width:0;aspect-ratio:1.35;overflow:hidden;border:1px solid #dce4eb;border-radius:10px;background:#edf1f5}
.daily-evidence-preview img{width:100%;height:100%;display:block;object-fit:cover}
.daily-evidence-preview button{position:absolute;top:5px;right:5px;width:44px;height:44px;border:0;border-radius:9px;color:#fff;background:rgba(10,31,58,.9);font-size:18px}
.daily-evidence-detail{display:grid;gap:6px;margin-top:14px;color:#455970;font-size:12px;font-weight:800}
.daily-evidence-detail textarea{width:100%;resize:vertical;padding:10px 11px;border:1px solid #d3dce5;border-radius:11px;outline:0;color:#2d4058;background:#fff;font:500 13px/1.5 Poppins,Inter,sans-serif}
.daily-evidence-detail textarea:focus{border-color:#72a6d9;box-shadow:0 0 0 3px rgba(7,90,188,.08)}
.daily-evidence-detail textarea:focus-visible{outline:3px solid #075abc;outline-offset:2px;border-color:#075abc;box-shadow:none}
.daily-evidence-message{min-height:18px;margin:9px 0 0;color:#922e43;font-size:12px;line-height:1.45}
.daily-evidence-editor>footer{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
.daily-evidence-secondary,.daily-evidence-submit{min-height:44px;padding:0 16px;border-radius:10px;font-size:12px;font-weight:800}
.daily-evidence-secondary{border:1px solid #dce3ea;color:#5f7085;background:#fff}
.daily-evidence-submit{border:0;color:#fff;background:#075abc}
.daily-evidence-submit:disabled{color:#8b97a6;background:#e9edf1;cursor:wait}

.cal-day.incomplete{color:#a13b50;background:#fff0f3}
.cal-day.incomplete .cal-day-top i{background:#cf5269}
.att-stat.incomplete b{color:#a13b50}
.calendar-legend .incomplete{background:#cf5269}
.month-days-visual .incomplete{background:#cf5269}
.rail-cal-day.incomplete:not(.today){color:#9c3c50;background:#fff0f3}
.rail-cal-day.incomplete:not(.today) i{background:#cf5269}

@media(max-width:760px){
  .today-layout .day-card{grid-template-areas:"head" "schedule" "action" "close" "progress" "month"}
  .welcome-context{align-items:flex-start;flex-direction:column;gap:7px}
  .day-close-head{align-items:flex-start;padding:19px 18px 14px}
  .day-close-layout{grid-template-columns:1fr;padding:0 18px 20px}
  .day-close-action{display:grid;grid-template-columns:1fr minmax(155px,.9fr);align-items:center;gap:12px}
  .day-close-button{margin:0}.day-close-message{grid-column:1/-1;margin:0}
  .daily-evidence-editor{margin:0 18px 20px;padding:16px}
  .daily-evidence-mode{grid-template-columns:1fr}
  .daily-evidence-previews{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(max-width:440px){
  .day-close-head{display:grid;gap:10px}
  .day-close-state{justify-self:start}
  .day-close-item{grid-template-columns:33px minmax(0,1fr)}
  .day-close-item-status{grid-column:2;justify-self:start;margin-top:-6px}
  .day-close-action{grid-template-columns:1fr}
  .daily-evidence-previews{grid-template-columns:repeat(2,minmax(0,1fr))}
  .daily-evidence-editor>footer>*{flex:1}
}

/* Administración del cierre diario */
.admin-close-section[hidden]{display:none}
.admin-close-section{display:grid;align-content:start;gap:15px}
@media(min-width:901px){.portal.admin-wide #admin-close-section{scrollbar-width:thin;scrollbar-color:#94a9bd transparent}.portal.admin-wide #admin-close-section::-webkit-scrollbar{width:10px}.portal.admin-wide #admin-close-section::-webkit-scrollbar-track{background:transparent}.portal.admin-wide #admin-close-section::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:#94a9bd;background-clip:padding-box}}
.admin-close-toolbar,.admin-close-status-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 19px;border:1px solid #e2e7ed;border-radius:15px;background:#fff}
.admin-close-toolbar h2,.admin-close-toolbar p,.admin-close-status-head h3,.admin-close-status-head p,.admin-close-assignment h3,.admin-close-assignment p,.admin-close-assignments h3,.admin-close-assignments p{margin:0}
.admin-close-toolbar h2{color:#183552;font-size:18px}.admin-close-toolbar p,.admin-close-status-head p{margin-top:4px;color:#506278;font-size:12px;line-height:1.5}
.admin-close-toolbar label,.admin-close-status-head label{display:grid;gap:5px;color:#455970;font-size:12px;font-weight:800}
.admin-close-toolbar input,.admin-close-status-head select{height:44px;padding:0 11px;border:1px solid #d3dce5;border-radius:9px;color:#31455e;background:#fff;font:600 13px Inter,sans-serif}
.admin-close-grid{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(340px,1.2fr);gap:15px}
.admin-close-assignment,.admin-close-assignments{padding:18px;border:1px solid #e2e7ed;border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(15,36,66,.04)}
.admin-close-assignment header,.admin-close-assignments>header{padding-bottom:13px;border-bottom:1px solid #edf0f3}.admin-close-assignments>header{display:flex;align-items:center;justify-content:space-between;gap:14px}
.admin-close-assignment h3,.admin-close-assignments h3,.admin-close-status-head h3{color:#263d58;font-size:16px}
.admin-close-assignment header p,.admin-close-assignments header p{margin-top:3px;color:#506278;font-size:12px}
.admin-close-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.admin-close-fields label{display:grid;gap:5px;color:#455970;font-size:12px;font-weight:800}.admin-close-fields .span-2{grid-column:1/-1}
.admin-close-fields input,.admin-close-fields select,.admin-close-fields textarea{width:100%;padding:0 11px;border:1px solid #d3dce5;border-radius:9px;outline:0;color:#30445c;background:#fff;font:500 13px/1.5 Inter,sans-serif}
.admin-close-fields input,.admin-close-fields select{height:44px}.admin-close-fields textarea{padding-block:10px;resize:vertical}
.admin-close-fields input:focus-visible,.admin-close-fields select:focus-visible,.admin-close-fields textarea:focus-visible,.admin-close-toolbar input:focus-visible,.admin-close-status-head select:focus-visible,.admin-close-assignment-row button:focus-visible,.admin-close-assignments>header>button:focus-visible{outline:3px solid #075abc;outline-offset:2px;border-color:#075abc}
.admin-close-assignment>.admin-primary-action{width:100%;min-height:44px;font-size:12px!important}
.admin-close-draw-preview{margin:2px 0 14px;padding:14px;border:1px solid #cbdde9;border-radius:12px;background:#f5faff}.admin-close-draw-preview[hidden]{display:none}.admin-close-draw-preview header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:0 0 11px;border-bottom:1px solid #dce8f1}.admin-close-draw-preview header b,.admin-close-draw-preview header small{display:block}.admin-close-draw-preview header b{color:#173c61;font-size:12px}.admin-close-draw-preview header small{max-width:45ch;margin-top:3px;color:#60758a;font-size:9px;line-height:1.4}.admin-close-draw-preview header em{flex:0 0 auto;padding:5px 7px;border-radius:999px;color:#08735a;background:#dff4ed;font-size:8px;font-style:normal;font-weight:800}.admin-close-draw-preview>div{display:grid;gap:6px;margin-top:10px}.admin-close-draw-preview>div>span{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:9px;background:#fff}.admin-close-draw-preview>div>span>i{width:29px;height:29px;display:grid;flex:0 0 29px;place-items:center;border-radius:8px;color:#fff;background:#164e82;font-size:7px;font-style:normal;font-weight:800}.admin-close-draw-preview>div>span span{min-width:0}.admin-close-draw-preview>div b,.admin-close-draw-preview>div small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-close-draw-preview>div b{color:#2d435b;font-size:10px}.admin-close-draw-preview>div small{margin-top:2px;color:#718197;font-size:8px}.admin-close-draw-preview>p{margin:10px 0 0;color:#60758a;font-size:8px;line-height:1.45}
.admin-close-assignments>header>button{display:inline-flex;min-height:44px;align-items:center;gap:7px;padding:0 11px;border:1px solid #d7e1eb;border-radius:10px;color:#31516f;background:#f7fafc;font:800 11px Inter,sans-serif}.admin-close-assignments>header>button svg{width:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.admin-close-assignments>header>button:hover{border-color:#9fc3e8;color:#075abc;background:#f1f7fd}.admin-close-assignments>header>button:disabled{cursor:wait;opacity:.65}.admin-close-assignments>header>button[aria-busy="true"] svg{animation:admin-assignment-refresh .8s linear infinite}@keyframes admin-assignment-refresh{to{transform:rotate(360deg)}}
.admin-close-assignment-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,.72fr) auto;align-items:center;gap:16px;padding:12px 2px;border-bottom:1px solid #edf0f3}
.admin-close-assignment-row:last-child{border-bottom:0}.admin-close-assignment-row span{min-width:0}
.admin-close-assignment-row small,.admin-close-assignment-row b,.admin-close-assignment-row em{display:block}.admin-close-assignment-row small{color:#07636b;font-size:11px;font-weight:800}.admin-close-assignment-row b{margin-top:2px;overflow:hidden;color:#2d425b;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.admin-close-assignment-row em{margin-top:3px;color:#506278;font-size:11px;font-style:normal}
.admin-close-assignment-row button{flex:0 0 auto;min-height:44px;padding:8px 12px;border:1px solid #e5bdc7;border-radius:9px;color:#922e43;background:#fff6f8;font-size:11px;font-weight:800}
.admin-close-assignment-progress{display:grid;justify-items:start;gap:4px}.admin-close-assignment-progress>em{margin:0!important;color:#6d7f92!important;font-size:10px!important}.admin-assignment-state{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:999px;color:#79520e;background:#fff0d7;font-size:10px;font-weight:800;line-height:1.2;white-space:nowrap}.admin-assignment-state i{width:6px;height:6px;border-radius:50%;background:currentColor}.admin-assignment-state.entregada,.admin-assignment-state.parcial{color:#075abc;background:#e9f3ff}.admin-assignment-state.aprobada{color:#08735a;background:#e4f7f0}.admin-assignment-state.observada{color:#922e43;background:#ffe8ed}.admin-assignment-state.sin_destinatarios{color:#506278;background:#edf1f5}
@media(max-width:700px){.admin-close-assignment-row{grid-template-columns:minmax(0,1fr) auto}.admin-close-assignment-progress{grid-column:1/-1}.admin-close-assignment-row>button{grid-column:2;grid-row:1}.admin-close-assignments>header>button span{display:none}.admin-close-assignments>header>button{width:44px;justify-content:center;padding:0}}
@media(prefers-reduced-motion:reduce){.admin-close-assignments>header>button[aria-busy="true"] svg{animation:none}}
.admin-close-status-head h3{font-size:14px}.admin-close-status-head select{min-width:160px}
.admin-close-status{display:grid;gap:12px}
.admin-close-area{overflow:hidden;border:1px solid #e2e7ed;border-radius:15px;background:#fff}.admin-close-area>header{padding:12px 16px;border-bottom:1px solid #edf0f3;background:#fafbfd}.admin-close-area>header b,.admin-close-area>header small{display:block}.admin-close-area>header b{color:#2e435c;font-size:13px}.admin-close-area>header small{margin-top:2px;color:#506278;font-size:11px}
.admin-close-table-head,.admin-close-person{display:grid;grid-template-columns:minmax(170px,1.4fr) 70px minmax(150px,1fr) 70px minmax(95px,.72fr) minmax(90px,.62fr);align-items:center;gap:10px;padding:10px 15px}
.admin-close-table-head{color:#506278;background:#f7f9fb;font-size:11px;font-weight:800;text-transform:uppercase}.admin-close-person{min-height:60px;border-top:1px solid #f0f2f5;color:#455970;font-size:12px}.admin-close-person:first-of-type{border-top:0}.admin-close-person>span:first-child b,.admin-close-person>span:first-child small{display:block}.admin-close-person>span:first-child b{color:#2b4058;font-size:13px}.admin-close-person>span:first-child small{margin-top:2px;color:#506278;font-size:11px}
.admin-close-person.is-off{background:#fff2f4;box-shadow:inset 0 1px rgba(190,54,82,.08),inset 0 -1px rgba(190,54,82,.08)}
.admin-close-person.is-off>span:first-child b{color:#762f40}
.admin-close-person.is-off .admin-close-person-schedule{color:#a34359;font-weight:700}
.admin-close-status-pill{justify-self:start;padding:6px 9px;border-radius:999px;color:#79520e;background:#fff0d7;font-size:11px;font-weight:800;white-space:nowrap}.admin-close-status-pill.completa,.admin-close-status-pill.regularizada,.admin-close-status-pill.lista_para_salir{color:#08735a;background:#e4f7f0}.admin-close-status-pill.incompleta{color:#922e43;background:#ffe8ed}.admin-close-status-pill.sin_entrada,.admin-close-status-pill.no_aplica{color:#506278;background:#edf1f5}
.admin-review-summary{min-height:76px;display:grid;grid-template-columns:repeat(3,minmax(115px,.4fr)) minmax(220px,1fr);align-items:center;gap:0;overflow:hidden;border:1px solid #dbe5ef;border-radius:15px;background:#f7fbff}
.admin-review-summary>span{position:relative;min-height:52px;display:grid;grid-template-columns:10px 1fr;align-content:center;column-gap:9px;padding:0 18px;border-right:1px solid #dfe8f1}
.admin-review-summary>span i{grid-row:1/3;width:8px;height:8px;border-radius:50%}.admin-review-summary>span i.pending{background:#c97808}.admin-review-summary>span i.approved{background:#24a68a}.admin-review-summary>span i.observed{background:#c23b50}
.admin-review-summary>span small{color:#607087;font-size:9px;font-weight:800;letter-spacing:.08em}.admin-review-summary>span b{color:#102b50;font-size:21px;line-height:1.1}
.admin-review-summary>p{margin:0;padding:0 20px;color:#506278;font-size:11px;line-height:1.5}
.admin-review-summary .admin-review-readonly{grid-column:1/-1;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;border:0}.admin-review-readonly b{font-size:13px!important}.admin-review-readonly small{margin-top:3px;font-size:11px!important;font-weight:500!important;letter-spacing:0!important}.admin-review-readonly.is-warning{color:#79520e;background:#fff8eb}
.admin-close-evidence-cell{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.admin-close-evidence-cell>b{font-size:12px}.admin-close-evidence-actions{display:flex;flex-wrap:wrap;gap:5px}
.admin-close-review-trigger{display:inline-flex;align-items:center;min-height:32px;padding:0 10px;border:1px solid rgba(7,90,188,.22);border-radius:9px;color:#075abc;background:#eff6ff;font-size:10px;font-weight:800;text-align:left;transition:background-color .18s ease-out,border-color .18s ease-out,color .18s ease-out}.admin-close-review-trigger:hover{border-color:rgba(7,90,188,.38);color:#093b75;background:#e3efff}.admin-close-review-trigger.has-pending{border-color:#ebcb8c;color:#875407;background:#fff5df}.admin-close-review-trigger.has-pending:hover{border-color:#d9ae58;background:#ffedc8}.admin-close-review-trigger:focus-visible{outline:3px solid #075abc;outline-offset:3px}
.admin-close-upload-trigger{min-height:44px;padding:0 12px;border:1px solid #c56851;border-radius:9px;color:#963e2c;background:#fff0e9;font-size:11px;font-weight:800}.admin-close-upload-trigger:hover{border-color:#963e2c;background:#ffe2d5}.admin-close-upload-trigger:focus-visible{outline:3px solid #963e2c;outline-offset:3px}

/* Mesa privada de revisión de evidencias */
body.admin-review-open{overflow:hidden}
.admin-review-modal{z-index:430;padding:20px}
.admin-review-sheet{position:relative;z-index:1;width:min(1040px,100%);max-height:calc(100dvh - 40px);display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden;border-radius:18px;background:#fff;box-shadow:0 28px 80px rgba(0,18,45,.34);animation:daily-evidence-sheet-in 220ms cubic-bezier(.16,1,.3,1) both}
.admin-review-head{min-width:0;display:grid;grid-template-columns:46px minmax(0,1fr) 40px;align-items:center;gap:13px;padding:20px 22px 17px;background:linear-gradient(110deg,#fff 60%,#eef6fd)}
.admin-review-person-mark{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;color:#fff;background:#09244c;font-size:12px;font-weight:800;box-shadow:0 8px 18px rgba(9,36,76,.16)}
.admin-review-head h2,.admin-review-head p{margin:0}.admin-review-head h2{overflow:hidden;color:#102b50;font-size:20px;letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap}.admin-review-head p{margin-top:4px;color:#607087;font-size:11px}.admin-review-head .modal-close{position:static}
.admin-review-tabs{display:flex;gap:6px;overflow:auto;padding:10px 16px;border-block:1px solid #e4ebf2;background:#f7f9fc;scrollbar-width:thin;scrollbar-color:#bdcad8 transparent}
.admin-review-tabs button{min-width:178px;max-width:240px;display:grid;gap:3px;padding:9px 11px;border:1px solid transparent;border-radius:10px;color:#506278;background:transparent;text-align:left}
.admin-review-tabs button:hover{background:#eef3f8}.admin-review-tabs button.active{border-color:#a9c8e9;color:#123f74;background:#fff;box-shadow:0 5px 14px rgba(22,55,91,.07)}
.admin-review-tabs button span{overflow:hidden;font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.admin-review-tabs button small{font-size:9px}.admin-review-tabs button[data-state="pendiente"] small{color:#9a5c00}.admin-review-tabs button[data-state="aprobada"] small{color:#08735a}.admin-review-tabs button[data-state="observada"] small{color:#922e43}
.admin-review-workspace{min-height:0;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr)}
.admin-review-gallery-wrap{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);padding:20px 22px 22px;background:#eef3f8}
.admin-review-gallery-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:13px}.admin-review-gallery-head b,.admin-review-gallery-head small{display:block}.admin-review-gallery-head b{color:#183552;font-size:14px}.admin-review-gallery-head small{margin-top:3px;color:#607087;font-size:10px}
.admin-review-state{flex:0 0 auto;padding:6px 9px;border-radius:999px;color:#79520e;background:#fff0d7;font-size:9px;font-weight:800}.admin-review-state[data-state="aprobada"]{color:#08735a;background:#dff4ed}.admin-review-state[data-state="observada"]{color:#922e43;background:#ffe8ed}
.admin-review-gallery{min-height:300px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;overflow:auto;padding:2px;scrollbar-width:thin;scrollbar-color:#aebdcb transparent}
.admin-review-gallery>a{position:relative;min-height:210px;display:grid;place-items:center;overflow:hidden;border-radius:12px;color:#fff;background:#071a34;box-shadow:0 9px 23px rgba(7,26,52,.13)}
.admin-review-gallery>a img{width:100%;height:100%;display:block;object-fit:contain;transition:transform 240ms cubic-bezier(.16,1,.3,1)}.admin-review-gallery>a:hover img{transform:scale(1.025)}
.admin-review-gallery>a span{position:absolute;left:9px;bottom:9px;padding:5px 7px;border-radius:7px;background:rgba(6,26,56,.88);font-size:9px;font-weight:800}.admin-review-gallery>a>svg{position:absolute;right:9px;bottom:9px;width:28px;height:28px;padding:6px;border-radius:8px;background:rgba(6,26,56,.88)}
.admin-review-loading,.admin-review-error{grid-column:1/-1;align-self:center;margin:auto;max-width:42ch;padding:24px;color:#607087;text-align:center;font-size:11px;line-height:1.5}.admin-review-error{color:#922e43}
.admin-review-decision{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:auto;padding:22px;border-left:1px solid #e1e8ef;background:#fff}
.admin-review-note,.admin-review-origin,.admin-review-history{padding-bottom:17px;border-bottom:1px solid #e8edf2}.admin-review-note small,.admin-review-origin small,.admin-review-history small{color:#718096;font-size:9px;font-weight:800;letter-spacing:.08em}.admin-review-note p,.admin-review-origin p,.admin-review-history p{margin:7px 0 0;color:#334a65;font-size:12px;line-height:1.55;overflow-wrap:anywhere}.admin-review-origin,.admin-review-history{margin-top:16px}.admin-review-origin{padding:12px 13px;border:1px solid #cfe5df;border-radius:11px;background:#f0faf7}.admin-review-origin small{color:#08735a}.admin-review-origin p{color:#315b50}.admin-review-history p{color:#922e43}
.admin-review-observation{display:grid;gap:6px;margin-top:18px;color:#334a65;font-size:11px;font-weight:800}.admin-review-observation[hidden]{display:none}.admin-review-observation textarea{width:100%;min-height:108px;padding:11px 12px;resize:vertical;border:1px solid #ccd8e4;border-radius:10px;outline:0;color:#253d58;background:#fbfcfe;font:500 12px/1.5 Inter,sans-serif}.admin-review-observation textarea:focus{border-color:#6d9fd5;box-shadow:0 0 0 3px rgba(7,90,188,.09)}.admin-review-observation>small{color:#738399;font-size:9px;font-weight:500}
.admin-review-message{min-height:34px;margin:12px 0 0;color:#607087;font-size:10px;line-height:1.45}.admin-review-message.is-error{color:#922e43}
.admin-review-decision footer{position:sticky;z-index:2;bottom:-22px;display:grid;gap:8px;margin-top:auto;padding:15px 0 22px;border-top:1px solid #e8edf2;background:#fff}.admin-review-decision footer button{min-height:45px;display:flex;align-items:center;justify-content:center;gap:9px;border-radius:10px;font-size:11px;font-weight:800}.admin-review-decision footer button[hidden]{display:none}.admin-review-decision footer svg{width:17px;height:17px}.admin-review-observe{border:1px solid #e3b5bf;color:#922e43;background:#fff7f8}.admin-review-observe:hover:not(:disabled){background:#ffecef}.admin-review-observe:disabled{color:#8996a6;border-color:#dce3ea;background:#f3f5f7}.admin-review-approve{border:0;color:#fff;background:#08735a;box-shadow:0 8px 18px rgba(8,115,90,.15)}.admin-review-approve:hover:not(:disabled){background:#095f4d}.admin-review-decision footer button:focus-visible,.admin-review-tabs button:focus-visible,.admin-review-gallery>a:focus-visible{outline:3px solid #075abc;outline-offset:3px}

.team-state.completa,.team-state.regularizada,.team-state.lista_para_salir,.admin-status-pill.completa,.admin-status-pill.regularizada,.admin-status-pill.lista_para_salir,.admin-current-state.completa,.admin-current-state.regularizada,.admin-current-state.lista_para_salir{color:#08735a;background:#e4f7f0}
.team-state.incompleta,.admin-status-pill.incompleta,.admin-current-state.incompleta{color:#922e43;background:#ffe8ed}
.team-state.en_curso,.team-state.sin_entrada,.admin-status-pill.en_curso,.admin-status-pill.sin_entrada,.admin-current-state.en_curso,.admin-current-state.sin_entrada{color:#506278;background:#edf1f5}
.team-state,.admin-status-pill,.admin-current-state{font-size:11px!important;line-height:1.3}
.team-profile-stats{grid-template-columns:repeat(5,1fr)}
.team-profile-stats .incomplete b{color:#922e43}
.team-profile-calendar span.incomplete{color:#922e43;background:#ffe8ed}
.team-profile-calendar span.incomplete i{color:inherit;font-weight:800}
.team-profile-open{min-height:44px}
.team-evidence-guide{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px;padding:14px 16px;border:1px solid #cfe5df;border-radius:14px;color:#31546c;background:linear-gradient(105deg,#f3fbf8,#f4f9ff);box-shadow:0 8px 22px rgba(9,36,76,.045)}
.team-evidence-guide span,.team-evidence-guide b,.team-evidence-guide small{display:block}.team-evidence-guide b{color:#123d57;font-size:12px}.team-evidence-guide small{margin-top:3px;color:#60758a;font-size:10px;line-height:1.45}.team-evidence-guide>i{flex:0 0 auto;padding:7px 9px;border-radius:999px;color:#08735a;background:#dff4ed;font-size:8px;font-style:normal;font-weight:800;letter-spacing:.08em}.team-evidence-guide.is-warning{border-color:#ecd5a9;background:#fff9ee}.team-evidence-guide.is-warning b{color:#79520e}
.team-row-progress{min-width:0}.team-row-progress>small{white-space:nowrap}.team-evidence-state{display:flex!important;align-items:center;gap:5px;margin-top:5px!important;color:#607087!important;font-size:9px!important;font-style:normal;font-weight:800}.team-evidence-state:before{content:"";width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#9aa8b8}.team-evidence-state.pending{color:#8a5708!important}.team-evidence-state.pending:before{background:#d68b18;box-shadow:0 0 0 3px #fff1d9}.team-evidence-state.approved{color:#08735a!important}.team-evidence-state.approved:before{background:#24a68a}.team-evidence-state.observed,.team-evidence-state.missing{color:#922e43!important}.team-evidence-state.observed:before,.team-evidence-state.missing:before{background:#d34f65}.team-row-actions{display:grid;gap:5px}.team-row-actions button{width:100%;min-height:30px;padding:0 7px;border-radius:8px;font-size:8px;font-weight:800}.team-evidence-open{border:0;color:#fff;background:#0b5ca8}.team-evidence-open:hover{background:#084b8c}.team-evidence-open:focus-visible,.team-profile-open:focus-visible{outline:3px solid #075abc;outline-offset:2px}
.admin-review-access{display:inline-flex;margin-bottom:5px;padding:4px 7px;border-radius:999px;color:#08735a;background:#dff4ed;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.admin-review-access[hidden]{display:none}
.admin-review-decision.is-readonly{background:linear-gradient(180deg,#fff,#f7fbff)}.admin-review-decision.is-readonly .admin-review-message{min-height:0;margin-top:18px;padding:12px;border:1px solid #cfe1ef;border-radius:10px;color:#31546c;background:#eef7fd}.admin-review-decision.is-readonly footer{display:none}

/* Carga delegada: una mesa compacta para registrar archivos recibidos por interno. */
body.admin-evidence-open{overflow:hidden}
.admin-evidence-modal{z-index:440;padding:20px}
.admin-evidence-sheet{position:relative;z-index:1;width:min(920px,100%);max-height:calc(100dvh - 40px);display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border-radius:18px;background:#fff;box-shadow:0 28px 80px rgba(0,18,45,.34);animation:daily-evidence-sheet-in 220ms cubic-bezier(.16,1,.3,1) both}
.admin-evidence-head{display:grid;grid-template-columns:46px minmax(0,1fr) 40px;align-items:center;gap:13px;padding:19px 22px 17px;border-bottom:1px solid #e3e8ee;background:linear-gradient(110deg,#fff 58%,#eef7f5)}
.admin-evidence-head h2,.admin-evidence-head p{margin:0}.admin-evidence-head h2{overflow:hidden;color:#102b50;font-size:20px;letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap}.admin-evidence-head p{margin-top:4px;color:#607087;font-size:11px}.admin-evidence-head .modal-close{position:static}
.admin-evidence-person-mark{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;color:#fff;background:#09244c;font-size:12px;font-weight:800;box-shadow:0 8px 18px rgba(9,36,76,.16)}
.admin-evidence-sheet form{min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto}
.admin-evidence-workspace{min-height:0;display:grid;grid-template-columns:280px minmax(0,1fr)}
.admin-evidence-requirements{min-height:0;overflow:auto;padding:22px 18px;border-right:1px solid #e1e8ef;background:#f5f8fb}.admin-evidence-requirements h3,.admin-evidence-requirements p{margin:0}.admin-evidence-requirements h3{color:#183552;font-size:14px}.admin-evidence-requirements>p{margin-top:5px;color:#506278;font-size:11px;line-height:1.5}
#admin-evidence-requirement-list{display:grid;gap:7px;margin-top:17px}.admin-evidence-requirement{width:100%;min-height:58px;display:grid;grid-template-columns:38px minmax(0,1fr) 18px;align-items:center;gap:10px;padding:10px;border:1px solid transparent;border-radius:12px;color:#425970;background:transparent;text-align:left}.admin-evidence-requirement:hover{background:#fff}.admin-evidence-requirement.active{border-color:#6fa8df;color:#123f74;background:#fff;box-shadow:0 7px 18px rgba(9,36,76,.06)}.admin-evidence-requirement:focus-visible{outline:3px solid #1774cf;outline-offset:2px}.admin-evidence-requirement>i{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;color:#075abc;background:#e8f2ff}.admin-evidence-requirement[data-kind="rpe"]>i,.admin-evidence-requirement[data-kind="asignado"]>i{color:#8b5a08;background:#fff1d9}.admin-evidence-requirement[data-kind="salida"]>i{color:#08717f;background:#e4f7f8}.admin-evidence-requirement svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.admin-evidence-requirement>span{min-width:0}.admin-evidence-requirement b,.admin-evidence-requirement small{display:block}.admin-evidence-requirement b{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.admin-evidence-requirement small{margin-top:3px;color:#506278;font-size:11px}.admin-evidence-requirement>svg{width:16px;color:#6c7e91}.admin-evidence-requirement[data-kind="comparticiones"]>i svg{fill:currentColor;stroke:none}
.admin-evidence-audit-note{display:flex;align-items:flex-start;gap:9px;margin-top:18px;padding-top:16px;border-top:1px solid #dde5ed}.admin-evidence-audit-note>svg{width:19px;flex:0 0 19px;fill:none;stroke:#08735a;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.admin-evidence-audit-note b,.admin-evidence-audit-note small{display:block}.admin-evidence-audit-note b{color:#315b50;font-size:11px}.admin-evidence-audit-note small{margin-top:3px;color:#506d64;font-size:11px;line-height:1.45}
.admin-evidence-compose{min-height:0;overflow:auto;padding:22px 24px}.admin-evidence-compose>header{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px}.admin-evidence-compose>header h3,.admin-evidence-compose>header p{margin:0}.admin-evidence-compose>header h3{color:#173653;font-size:15px}.admin-evidence-compose>header p{margin-top:3px;color:#506278;font-size:11px}.admin-evidence-kind-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;color:#075abc;background:#e8f2ff}.admin-evidence-kind-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.admin-evidence-kind-icon svg path[d^="M14 8"]{fill:currentColor;stroke:none}
.admin-evidence-format{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:18px 0 0;padding:0;border:0}.admin-evidence-format[hidden]{display:none}.admin-evidence-format legend{grid-column:1/-1;margin-bottom:2px;color:#455970;font-size:12px;font-weight:800}.admin-evidence-format label{position:relative;display:block}.admin-evidence-format label[hidden]{display:none}.admin-evidence-format input{position:absolute;opacity:0;pointer-events:none}.admin-evidence-format label>span{min-height:65px;display:flex;flex-direction:column;justify-content:center;padding:10px 12px;border:1px solid #d9e2eb;border-radius:11px;color:#455970;background:#fff}.admin-evidence-format b,.admin-evidence-format small{display:block}.admin-evidence-format b{font-size:12px}.admin-evidence-format small{margin-top:3px;color:#506278;font-size:11px}.admin-evidence-format input:checked+span{border-color:#6fa8df;color:#075abc;background:#eff6ff;box-shadow:0 0 0 2px rgba(7,90,188,.07)}.admin-evidence-format input:focus-visible+span{outline:3px solid #1774cf;outline-offset:2px}
.admin-evidence-picker{min-height:112px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-top:18px;padding:16px;border:1px dashed #9fc3e8;border-radius:13px;color:#36536f;background:#f5f9fe;text-align:center;cursor:pointer}.admin-evidence-picker:hover{border-color:#5e9ad4;background:#edf6ff}.admin-evidence-picker>span{width:36px;height:36px;display:grid;place-items:center;margin-bottom:8px;border-radius:10px;color:#075abc;background:#e1efff}.admin-evidence-picker svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.admin-evidence-picker b{font-size:12px}.admin-evidence-picker small{margin-top:4px;color:#506278;font-size:11px}.admin-evidence-picker:focus-within,.admin-evidence-picker:focus-visible{outline:3px solid #1774cf;outline-offset:2px}
.admin-evidence-previews{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-top:10px}.admin-evidence-previews:empty{display:none}.admin-evidence-preview{position:relative;min-width:0;aspect-ratio:1;overflow:hidden;border-radius:10px;background:#09244c}.admin-evidence-preview img{width:100%;height:100%;display:block;object-fit:cover}.admin-evidence-preview button{position:absolute;top:5px;right:5px;width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;border-radius:9px;color:#fff;background:rgba(6,26,56,.9)}.admin-evidence-preview button:hover{background:#922e43}.admin-evidence-preview button:focus-visible{outline:3px solid #fff;outline-offset:2px}.admin-evidence-preview button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.admin-evidence-field{display:grid;gap:6px;margin-top:16px;color:#40566e;font-size:12px;font-weight:800}.admin-evidence-field[hidden]{display:none}.admin-evidence-field input,.admin-evidence-field textarea{width:100%;padding:0 12px;border:1px solid #d1dce7;border-radius:10px;outline:0;color:#243c56;background:#fbfcfe;font:500 12px/1.5 Inter,sans-serif}.admin-evidence-field input{height:46px}.admin-evidence-field textarea{min-height:78px;padding-block:10px;resize:vertical}.admin-evidence-field input:focus,.admin-evidence-field textarea:focus{border-color:#1774cf;box-shadow:0 0 0 3px rgba(23,116,207,.2)}.admin-evidence-field small{color:#506278;font-size:11px;font-weight:500;line-height:1.45}
.admin-evidence-message{min-height:20px;margin:12px 0 0;color:#506278;font-size:11px;line-height:1.45}.admin-evidence-message.is-error{color:#922e43}.admin-evidence-message.is-progress{color:#075abc}
.admin-evidence-actions{display:flex;justify-content:flex-end;gap:9px;padding:14px 22px;border-top:1px solid #e3e8ee;background:#fff}.admin-evidence-actions button{min-height:44px;padding:0 16px;border-radius:10px;font-size:11px;font-weight:800}.admin-evidence-cancel{border:1px solid #d6e0e9;color:#506278;background:#fff}.admin-evidence-submit{display:flex;align-items:center;justify-content:center;gap:9px;border:0;color:#fff;background:#075abc;box-shadow:0 9px 20px rgba(7,90,188,.18)}.admin-evidence-submit:hover:not(:disabled){background:#084b98}.admin-evidence-submit:disabled{color:#8290a0;background:#e8edf2;box-shadow:none;cursor:not-allowed}.admin-evidence-submit svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.admin-evidence-actions button:focus-visible{outline:3px solid #1774cf;outline-offset:2px}
.admin-month-cell.incomplete{color:#922e43;background:#ffe8ed;box-shadow:inset 0 0 0 1px #efbdc8}
.admin-month-cell.close-pending{color:#79520e;background:#fff0d7;box-shadow:inset 0 0 0 1px #efd099}
.month-day-current.incomplete{color:#922e43;background:#ffe8ed}
.month-day-current.close-pending{color:#79520e;background:#fff0d7}
.admin-summary-states{grid-template-columns:repeat(5,1fr)}
.admin-summary-states .incomplete{color:#922e43;background:#ffe8ed}

@media(max-width:860px){
  .admin-review-summary{grid-template-columns:repeat(3,1fr)}.admin-review-summary>p{grid-column:1/-1;padding:14px 18px;border-top:1px solid #dfe8f1}.admin-review-summary>span:nth-child(3){border-right:0}
  .admin-close-grid{grid-template-columns:1fr}
  .admin-close-table-head{display:none}
  .admin-close-person{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:15px}
  .admin-close-person>span{display:grid;gap:3px;min-width:0}
  .admin-close-person>span::before{content:attr(data-label);color:#506278;font-size:11px;font-weight:800;text-transform:uppercase}
  .admin-close-person>span:first-child{grid-column:1/-1}
  .admin-close-status-pill{justify-self:stretch}
  .admin-review-workspace{display:block;overflow:auto}.admin-review-decision{overflow:visible;border-top:1px solid #e1e8ef;border-left:0}.admin-review-gallery{max-height:430px}
  .admin-evidence-workspace{grid-template-columns:230px minmax(0,1fr)}.admin-evidence-previews{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:600px){
  .admin-close-toolbar,.admin-close-status-head{align-items:flex-start;flex-direction:column}.admin-close-toolbar label,.admin-close-status-head label{width:100%}.admin-close-toolbar input,.admin-close-status-head select{width:100%}
  .admin-close-fields{grid-template-columns:1fr}.admin-close-fields .span-2{grid-column:1}
  .team-profile-stats{grid-template-columns:repeat(2,1fr)}
  .team-profile-stats span{padding:7px 0}.team-profile-stats span:nth-child(2n){border-right:0}
  .admin-review-modal{align-items:end;padding:0}.admin-review-sheet{width:100%;max-height:94dvh;border-radius:18px 18px 0 0}.admin-review-head{padding:17px 16px 14px}.admin-review-tabs{padding-inline:12px}.admin-review-gallery-wrap{padding:17px 14px}.admin-review-gallery{grid-template-columns:1fr;max-height:390px}.admin-review-gallery>a{min-height:240px}.admin-review-decision{padding:18px 16px max(18px,env(safe-area-inset-bottom))}.admin-review-decision footer{position:static;padding-bottom:0}
  .admin-evidence-modal{align-items:end;padding:0}.admin-evidence-sheet{width:100%;max-height:96dvh;border-radius:18px 18px 0 0}.admin-evidence-head{padding:16px}.admin-evidence-workspace{display:block;overflow:auto}.admin-evidence-requirements{overflow:visible;padding:16px;border-right:0;border-bottom:1px solid #e1e8ef}.admin-evidence-requirements>p{max-width:55ch}#admin-evidence-requirement-list{display:flex;overflow:auto;margin-top:12px;padding-bottom:2px}.admin-evidence-requirement{min-width:210px}.admin-evidence-audit-note{margin-top:12px;padding-top:12px}.admin-evidence-compose{overflow:visible;padding:18px 16px}.admin-evidence-format{grid-template-columns:1fr}.admin-evidence-previews{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-evidence-field input,.admin-evidence-field textarea{font-size:16px}.admin-evidence-actions{padding:12px 16px max(14px,env(safe-area-inset-bottom))}.admin-evidence-submit{flex:1}.admin-evidence-cancel{padding-inline:13px}
  .team-evidence-guide{align-items:flex-start;flex-direction:column}.team-row-actions{grid-column:2/-1;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.team-row-actions .team-profile-open{grid-column:auto}.team-row-progress{display:none}
}

/* Cierre personal compacto: ocupa el lugar de la ilustración tras marcar entrada. */
.today-layout .day-card-grid .day-action{
  min-height:334px;
  justify-content:flex-end;
  padding:26px 22px 20px;
  background:
    radial-gradient(circle at 86% 9%,rgba(67,197,209,.18),transparent 36%),
    linear-gradient(145deg,#09244c 0%,#061a38 72%);
}
.today-layout .day-card-grid .day-action:after{display:none}
.today-layout .day-action-copy{margin-top:auto}
.today-layout .day-card.has-daily-close{
  grid-template-areas:"head head" "schedule close" "progress month";
}
.today-layout .day-card.has-daily-close .day-action{display:none!important}
.today-layout .day-card.daily-close-pending .day-action,
.today-layout .day-card.daily-close-confirmed-hidden .day-action{display:none!important}
#mobile-primary-attendance.daily-close-pending,
#mobile-primary-attendance.daily-close-confirmed-hidden{display:none!important}
.today-layout .day-card.has-daily-close .day-close{
  grid-area:close;
  align-self:stretch;
  min-width:0;
  min-height:334px;
  max-height:none;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  overflow:visible;
  border:0;
  border-radius:16px;
  color:#fff;
  background:
    radial-gradient(circle at 92% 8%,rgba(67,197,209,.18),transparent 36%),
    linear-gradient(145deg,#09244c 0%,#061a38 72%);
  box-shadow:0 16px 36px rgba(4,22,45,.18);
  animation:day-close-reveal 420ms cubic-bezier(.16,1,.3,1) both;
}
.day-card.has-daily-close .day-close-head{
  align-items:flex-start;
  padding:20px 20px 14px;
  border-bottom:1px solid rgba(218,234,249,.12);
}
.day-card.has-daily-close .day-close-head h2{color:#fff;font-size:18px}
.day-card.has-daily-close .day-close-head p{max-width:36ch;margin-top:4px;color:#adbed2;font-size:11px}
.day-card.has-daily-close .day-close-state{
  min-height:29px;
  padding:5px 9px;
  color:#79520e;
  background:#fff0d7;
  box-shadow:none;
  font-size:10px;
}
.day-card.has-daily-close .day-close-state i{background:#c97808}
.day-card.has-daily-close .day-close-state[data-state="complete"],
.day-card.has-daily-close .day-close-state[data-state="ready"]{color:#08735a;background:#e4f7f0;box-shadow:none}
.day-card.has-daily-close .day-close-state[data-state="incomplete"]{color:#922e43;background:#ffe8ed;box-shadow:none}
.day-card.has-daily-close .day-close-state[data-state="waiting"]{color:#506278;background:#edf1f5;box-shadow:none}
.day-card.has-daily-close .day-close-layout{
  min-height:0;
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:auto minmax(120px,1fr) auto;
  gap:0;
  padding:0 20px 16px;
}
.day-card.has-daily-close .day-close-checklist{
  min-height:0;
  max-height:220px;
  overflow:auto;
  border:0;
  scrollbar-width:thin;
  scrollbar-color:rgba(197,217,238,.28) transparent;
}
.day-card.has-daily-close .day-close-checklist::-webkit-scrollbar{width:5px}
.day-card.has-daily-close .day-close-checklist::-webkit-scrollbar-thumb{border-radius:999px;background:rgba(197,217,238,.28)}
.day-card.has-daily-close .day-close-item{
  min-height:54px;
  grid-template-columns:31px minmax(0,1fr) auto;
  gap:10px;
  padding:8px 2px;
  border-bottom-color:rgba(218,234,249,.11);
  color:#fff;
  transition:background-color 160ms ease,transform 160ms cubic-bezier(.22,.68,0,1.1);
}
.day-card.has-daily-close .day-close-item:not(:disabled){border-radius:10px}
.day-card.has-daily-close .day-close-item:not(:disabled):hover{background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px rgba(218,234,249,.08)}
.day-card.has-daily-close .day-close-item:not(:disabled):active{transform:scale(.985)}
.day-card.has-daily-close .day-close-item:not(:disabled):hover .day-close-item-copy b{color:#fff}
.day-card.has-daily-close .day-close-check{width:29px;height:29px;border-color:rgba(246,184,79,.42);color:#ffd080;background:rgba(117,73,9,.32)}
.day-card.has-daily-close .day-close-item.is-complete .day-close-check{border-color:rgba(111,224,191,.4);color:#9be9d2;background:rgba(9,108,81,.34)}
.day-card.has-daily-close .day-close-item.is-locked .day-close-check{border-color:rgba(183,200,218,.18);color:#91a3b8;background:rgba(255,255,255,.05)}
.day-card.has-daily-close .day-close-item.is-entry:not(.is-complete) .day-close-check{border-color:#43c5d1;color:#fff;background:#167e91;box-shadow:0 0 0 4px rgba(67,197,209,.12)}
.day-card.has-daily-close .day-close-item.is-entry:not(.is-complete) .day-close-item-status{color:#d8f6f8}
.day-card.has-daily-close .day-close-item-copy b{overflow:hidden;color:#f4f8fc;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.day-card.has-daily-close .day-close-item-copy small{overflow:hidden;margin-top:2px;color:#adbed2;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.day-card.has-daily-close .day-close-item-status{color:#fff0d7;font-size:10px}
.day-card.has-daily-close .day-close-item.is-complete .day-close-item-status{color:#e4f7f0}
.day-card.has-daily-close .day-close-item.is-locked .day-close-item-status{color:#8497ad}

/* Cada evidencia se reconoce por su tarea y por su estado, no solo por el texto. */
.day-card.has-daily-close .day-close-item:not(.is-entry){margin:3px 0;padding-inline:8px;border-bottom-color:transparent;border-radius:11px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.day-card.has-daily-close .day-close-item:not(.is-entry):not(.is-complete) .day-close-item-status{padding:4px 7px;border-radius:999px;font-size:8px;letter-spacing:.035em}
.day-card.has-daily-close .day-close-item.type-comparticiones:not(.is-complete){background:rgba(24,119,242,.12);box-shadow:inset 0 0 0 1px rgba(92,164,255,.25)}
.day-card.has-daily-close .day-close-item.type-comparticiones:not(.is-complete) .day-close-check{color:#fff;border-color:rgba(106,171,255,.6);background:#1877f2}
.day-card.has-daily-close .day-close-item.type-comparticiones:not(.is-complete) .day-close-check .brand-icon{width:18px;fill:currentColor;stroke:none}
.day-card.has-daily-close .day-close-item.type-comparticiones:not(.is-complete) .day-close-item-status{color:#dcecff;background:rgba(24,119,242,.3)}
.day-card.has-daily-close .day-close-item.type-rpe:not(.is-complete){background:rgba(239,167,41,.1);box-shadow:inset 0 0 0 1px rgba(242,187,86,.28)}
.day-card.has-daily-close .day-close-item.type-rpe:not(.is-complete) .day-close-check{color:#ffe4a8;border-color:rgba(245,190,81,.58);background:rgba(166,101,5,.48)}
.day-card.has-daily-close .day-close-item.type-rpe:not(.is-complete) .day-close-item-status{color:#ffe5ad;background:rgba(166,101,5,.38)}
.day-card.has-daily-close .day-close-item.type-salida:not(.is-complete){background:rgba(72,181,201,.1);box-shadow:inset 0 0 0 1px rgba(96,202,220,.22)}
.day-card.has-daily-close .day-close-item.type-salida:not(.is-complete) .day-close-check{color:#bdeef4;border-color:rgba(91,203,220,.5);background:rgba(14,108,126,.42)}
.day-card.has-daily-close .day-close-item.type-salida:not(.is-complete) .day-close-item-status{color:#c8f2f5;background:rgba(14,108,126,.36)}
.day-card.has-daily-close .day-close-item.is-complete:not(.is-entry){background:rgba(18,143,107,.11);box-shadow:inset 0 0 0 1px rgba(80,199,164,.22)}
.day-card.has-daily-close .day-close-item.is-complete:not(.is-entry) .day-close-check{color:#b9f2df;border-color:rgba(89,211,176,.48);background:rgba(10,119,87,.5)}
.day-card.has-daily-close .day-close-item.is-complete:not(.is-entry) .day-close-item-status{padding:4px 7px;border-radius:999px;color:#c9f6e8;background:rgba(10,119,87,.38);font-size:8px;letter-spacing:.035em}

.day-close-guide{
  --journey-progress:.5;
  min-height:120px;
  display:grid;
  align-content:center;
  padding:17px 4px 15px;
  text-align:center;
}
.day-close-journey{
  position:relative;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-bottom:13px;
}
.day-close-journey::before,.day-close-journey::after{
  content:"";
  position:absolute;
  top:15px;
  right:16.666%;
  left:16.666%;
  height:2px;
  border-radius:999px;
}
.day-close-journey::before{background:rgba(206,222,238,.18)}
.day-close-journey::after{
  background:#43c5d1;
  transform:scaleX(var(--journey-progress));
  transform-origin:left center;
  transition:transform 500ms cubic-bezier(.16,1,.3,1);
}
.day-close-guide[data-stage="entry"]{--journey-progress:0}
.day-close-guide[data-stage="evidence"]{--journey-progress:.5}
.day-close-guide[data-stage="ready"],.day-close-guide[data-stage="exit"],.day-close-guide[data-stage="complete"]{--journey-progress:1}
.day-close-guide[data-stage="incomplete"]{--journey-progress:.5}
.day-close-journey-step{position:relative;z-index:1;display:grid;justify-items:center;gap:6px;color:#8295aa}
.day-close-journey-step i{
  position:relative;
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border:1px solid rgba(187,206,225,.24);
  border-radius:50%;
  color:#8497ad;
  background:#0b294e;
  box-shadow:0 0 0 5px #082244;
}
.day-close-journey-step svg{width:15px;height:15px}
.day-close-journey-step b{font-size:10px;font-weight:700}
.day-close-guide[data-stage] [data-journey-step="entry"]{color:#e4f7f0}
.day-close-guide[data-stage] [data-journey-step="entry"] i,
.day-close-guide[data-stage="ready"] [data-journey-step="evidence"] i,
.day-close-guide[data-stage="exit"] [data-journey-step="evidence"] i,
.day-close-guide[data-stage="complete"] [data-journey-step="evidence"] i,
.day-close-guide[data-stage="complete"] [data-journey-step="exit"] i{border-color:#24a68a;color:#fff;background:#16866f}
.day-close-guide[data-stage="ready"] [data-journey-step="evidence"],
.day-close-guide[data-stage="exit"] [data-journey-step="evidence"],
.day-close-guide[data-stage="complete"] [data-journey-step="evidence"],
.day-close-guide[data-stage="complete"] [data-journey-step="exit"]{color:#e4f7f0}
.day-close-guide[data-stage="evidence"] [data-journey-step="evidence"]{color:#fff0d7}
.day-close-guide[data-stage="evidence"] [data-journey-step="evidence"] i{border-color:#c97808;color:#fff;background:#a96206}
.day-close-guide[data-stage="ready"] [data-journey-step="exit"],
.day-close-guide[data-stage="exit"] [data-journey-step="exit"]{color:#d8f6f8}
.day-close-guide[data-stage="ready"] [data-journey-step="exit"] i,
.day-close-guide[data-stage="exit"] [data-journey-step="exit"] i{border-color:#43c5d1;color:#fff;background:#167e91}
.day-close-guide[data-stage="incomplete"] [data-journey-step="evidence"]{color:#ffe8ed}
.day-close-guide[data-stage="incomplete"] [data-journey-step="evidence"] i{border-color:#c23b50;color:#fff;background:#9c3043}
.day-close-guide[data-stage="evidence"] [data-journey-step="evidence"] i::after,
.day-close-guide[data-stage="entry"] [data-journey-step="entry"] i::after,
.day-close-guide[data-stage="exit"] [data-journey-step="exit"] i::after{
  content:"";
  position:absolute;
  inset:-7px;
  border:1px solid currentColor;
  border-radius:50%;
  animation:day-close-attention 1.8s cubic-bezier(.16,1,.3,1) infinite;
}
.day-close-guide[data-stage="entry"] [data-journey-step="entry"]{color:#d8f6f8}
.day-close-guide[data-stage="entry"] [data-journey-step="entry"] i{border-color:#43c5d1;color:#fff;background:#167e91}
.day-close-guide>strong{color:#fff;font-size:13px;letter-spacing:-.01em}
.day-close-guide>p{max-width:38ch;margin:4px auto 0;color:#adbed2;font-size:10px;line-height:1.45}
.day-card.has-daily-close .day-close-action{
  display:grid;
  grid-template-columns:minmax(90px,.7fr) minmax(150px,1.3fr);
  align-items:center;
  gap:12px;
  padding:12px 0 0;
  border:0;
  border-top:1px solid rgba(218,234,249,.12);
  border-radius:0;
  background:transparent;
}
.day-card.has-daily-close .day-close-time small{color:#adbed2;font-size:10px}
.day-card.has-daily-close .day-close-time b{margin:1px 0;color:#fff;font-size:22px}
.day-card.has-daily-close .day-close-time span{overflow:hidden;color:#adbed2;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.day-card.has-daily-close .day-close-button{
  min-height:49px;
  margin:0;
  border:1px solid rgba(135,224,197,.17);
  border-radius:12px;
  background:#0b665c;
  box-shadow:0 9px 22px rgba(0,0,0,.14);
}
.day-card.has-daily-close .day-close-button:not(:disabled):hover{background:#0b786a}
.day-card.has-daily-close .day-close-button[data-action="entry"]{border-color:rgba(246,184,79,.28);background:#a96206}
.day-card.has-daily-close .day-close-button[data-action="entry"]:not(:disabled):hover{background:#c97808}
.day-card.has-daily-close .day-close-button:active:not(:disabled){transform:scale(.985)}
.day-card.has-daily-close .day-close-button:disabled{border-color:rgba(194,209,225,.11);color:#91a2b5;background:rgba(255,255,255,.08)}
.day-card.has-daily-close .day-close-button span small{font-size:10px}
.day-card.has-daily-close .day-close-button span b{font-size:12px}
.day-card.has-daily-close .day-close-message{grid-column:1/-1;min-height:0;margin:0;color:#adbed2;font-size:10px}
.day-card.has-daily-close .day-close-message.is-error{color:#ffe8ed}
.day-card.has-daily-close .day-close-message.is-success{color:#e4f7f0}

/* El cierre comparte la misma superficie ambiental clara del horario. */
.portal[data-time-phase] .today-layout .day-card.has-daily-close .day-close{
  color:#173656;
  background:
    radial-gradient(circle at var(--orb-x) var(--orb-y),var(--glass-reflection) 0,transparent 44%),
    linear-gradient(135deg,rgba(255,255,255,.22),transparent 52%),
    var(--ambient-strong);
  -webkit-backdrop-filter:blur(14px) saturate(112%);
  backdrop-filter:blur(14px) saturate(112%);
  box-shadow:inset 0 1px 0 var(--glass-highlight),0 12px 30px rgba(13,38,68,.065);
}
.day-card.has-daily-close .day-close-head{border-bottom-color:rgba(34,68,105,.1)}
.day-card.has-daily-close .day-close-head h2{color:#102f55}
.day-card.has-daily-close .day-close-head p{color:#5d7088}
.day-card.has-daily-close .day-close-checklist{scrollbar-color:rgba(73,104,137,.3) transparent}
.day-card.has-daily-close .day-close-checklist::-webkit-scrollbar-thumb{background:rgba(73,104,137,.3)}
.day-card.has-daily-close .day-close-item{color:#173656;border-bottom-color:rgba(34,68,105,.09)}
.day-card.has-daily-close .day-close-item:not(:disabled):hover{background:rgba(255,255,255,.58);box-shadow:inset 0 0 0 1px rgba(57,99,140,.12)}
.day-card.has-daily-close .day-close-item:not(:disabled):hover .day-close-item-copy b{color:#075abc}
.day-card.has-daily-close .day-close-item-copy b{color:#173656}
.day-card.has-daily-close .day-close-item-copy small{color:#60748a}
.day-card.has-daily-close .day-close-item.is-entry:not(.is-complete) .day-close-item-status{color:#075a70}
.day-card.has-daily-close .day-close-item.is-complete .day-close-check{color:#08735a;border-color:#9fd7c4;background:#e1f5ed}
.day-card.has-daily-close .day-close-item.is-entry.is-complete .day-close-item-status{color:#08735a}
.day-card.has-daily-close .day-close-item.is-locked .day-close-check{color:#748398;border-color:#d1dce6;background:#edf2f6}
.day-card.has-daily-close .day-close-item.type-comparticiones:not(.is-complete){background:rgba(24,119,242,.07);box-shadow:inset 0 0 0 1px rgba(24,119,242,.18)}
.day-card.has-daily-close .day-close-item.type-comparticiones:not(.is-complete) .day-close-item-status{color:#0751a9;background:rgba(24,119,242,.13)}
.day-card.has-daily-close .day-close-item.type-rpe:not(.is-complete){background:rgba(239,167,41,.11);box-shadow:inset 0 0 0 1px rgba(190,123,8,.22)}
.day-card.has-daily-close .day-close-item.type-rpe:not(.is-complete) .day-close-check{color:#8a5708;border-color:#e2b75f;background:#fff0c9}
.day-card.has-daily-close .day-close-item.type-rpe:not(.is-complete) .day-close-item-status{color:#754903;background:#f9e2ad}
.day-card.has-daily-close .day-close-item.type-salida:not(.is-complete){background:rgba(33,153,174,.08);box-shadow:inset 0 0 0 1px rgba(23,140,160,.18)}
.day-card.has-daily-close .day-close-item.type-salida:not(.is-complete) .day-close-check{color:#075f70;border-color:#8acbd5;background:#def4f7}
.day-card.has-daily-close .day-close-item.type-salida:not(.is-complete) .day-close-item-status{color:#075f70;background:#d7f0f3}
.day-card.has-daily-close .day-close-item.is-complete:not(.is-entry){background:rgba(18,143,107,.08);box-shadow:inset 0 0 0 1px rgba(18,143,107,.18)}
.day-card.has-daily-close .day-close-item.is-complete:not(.is-entry) .day-close-check{color:#08735a;border-color:#9fd7c4;background:#e1f5ed}
.day-card.has-daily-close .day-close-item.is-complete:not(.is-entry) .day-close-item-status{color:#08735a;background:#dff3eb}
.day-close-journey::before{background:#d7e0e9}
.day-close-journey-step{color:#718298}
.day-close-journey-step i{border-color:#c7d4e0;color:#718298;background:#edf3f7;box-shadow:0 0 0 5px rgba(239,244,248,.92)}
.day-close-guide[data-stage] [data-journey-step="entry"],
.day-close-guide[data-stage="ready"] [data-journey-step="evidence"],
.day-close-guide[data-stage="exit"] [data-journey-step="evidence"],
.day-close-guide[data-stage="complete"] [data-journey-step="evidence"],
.day-close-guide[data-stage="complete"] [data-journey-step="exit"]{color:#08735a}
.day-close-guide[data-stage="evidence"] [data-journey-step="evidence"]{color:#835306}
.day-close-guide[data-stage="ready"] [data-journey-step="exit"],.day-close-guide[data-stage="exit"] [data-journey-step="exit"]{color:#075f70}
.day-close-guide[data-stage="incomplete"] [data-journey-step="evidence"]{color:#922e43}
.day-close-guide[data-stage="entry"] [data-journey-step="entry"]{color:#075f70}
.day-close-guide>strong{color:#173656}
.day-close-guide>p{color:#60748a}
.day-card.has-daily-close .day-close-action{border-top-color:rgba(34,68,105,.1)}
.day-card.has-daily-close .day-close-time small,.day-card.has-daily-close .day-close-time span{color:#60748a}
.day-card.has-daily-close .day-close-time b{color:#102f55}
.day-card.has-daily-close .day-close-button:disabled{border-color:#d0dce6;color:#718197;background:#e6edf3;box-shadow:none}
.day-card.has-daily-close .day-close-message{color:#60748a}
.day-card.has-daily-close .day-close-message.is-error{color:#a4374c}
.day-card.has-daily-close .day-close-message.is-success{color:#08735a}

/* Rediseño editorial del checklist: una sola cola, no tarjetas apiladas. */
.day-card.has-daily-close .day-close-checklist{
  max-height:244px;
  padding:4px 12px;
  overflow-y:auto;
  border:1px solid rgba(49,86,124,.11);
  border-radius:14px;
  background:rgba(255,255,255,.34);
  scrollbar-color:transparent transparent;
}
.day-card.has-daily-close .day-close-checklist:hover{scrollbar-color:rgba(73,104,137,.3) transparent}
.day-card.has-daily-close .day-close-checklist::-webkit-scrollbar-thumb{background:transparent}
.day-card.has-daily-close .day-close-checklist:hover::-webkit-scrollbar-thumb{background:rgba(73,104,137,.3)}
.day-card.has-daily-close .day-close-item,
.day-card.has-daily-close .day-close-item:not(.is-entry){
  min-height:55px;
  margin:0;
  padding:9px 3px;
  border-bottom:1px solid rgba(49,86,124,.1);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.day-card.has-daily-close .day-close-item:last-child{border-bottom:0}
.day-card.has-daily-close .day-close-item:not(:disabled):hover{
  border-radius:9px;
  background:rgba(255,255,255,.58);
  box-shadow:none;
  transform:translateX(2px);
}
.day-card.has-daily-close .day-close-check{width:32px;height:32px;border-radius:10px;box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}
.day-card.has-daily-close .day-close-item-copy b{font-size:12px;letter-spacing:-.01em}
.day-card.has-daily-close .day-close-item-copy small{margin-top:2px;color:#6b7d91;font-size:9px}
.day-card.has-daily-close .day-close-item-status,
.day-card.has-daily-close .day-close-item:not(.is-entry):not(.is-complete) .day-close-item-status,
.day-card.has-daily-close .day-close-item.is-complete:not(.is-entry) .day-close-item-status{
  min-width:max-content;
  padding:0;
  border-radius:0;
  background:transparent;
  font-size:8px;
  letter-spacing:.045em;
}
.day-card.has-daily-close .day-close-item-status::before{content:"";width:5px;height:5px;flex:0 0 5px;border-radius:50%;background:currentColor;opacity:.78}
.day-card.has-daily-close .day-close-item-status svg{margin-left:1px;transition:transform 160ms cubic-bezier(.16,1,.3,1)}
.day-card.has-daily-close .day-close-item:not(:disabled):hover .day-close-item-status svg{transform:translateX(2px)}
.day-card.has-daily-close .day-close-item.type-comparticiones:not(.is-complete),
.day-card.has-daily-close .day-close-item.type-rpe:not(.is-complete),
.day-card.has-daily-close .day-close-item.type-salida:not(.is-complete),
.day-card.has-daily-close .day-close-item.is-complete:not(.is-entry){background:transparent;box-shadow:none}
.day-card.has-daily-close .day-close-item.type-comparticiones:not(.is-complete) .day-close-item-status{color:#1263bd;background:transparent}
.day-card.has-daily-close .day-close-item.type-rpe:not(.is-complete) .day-close-item-status{color:#855400;background:transparent}
.day-card.has-daily-close .day-close-item.type-salida:not(.is-complete) .day-close-item-status{color:#087084;background:transparent}
.day-card.has-daily-close .day-close-item.is-complete:not(.is-entry) .day-close-item-status{color:#08735a;background:transparent}
.day-card.has-daily-close .day-close-item.type-rpe:not(.is-complete) .day-close-check{color:#8a5708;border-color:#e6bd6b;background:#fff5dc}
.day-card.has-daily-close .day-close-item.type-salida:not(.is-complete) .day-close-check{color:#087084;border-color:#a8d9e0;background:#eaf8fa}
.day-card.has-daily-close .day-close-item.is-complete:not(.is-entry) .day-close-check{color:#08735a;border-color:#a9daca;background:#e9f7f1}

/* Columna personal: perfil compacto, espacio libre y comunicado institucional. */
.portal-rail{
  padding:16px 18px 22px;
}
.portal-rail .rail-schedule,
.portal-rail .rail-insight{
  display:none!important;
}
.portal-rail .rail-profile{
  padding-top:0;
}
.portal-rail .rail-avatar{
  width:68px;
  height:68px;
  margin:8px auto 9px;
  border-width:4px;
  box-shadow:0 9px 20px rgba(23,66,109,.14);
}
.portal-rail .rail-profile h2{
  font-size:14px;
}
.portal-rail .rail-profile p{
  margin:3px 0 7px;
}
.portal-rail .rail-role{
  padding:4px 9px;
}
.portal-rail .rail-calendar{
  margin-top:12px!important;
  padding:14px 14px 11px!important;
}
.portal-rail .rail-calendar-week{
  margin:10px 0 4px!important;
}
.portal-rail .rail-calendar-grid{
  row-gap:4px!important;
}
.portal-rail .rail-cal-day{
  min-height:27px!important;
}
.portal-rail .rail-calendar-key{
  margin-top:8px!important;
  padding-top:8px!important;
}
.rail-announcement{
  position:relative;
  margin:14px 0 0;
  padding:0;
}
.rail-announcement figcaption{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:0 2px 9px;
}
.rail-announcement figcaption span small,
.rail-announcement figcaption span b{
  display:block;
}
.rail-announcement figcaption small{
  color:#075abc;
  font-size:8px;
  font-weight:800;
  letter-spacing:.12em;
}
.rail-announcement figcaption b{
  margin-top:2px;
  color:#0b2a5c;
  font-size:12px;
  letter-spacing:-.015em;
}
.rail-announcement figcaption>i{
  width:7px;
  height:7px;
  flex:0 0 7px;
  border-radius:50%;
  background:#f70b93;
  box-shadow:0 0 0 5px rgba(247,11,147,.08);
}
.rail-announcement-carousel{min-width:0}
.rail-announcement-media{
  position:relative;
  width:100%;
  display:block;
  overflow:hidden;
  padding:0;
  border:1px solid rgba(43,76,113,.12);
  border-radius:16px;
  background:#fff;
  box-shadow:0 12px 28px rgba(19,56,92,.09);
  color:inherit;
  text-align:inherit;
  cursor:zoom-in;
  transition:box-shadow 180ms ease,border-color 180ms ease;
}
.rail-announcement-media:hover{border-color:rgba(7,90,188,.28);box-shadow:0 12px 28px rgba(19,56,92,.11)}
.rail-announcement-media:focus-visible{outline:3px solid #43c5d1;outline-offset:3px}
.rail-announcement-media>img{
  width:100%;
  height:auto;
  display:block;
  object-fit:contain;
  background:#fff;
}
.rail-announcement-controls{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:34px;
  margin-top:8px;
}
.rail-announcement-nav,.announcement-viewer-nav{
  width:30px;
  height:30px;
  display:grid;
  flex:0 0 30px;
  place-items:center;
  padding:0;
  border:1px solid #d8e2ec;
  border-radius:9px;
  color:#164573;
  background:#f5f8fb;
  cursor:pointer;
  transition:background-color 180ms ease,border-color 180ms ease,color 180ms ease;
}
.rail-announcement-nav:hover,.announcement-viewer-nav:hover{border-color:#a9c6e1;color:#075abc;background:#eaf3fc}
.rail-announcement-nav:focus-visible,.announcement-viewer-nav:focus-visible{outline:3px solid #43c5d1;outline-offset:2px}
.rail-announcement-nav svg,.announcement-viewer-nav svg{width:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rail-announcement-dots,.announcement-viewer-dots{display:flex;align-items:center;justify-content:center;gap:5px}
.rail-announcement-dot,.announcement-viewer-dot{
  width:7px;
  height:7px;
  flex:0 0 7px;
  padding:0;
  border:0;
  border-radius:999px;
  background:#c8d5e2;
  cursor:pointer;
  transition:width 180ms ease,background-color 180ms ease;
}
.rail-announcement-dot:hover,.announcement-viewer-dot:hover{background:#7ca8d0}
.rail-announcement-dot[aria-selected="true"],.announcement-viewer-dot[aria-selected="true"]{width:18px;flex-basis:18px;background:#075abc}
.rail-announcement-dot:focus-visible,.announcement-viewer-dot:focus-visible{outline:3px solid #43c5d1;outline-offset:3px}
.rail-announcement-status,.announcement-viewer-status{min-width:28px;color:#607891;font-size:9px;font-weight:700;text-align:center}
.rail-announcement-fallback{
  min-height:270px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:28px 23px;
  color:#0b2a5c;
  text-align:center;
  background:linear-gradient(155deg,#fff 45%,#fff4fa);
}
.rail-announcement-fallback[hidden]{display:none}
.rail-announcement-fallback img{
  width:116px;
  height:auto;
  margin-bottom:19px;
}
.rail-announcement-fallback b{
  font-size:16px;
  line-height:1.2;
}
.rail-announcement-fallback p{
  max-width:23ch;
  margin:8px 0 18px;
  color:#61758d;
  font-size:10px;
  line-height:1.55;
}
.rail-announcement-fallback small{
  color:#8a5875;
  font-size:8px;
}
.rail-announcement-zoom{
  position:absolute;
  right:10px;
  bottom:10px;
  min-height:34px;
  display:flex;
  align-items:center;
  gap:7px;
  padding:0 11px;
  border:1px solid rgba(255,255,255,.32);
  border-radius:10px;
  color:#fff;
  background:rgba(6,26,56,.88);
  box-shadow:0 7px 20px rgba(6,26,56,.24);
  font-size:9px;
  font-weight:800;
  pointer-events:none;
  transition:background-color 180ms ease;
}
.rail-announcement-zoom svg{width:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.rail-announcement-media:hover .rail-announcement-zoom{background:#075abc}
/* Reserva espacio para el acceso flotante al chat sin recortar el comunicado. */
@media(min-width:1281px){
  .portal-rail{display:flex;flex-direction:column;padding-bottom:82px;scroll-padding-bottom:82px}
  .portal-rail>section{flex-shrink:0}
  .portal-rail .rail-announcement{display:flex;flex-direction:column;flex:1 0 200px;min-height:200px}
  .portal-rail .rail-announcement-carousel{display:flex;flex-direction:column;flex:1;min-height:0}
  .rail-announcement figcaption{flex-shrink:0}
  .rail-announcement-media{display:flex;flex-direction:column;flex:1;min-height:0}
  .rail-announcement-media>img{flex:1;min-height:0;height:0;object-fit:contain}
  .rail-announcement-controls{flex-shrink:0}
  .rail-announcement-zoom{position:static;flex-shrink:0;justify-content:center;min-height:36px;border:0;border-top:1px solid #e2e8f0;border-radius:0;background:#f0f5fb;color:#164573;box-shadow:none;font-size:10px}
  .rail-announcement-media:hover .rail-announcement-zoom{background:#e3edf8}
}
body.announcement-viewer-open{overflow:hidden}
.announcement-viewer{
  position:fixed;
  z-index:610;
  inset:0;
  display:grid;
  place-items:center;
  padding:20px;
}
.announcement-viewer[hidden]{display:none}
.announcement-viewer .modal-backdrop{position:absolute;inset:0;background:rgba(3,14,31,.78);backdrop-filter:blur(9px)}
.announcement-viewer-sheet{
  position:relative;
  z-index:1;
  width:min(860px,100%);
  max-height:calc(100dvh - 40px);
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  overflow:hidden;
  border-radius:20px;
  background:#f4f7fa;
  box-shadow:0 34px 100px rgba(0,12,30,.46);
  animation:announcement-viewer-in 240ms cubic-bezier(.16,1,.3,1) both;
}
.announcement-main-sheet{height:calc(100dvh - 40px);grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);width:min(860px,100%,max(460px,calc((100dvh - 122px)*.72 + 120px)))}
.announcement-viewer-sheet>header{
  min-height:70px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:12px 16px 12px 22px;
  border-bottom:1px solid rgba(31,64,98,.11);
  background:#fff;
}
.announcement-viewer-sheet header small,.announcement-viewer-sheet header h2{display:block;margin:0}
.announcement-viewer-sheet header small{color:#ef0b72;font-size:9px;font-weight:800;letter-spacing:.12em}
.announcement-viewer-sheet header h2{margin-top:2px;color:#09244c;font-size:17px;letter-spacing:-.02em}
.announcement-viewer-close{
  width:44px;
  height:44px;
  display:grid;
  flex:0 0 44px;
  place-items:center;
  padding:0;
  border:1px solid #dfe7ee;
  border-radius:12px;
  color:#536a82;
  background:#f5f8fb;
}
.announcement-viewer-close:hover{color:#09244c;background:#eaf1f7}
.announcement-viewer-close:active{transform:scale(.96)}
.announcement-viewer-close:focus-visible{outline:3px solid #43c5d1;outline-offset:2px}
.announcement-viewer-close svg{width:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.announcement-viewer-stage{
  min-height:0;
  overflow:auto;
  padding:18px;
  overscroll-behavior:contain;
  scrollbar-color:#9caec0 #e7edf3;
}
.announcement-viewer-stage img{
  width:min(700px,100%);
  height:auto;
  display:block;
  margin:0 auto;
  border-radius:12px;
  background:#fff;
  box-shadow:0 14px 34px rgba(9,36,76,.12);
}
.announcement-main-sheet>header{min-height:58px;gap:12px;padding:8px 12px 8px 20px}
.announcement-viewer-heading{min-width:0;margin-right:auto}
.announcement-viewer-heading h2{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.announcement-viewer-controls{display:flex;flex:0 0 auto;align-items:center;gap:8px}
#announcement-viewer .announcement-viewer-controls .announcement-viewer-dot{width:8px;height:8px;min-height:0;flex-basis:8px}
.announcement-viewer-controls .announcement-viewer-dot[aria-selected="true"]{width:22px;flex-basis:22px}
.announcement-viewer-zoom{
  width:44px;
  height:44px;
  display:grid;
  flex:0 0 44px;
  place-items:center;
  padding:0;
  border:1px solid #dfe7ee;
  border-radius:12px;
  color:#536a82;
  background:#f5f8fb;
  transition:color .16s ease,background .16s ease,border-color .16s ease;
}
.announcement-viewer-zoom:hover{color:#09244c;background:#eaf1f7}
.announcement-viewer-zoom[aria-pressed="true"]{border-color:#a9c6e1;color:#075abc;background:#eaf3fc}
.announcement-viewer-zoom[aria-pressed="true"] .zoom-in-mark{display:none}
.announcement-viewer-zoom:active{transform:scale(.96)}
.announcement-viewer-zoom:focus-visible{outline:3px solid #43c5d1;outline-offset:2px}
.announcement-viewer-zoom svg{width:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.announcement-main-sheet .announcement-viewer-stage{position:relative;overflow:hidden;padding:0}
.announcement-viewer-scroll{
  height:100%;
  display:grid;
  grid-template:minmax(0,1fr)/minmax(0,1fr);
  place-items:center;
  overflow:hidden;
  padding:12px 60px;
  overscroll-behavior:contain;
  scrollbar-color:#9caec0 #e7edf3;
}
.announcement-main-sheet .announcement-viewer-scroll img{
  width:auto;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  cursor:zoom-in;
}
.announcement-viewer-stage.is-zoomed .announcement-viewer-scroll{overflow:auto;place-items:start center}
.announcement-main-sheet:has(.is-zoomed){width:min(1100px,100%)}
.announcement-main-sheet .announcement-viewer-stage.is-zoomed img{width:max(100%,720px);max-width:none;max-height:none;cursor:zoom-out}
.announcement-viewer-side{
  position:absolute;
  z-index:2;
  top:0;
  bottom:0;
  width:40px;
  height:40px;
  margin:auto 0;
  border-radius:50%;
  background:rgba(255,255,255,.92);
  box-shadow:0 8px 22px rgba(9,36,76,.18);
}
.announcement-viewer-side.is-prev{left:12px}
.announcement-viewer-side.is-next{right:12px}
.announcement-viewer-side[hidden]{display:none}
@keyframes announcement-viewer-in{
  from{opacity:.65;transform:translateY(12px) scale(.985)}
  to{opacity:1;transform:none}
}
@media(max-width:650px){
  .announcement-viewer{padding:0}
  .announcement-viewer-sheet{width:100%;max-height:100dvh;height:100dvh;border-radius:0}
  .announcement-viewer-sheet>header{min-height:64px;padding:9px 10px 9px 16px}
  .announcement-viewer-sheet header h2{font-size:15px}
  .announcement-viewer-stage{padding:10px}
  .announcement-viewer-stage img{border-radius:9px}
  .announcement-main-sheet{height:100dvh}
  .announcement-main-sheet>header{min-height:56px;gap:8px;padding:6px 8px 6px 14px}
  .announcement-viewer-controls .announcement-viewer-status{display:none}
  .announcement-viewer-zoom,.announcement-main-sheet .announcement-viewer-close{width:40px;height:40px;flex-basis:40px}
  .announcement-viewer-scroll{padding:8px}
  #announcement-viewer .announcement-viewer-stage .announcement-viewer-side{width:34px;height:34px;min-height:0}
  .announcement-viewer-side.is-prev{left:6px}
  .announcement-viewer-side.is-next{right:6px}
}
@media(prefers-reduced-motion:reduce){
  .rail-announcement-media,.rail-announcement-zoom,.announcement-viewer-sheet,.rail-announcement-nav,.announcement-viewer-nav,.announcement-viewer-zoom,.rail-announcement-dot,.announcement-viewer-dot{animation:none;transition:none}
}

body.stored-evidence-viewer-open{overflow:hidden}
.stored-evidence-viewer{z-index:620}
.stored-evidence-viewer-sheet{width:min(920px,100%)}
.stored-evidence-viewer-stage{
  min-height:min(620px,calc(100dvh - 110px));
  display:grid;
  place-items:center;
  background:#eaf0f5;
}
.stored-evidence-viewer-stage img{
  width:auto;
  max-width:100%;
  max-height:calc(100dvh - 146px);
  object-fit:contain;
}
.stored-evidence-viewer-stage img[hidden],
.stored-evidence-loading[hidden],
.stored-evidence-error[hidden]{display:none}
.stored-evidence-loading,.stored-evidence-error{
  min-height:260px;
  display:grid;
  place-items:center;
  align-content:center;
  text-align:center;
}
.stored-evidence-loading{gap:12px;color:#5f7187;font-size:11px;font-weight:700}
.stored-evidence-loading i{
  width:34px;
  height:34px;
  border:3px solid #d3dfeb;
  border-top-color:#075abc;
  border-radius:50%;
  animation:boot-spin .75s linear infinite;
}
.stored-evidence-error{gap:6px;padding:28px}
.stored-evidence-error b{color:#922e43;font-size:15px}
.stored-evidence-error p{margin:0;color:#66788d;font-size:11px}
.stored-evidence-error button{
  min-height:40px;
  margin-top:10px;
  padding:0 16px;
  border:0;
  border-radius:10px;
  color:#fff;
  background:#075abc;
  font-size:11px;
  font-weight:800;
}
.stored-evidence-error button:hover{background:#09244c}
.stored-evidence-error button:focus-visible{outline:3px solid #43c5d1;outline-offset:2px}
@media(max-width:650px){
  .stored-evidence-viewer-stage{min-height:0;padding:10px}
  .stored-evidence-viewer-stage img{max-height:calc(100dvh - 84px)}
}
@media(prefers-reduced-motion:reduce){.stored-evidence-loading i{animation:none}}
@media(max-width:1100px) and (min-width:901px){
  .portal-rail{padding-inline:13px}
  .rail-announcement figcaption b{font-size:11px}
}
@media(prefers-reduced-motion:no-preference){
  .rail-announcement-media{animation:rail-announcement-in .42s cubic-bezier(.16,1,.3,1) both}
}
@keyframes rail-announcement-in{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:none}
}

/* Evidencias en modal: no expande la página ni desplaza el dashboard. */
body.daily-evidence-open{overflow:hidden}
.daily-evidence-editor{
  position:fixed;
  z-index:1000;
  inset:0;
  display:grid;
  place-items:center;
  margin:0;
  padding:20px;
  border:0;
  border-radius:0;
  background:rgba(3,16,35,.66);
  box-shadow:none;
  backdrop-filter:blur(10px);
  isolation:isolate;
  overscroll-behavior:contain;
  animation:daily-evidence-backdrop-in 180ms ease-out both;
}
.daily-evidence-sheet{
  position:relative;
  width:min(620px,100%);
  max-height:min(760px,calc(100dvh - 40px));
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  overflow:hidden;
  border:1px solid rgba(211,224,237,.8);
  border-radius:20px;
  background:#fff;
  box-shadow:0 28px 80px rgba(0,18,45,.34);
  animation:daily-evidence-sheet-in 220ms cubic-bezier(.16,1,.3,1) both;
}
.daily-evidence-sheet::before{
  content:"";
  position:absolute;
  z-index:2;
  inset:0 0 auto;
  height:4px;
  background:linear-gradient(90deg,#075abc 0 48%,#43c5d1 48% 76%,#f10075 76%);
}
.daily-evidence-sheet>header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin:0;
  padding:21px 22px 17px;
  border-bottom:1px solid #e8edf2;
  background:linear-gradient(110deg,#fff 58%,#f1f7fd);
}
.daily-evidence-heading{display:flex;align-items:center;gap:12px;min-width:0}
.daily-evidence-heading-icon{width:44px;height:44px;display:grid;flex:0 0 44px;place-items:center;border-radius:13px;color:#075abc;background:#eaf4ff;box-shadow:inset 0 0 0 1px rgba(7,90,188,.06)}
.daily-evidence-sheet[data-requirement="rpe"] .daily-evidence-heading-icon{color:#9a2465;background:#fff0f7}
.daily-evidence-heading-icon svg{width:20px;height:20px}
.daily-evidence-sheet h3{margin:0;color:#102b50;font-size:20px;letter-spacing:-.02em}
.daily-evidence-sheet header p{margin:3px 0 0;color:#607087;font-size:11px;line-height:1.45}
.daily-evidence-sheet>header>button{width:40px;height:40px;flex:0 0 40px;border:0;border-radius:10px;color:#506278;background:#f0f4f7;font-size:20px;line-height:1}
.daily-evidence-sheet>header>button:hover{color:#173a63;background:#e6edf3}
.daily-evidence-sheet>header>button:disabled{opacity:.42;cursor:wait}
.daily-evidence-body{min-height:0;overflow:auto;padding:20px 22px;background:#fbfdff;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c4d0dc transparent}
.daily-evidence-edit-note{
  display:grid;
  grid-template-columns:38px minmax(0,1fr) auto;
  align-items:center;
  gap:11px;
  margin:0 0 16px;
  padding:12px 13px;
  border:1px solid #b9dfd2;
  border-radius:14px;
  color:#164e43;
  background:linear-gradient(105deg,#e9f8f3,#f6fbf9);
  box-shadow:0 6px 16px rgba(20,104,84,.07);
}
.daily-evidence-edit-note[hidden]{display:none}
.daily-evidence-edit-note>span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;color:#fff;background:#14856d;box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 4px 10px rgba(8,115,90,.18)}
.daily-evidence-edit-note svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.daily-evidence-edit-note p{min-width:0;margin:0}.daily-evidence-edit-note b,.daily-evidence-edit-note small{display:block}.daily-evidence-edit-note b{font-size:12px}.daily-evidence-edit-note small{max-width:43ch;margin-top:3px;color:#4b6d65;font-size:11px;line-height:1.45}
.daily-evidence-edit-note em{padding:5px 8px;border-radius:999px;color:#08735a;background:#d8f1e8;font-size:8px;font-style:normal;font-weight:800;white-space:nowrap}
.daily-evidence-sheet .daily-evidence-mode{margin-bottom:14px}
.daily-evidence-sheet .daily-evidence-mode label>span{min-height:62px}
.daily-evidence-sheet .daily-evidence-picker{min-height:80px;border-color:#a9c9ed;background:#f4f9ff;transition:border-color 160ms ease,background-color 160ms ease,transform 160ms cubic-bezier(.16,1,.3,1)}
.daily-evidence-sheet .daily-evidence-picker:hover{border-color:#649bd7;background:#edf6ff}
.daily-evidence-sheet .daily-evidence-picker:active{transform:scale(.992)}
.daily-evidence-sheet .daily-evidence-picker:disabled{border-color:#d2dee9;color:#73859a;background:#f1f5f8;cursor:wait}
.daily-evidence-sheet .daily-evidence-preview{aspect-ratio:1.15;border-radius:12px}
.daily-evidence-sheet .daily-evidence-preview{position:relative;animation:daily-preview-arrive 280ms cubic-bezier(.16,1,.3,1) calc(var(--preview-index)*45ms) both}
.daily-evidence-sheet .daily-evidence-preview em{position:absolute;z-index:2;left:6px;bottom:6px;min-width:22px;height:22px;display:grid;place-items:center;border-radius:7px;color:#fff;background:rgba(6,26,56,.88);font-size:10px;font-style:normal;font-weight:800}
.daily-evidence-sheet .daily-evidence-preview.is-existing em,.daily-evidence-sheet .daily-evidence-preview.is-new em{width:auto;padding:0 7px;font-size:8px;letter-spacing:.035em;text-transform:uppercase}
.daily-evidence-sheet .daily-evidence-preview.is-existing em{background:rgba(8,115,90,.9)}
.daily-evidence-sheet .daily-evidence-preview.is-new em{background:rgba(7,90,188,.92)}
.daily-evidence-sheet .daily-evidence-preview button{width:32px;height:32px;display:grid;place-items:center}
.daily-evidence-sheet .daily-evidence-preview button svg{width:15px;height:15px}
.daily-video{margin-top:14px;padding:15px;border:1px solid #d6e3ef;border-radius:14px;background:#f6faff}
.daily-video[hidden],.daily-video-preview[hidden]{display:none}
.daily-video-copy{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px}
.daily-video-copy>span:nth-child(2){min-width:0}.daily-video-copy b,.daily-video-copy small{display:block}.daily-video-copy b{color:#193a60;font-size:13px}.daily-video-copy small{margin-top:2px;color:#62768d;font-size:11px}
.daily-video-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;color:#075abc;background:#e4f1ff;box-shadow:inset 0 0 0 1px rgba(7,90,188,.08)}
.daily-video-icon svg,.daily-video-picker svg,.daily-video-preview button svg{width:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.daily-video-badge{padding:5px 8px;border-radius:999px;color:#52677e;background:#e9eff5;font-size:8px;font-weight:800;letter-spacing:.08em}
.daily-video-picker{width:100%;min-height:42px;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;border:1px solid #b9cce0;border-radius:10px;color:#0a4f9f;background:#fff;font-size:11px;font-weight:800;transition:background-color 160ms ease,border-color 160ms ease,transform 160ms cubic-bezier(.16,1,.3,1)}
.daily-video-picker:hover{border-color:#75a4d4;background:#eef6ff}.daily-video-picker:active{transform:scale(.99)}
.daily-video-picker:focus-visible,.daily-video-preview button:focus-visible{outline:3px solid #075abc;outline-offset:3px}
.daily-video-preview{min-width:0;display:grid;grid-template-columns:76px minmax(0,1fr) 36px;align-items:center;gap:11px;margin-top:12px;padding:8px;border-radius:11px;background:#e8f4ee;animation:daily-preview-arrive 280ms cubic-bezier(.16,1,.3,1) both}
.daily-video-preview video{width:76px;height:52px;display:block;object-fit:cover;border-radius:8px;background:#0b2548}
.daily-video-preview>span{min-width:0}.daily-video-preview b,.daily-video-preview small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.daily-video-preview b{color:#184a3d;font-size:11px}.daily-video-preview small{margin-top:3px;color:#527267;font-size:10px;font-variant-numeric:tabular-nums}
.daily-video-preview button{width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:9px;color:#47647a;background:rgba(255,255,255,.78)}
.daily-video-message{min-height:0;margin:8px 2px 0;color:#50687f;font-size:10px}.daily-video-message:empty{display:none}.daily-video-message.is-ready{color:#08735a}.daily-video-message.is-error{color:#aa354c}
.admin-review-media{position:relative;min-height:210px;display:grid;place-items:center;overflow:hidden;border-radius:12px;color:#fff;background:#071a34;box-shadow:0 9px 23px rgba(7,26,52,.13)}
.admin-review-media img,.admin-review-media video{width:100%;height:100%;display:block;object-fit:contain}.admin-review-media video{max-height:420px;background:#061629}
.admin-review-media>span{position:absolute;left:9px;bottom:9px;padding:5px 7px;border-radius:7px;background:rgba(6,26,56,.88);font-size:9px;font-weight:800}.admin-review-media>a{position:absolute;right:9px;bottom:9px;width:32px;height:32px;display:grid;place-items:center;border-radius:8px;color:#fff;background:rgba(6,26,56,.88)}.admin-review-media>a svg{width:17px;height:17px}
.admin-review-media>a:focus-visible{outline:3px solid #075abc;outline-offset:3px}
.daily-evidence-sheet .daily-evidence-detail textarea{min-height:86px;resize:none}
.daily-evidence-sheet>footer{
  display:flex;
  justify-content:flex-end;
  gap:9px;
  margin:0;
  padding:14px 22px 18px;
  border-top:1px solid #e8edf2;
  background:#fff;
}
.daily-evidence-sheet .daily-evidence-secondary,.daily-evidence-sheet .daily-evidence-submit{min-width:116px;min-height:46px;border-radius:10px}
.daily-evidence-sheet .daily-evidence-secondary:hover{color:#294665;background:#f5f8fb}
.daily-evidence-sheet .daily-evidence-submit{background:#0a3972;box-shadow:0 8px 18px rgba(7,61,121,.17)}
.daily-evidence-sheet .daily-evidence-submit{display:flex;align-items:center;justify-content:center;gap:10px}
.daily-evidence-sheet .daily-evidence-submit svg{width:17px;height:17px}
.daily-evidence-sheet .daily-evidence-submit:hover:not(:disabled){background:#075abc}
.daily-evidence-sheet .daily-evidence-submit:active:not(:disabled){transform:scale(.985)}
.daily-evidence-message.is-ready{color:#08735a}
.daily-evidence-message.is-info{color:#506278}

/* Aviso de impedimento: una salida secundaria visible, sin competir con la entrega. */
.daily-issue{margin-top:16px;overflow:hidden;border:1px solid #f0d5a6;border-radius:14px;background:#fffaf0}
.daily-issue>button{width:100%;min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 14px;border:0;color:#714b0a;background:transparent;text-align:left}
.daily-issue>button:hover{background:#fff4df}
.daily-issue>button>span{min-width:0}
.daily-issue>button b,.daily-issue>button small{display:block}
.daily-issue>button b{font-size:12px}
.daily-issue>button small{margin-top:3px;color:#7e6843;font-size:10px;line-height:1.45}
.daily-issue>button svg{width:23px;height:23px;flex:0 0 23px;fill:none;stroke:#bd7610;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.daily-issue>div[hidden]{display:none}
.daily-issue>div{display:grid;gap:10px;padding:14px;border-top:1px solid #f0d5a6;background:#fff;animation:daily-issue-reveal 180ms cubic-bezier(.16,1,.3,1) both}
.daily-issue label{display:grid;gap:6px;color:#455970;font-size:11px;font-weight:800}
.daily-issue textarea{width:100%;min-height:84px;resize:none;padding:10px 11px;border:1px solid #d3dce5;border-radius:10px;outline:0;color:#2d4058;background:#fff;font:500 12px/1.5 Poppins,Inter,sans-serif}
.daily-issue textarea:focus-visible{outline:3px solid #d99122;outline-offset:2px;border-color:#d99122}
.daily-issue p{min-height:17px;margin:0;color:#607087;font-size:10px;line-height:1.45}
.daily-issue p.is-error{color:#a4374c}.daily-issue p.is-success{color:#08735a}
.daily-issue>div>button{justify-self:end;min-height:42px;padding:0 15px;border:0;border-radius:9px;color:#fff;background:#9b6512;font-size:11px;font-weight:800}
.daily-issue>div>button:hover:not(:disabled){background:#7f5008}
.daily-issue>div>button:disabled{opacity:.58;cursor:wait}
.day-close-item.has-issue .day-close-check{color:#8a5708;border-color:#edc675;background:#fff2d9}
.day-close-item.has-issue .day-close-item-status{color:#8a5708}
.day-card.has-daily-close .day-close-item.has-issue .day-close-check{color:#ffd78d;border-color:rgba(247,180,59,.45);background:rgba(156,94,8,.3)}
.day-card.has-daily-close .day-close-item.has-issue .day-close-item-status{color:#ffd78d}
.admin-control-state.info{color:#075a70;background:#dff6f7}
.admin-control-row[data-tone="info"]:before{background:#178ca0}
.admin-control-row .has-issue b{color:#075a70}
.team-evidence-state.reported{color:#87580a!important}
.team-evidence-state.reported:before{background:#d99122;box-shadow:0 0 0 3px #fff1d9}
.team-issue-detail{max-width:30ch!important;margin-top:3px!important;color:#6c5b3e!important;white-space:normal!important;line-height:1.35!important}

/* Progreso real de carga: cada estado corresponde a una operación del servidor. */
.daily-evidence-sheet[data-phase="upload"],.daily-evidence-sheet[data-phase="success"]{grid-template-rows:auto minmax(0,1fr)}
.daily-evidence-sheet[data-phase="upload"] .daily-evidence-body,.daily-evidence-sheet[data-phase="upload"]>footer,
.daily-evidence-sheet[data-phase="success"] .daily-evidence-body,.daily-evidence-sheet[data-phase="success"]>footer{display:none}
.daily-evidence-process[hidden]{display:none}
.daily-evidence-process{
  min-height:430px;
  display:grid;
  align-content:center;
  justify-items:center;
  overflow:auto;
  padding:36px 44px 40px;
  color:#102b50;
  background:
    radial-gradient(circle at 50% 19%,rgba(67,197,209,.13),transparent 31%),
    #fbfdff;
}
.daily-upload-route{width:min(350px,92%);display:grid;grid-template-columns:58px 1fr 58px;align-items:center;margin-bottom:25px}
.daily-upload-file,.daily-upload-vault{position:relative;z-index:2;width:58px;height:58px;display:grid;place-items:center;border-radius:16px}
.daily-upload-file{color:#075abc;background:#e8f3ff;box-shadow:0 10px 22px rgba(7,90,188,.12)}
.daily-upload-vault{color:#fff;background:#09244c;box-shadow:0 11px 24px rgba(9,36,76,.18);transition:background-color 260ms ease,transform 360ms cubic-bezier(.16,1,.3,1)}
.daily-upload-file svg,.daily-upload-vault svg{width:25px;height:25px}
.daily-upload-track{position:relative;height:3px;overflow:visible;background:#d6e2ee}
.daily-upload-track i{position:absolute;inset:0;background:linear-gradient(90deg,#075abc,#43c5d1);transform:scaleX(.15);transform-origin:left;animation:daily-route-fill 1.8s cubic-bezier(.16,1,.3,1) infinite}
.daily-upload-track b{position:absolute;top:50%;left:12%;width:12px;height:12px;border:3px solid #fff;border-radius:50%;background:#43c5d1;box-shadow:0 3px 9px rgba(9,36,76,.2);animation:daily-route-packet 1.8s cubic-bezier(.65,0,.35,1) infinite}
.daily-upload-check{position:absolute;opacity:0;stroke-dasharray:24;stroke-dashoffset:24}
.daily-upload-heading{text-align:center}
.daily-upload-heading h3{margin:0;color:#102b50;font-size:22px;letter-spacing:-.025em}
.daily-upload-heading p{max-width:46ch;margin:7px auto 0;color:#607087;font-size:12px;line-height:1.55}
.daily-upload-progress{width:min(390px,100%);height:6px;margin:23px 0 25px;overflow:hidden;border-radius:999px;background:#dfE8f1}
.daily-upload-progress i{display:block;width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#075abc,#43c5d1);transform:scaleX(0);transform-origin:left;transition:transform 380ms cubic-bezier(.16,1,.3,1)}
.daily-upload-steps{width:min(390px,100%);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0;padding:0;list-style:none}
.daily-upload-steps li{position:relative;display:grid;justify-items:center;gap:8px;padding:0 8px;text-align:center;color:#8795a7}
.daily-upload-steps li:not(:last-child)::after{content:"";position:absolute;top:13px;left:calc(50% + 20px);width:calc(100% - 40px);height:1px;background:#dce5ee}
.daily-upload-steps li>i{position:relative;z-index:1;width:27px;height:27px;display:grid;place-items:center;border:1px solid #cdd9e4;border-radius:50%;color:transparent;background:#f4f7fa}
.daily-upload-steps li>i svg{width:14px;height:14px}
.daily-upload-steps li span b,.daily-upload-steps li span small{display:block}
.daily-upload-steps li span b{font-size:10px}
.daily-upload-steps li span small{margin-top:3px;font-size:9px;font-weight:500;line-height:1.35}
.daily-upload-steps li[data-state="active"]{color:#075abc}
.daily-upload-steps li[data-state="active"]>i{border-color:#43c5d1;background:#dff7f8;box-shadow:0 0 0 5px rgba(67,197,209,.12)}
.daily-upload-steps li[data-state="active"]>i::after{content:"";width:6px;height:6px;border-radius:50%;background:#167e91;animation:daily-step-pulse 1.1s ease-in-out infinite}
.daily-upload-steps li[data-state="done"]{color:#08735a}
.daily-upload-steps li[data-state="done"]>i{border-color:#24a68a;color:#fff;background:#24a68a}
.daily-evidence-sheet[data-phase="success"] .daily-upload-track i{animation:none;transform:scaleX(1)}
.daily-evidence-sheet[data-phase="success"] .daily-upload-track b{display:none}
.daily-evidence-sheet[data-phase="success"] .daily-upload-vault{background:#16866f;transform:scale(1.08)}
.daily-evidence-sheet[data-phase="success"] .daily-upload-shield{opacity:0;transform:scale(.7)}
.daily-evidence-sheet[data-phase="success"] .daily-upload-check{opacity:1;animation:daily-check-draw 440ms 80ms cubic-bezier(.16,1,.3,1) forwards}
.daily-evidence-sheet[data-phase="success"] .daily-upload-heading h3{color:#08735a}

@keyframes daily-evidence-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes daily-evidence-sheet-in{from{opacity:.72;filter:blur(3px);transform:translateY(12px) scale(.985)}to{opacity:1;filter:none;transform:none}}
@keyframes daily-preview-arrive{from{opacity:.45;filter:blur(2px);transform:translateY(7px) scale(.97)}to{opacity:1;filter:none;transform:none}}
@keyframes daily-route-fill{0%{transform:scaleX(.08);opacity:.45}55%,100%{transform:scaleX(1);opacity:1}}
@keyframes daily-route-packet{0%{left:8%;transform:translate(-50%,-50%) scale(.78);opacity:0}15%{opacity:1}80%{opacity:1}100%{left:92%;transform:translate(-50%,-50%) scale(1);opacity:0}}
@keyframes daily-step-pulse{0%,100%{opacity:.45;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
@keyframes daily-check-draw{to{stroke-dashoffset:0}}
@keyframes daily-issue-reveal{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
@keyframes day-close-reveal{from{opacity:.72;transform:translateX(12px);box-shadow:0 8px 18px rgba(4,22,45,.08)}to{opacity:1;transform:none;box-shadow:0 16px 36px rgba(4,22,45,.18)}}
@keyframes day-close-attention{0%,100%{opacity:.22;transform:scale(.82)}50%{opacity:.7;transform:scale(1.08)}}

@media(max-width:900px){
  .today-layout .day-card-grid .day-action{min-height:245px;padding:26px 22px 20px}
  .today-layout .day-card.has-daily-close{grid-template-areas:"head" "schedule" "close" "progress" "month"}
  .today-layout .day-card.has-daily-close .day-close{min-height:440px;max-height:none}
}

@media(max-width:600px){
  .daily-evidence-editor{place-items:end center;padding:0;background:rgba(3,16,35,.58);backdrop-filter:blur(6px)}
  .daily-evidence-sheet{width:100%;max-height:92dvh;border-width:1px 0 0;border-radius:20px 20px 0 0}
  .daily-evidence-sheet>header{padding:18px 17px 14px}
  .daily-evidence-body{padding:16px 17px}
  .daily-evidence-sheet>footer{padding:12px 17px max(14px,env(safe-area-inset-bottom))}
  .daily-evidence-sheet .daily-evidence-mode{grid-template-columns:1fr}
  .daily-evidence-sheet .daily-evidence-previews{grid-template-columns:repeat(3,minmax(0,1fr))}
  .daily-evidence-sheet .daily-evidence-secondary,.daily-evidence-sheet .daily-evidence-submit{min-width:0;flex:1}
  .daily-evidence-process{min-height:410px;padding:28px 20px max(26px,env(safe-area-inset-bottom))}
  .daily-upload-route{width:min(310px,90%)}
  .daily-upload-heading h3{font-size:20px}
  .daily-upload-steps li{padding-inline:3px}
  .daily-upload-steps li span small{font-size:8px}
}

@media(max-width:440px){
  .day-card.has-daily-close .day-close-head{display:flex;padding:18px 16px 13px}
  .day-card.has-daily-close .day-close-head p{max-width:25ch}
  .day-card.has-daily-close .day-close-state{justify-self:auto}
  .day-card.has-daily-close .day-close-layout{padding:0 16px 14px}
  .day-card.has-daily-close .day-close-item{grid-template-columns:29px minmax(0,1fr) auto}
  .day-card.has-daily-close .day-close-item-status{grid-column:auto;justify-self:auto;margin-top:0}
  .day-card.has-daily-close .day-close-action{grid-template-columns:92px minmax(0,1fr)}
  .daily-evidence-sheet .daily-evidence-previews{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(prefers-reduced-motion:reduce){
  .daily-evidence-editor,.daily-evidence-sheet{animation:none}
  .daily-upload-track i,.daily-upload-track b,.daily-upload-steps li>i::after,.daily-evidence-sheet[data-phase="success"] .daily-upload-check,.daily-evidence-sheet .daily-evidence-preview{animation:none}
  .daily-evidence-sheet[data-phase="success"] .daily-upload-check{stroke-dashoffset:0}
  .day-card.has-daily-close .day-close,.day-close-guide [data-journey-step] i::after{animation:none}
  .day-card.has-daily-close .day-close-item,.day-card.has-daily-close .day-close-button,.day-close-journey::after{transition:none}
  .daily-issue>div{animation:none}
}

/* Confirmación de salida con el mismo lenguaje de los modales de evidencia. */
.daily-exit-modal{z-index:425}
.daily-exit-sheet{
  position:relative;
  z-index:1;
  width:min(440px,100%);
  padding:26px;
  border-radius:20px;
  background:#fff;
  box-shadow:0 28px 80px rgba(0,18,45,.34);
  animation:daily-evidence-sheet-in 220ms cubic-bezier(.16,1,.3,1) both;
}
.daily-exit-icon{width:48px;height:48px;display:grid;place-items:center;margin-bottom:17px;border-radius:14px;color:#08735a;background:#e4f7f0}
.daily-exit-icon svg{width:23px;height:23px}
.daily-exit-sheet h2{margin:0;padding-right:45px;color:#102b50;font-size:20px;letter-spacing:-.025em}
.daily-exit-sheet>p{margin:6px 0 0;color:#607087;font-size:12px;line-height:1.55}
.daily-exit-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:20px;overflow:hidden;border:1px solid #e3e8ee;border-radius:12px;background:#e3e8ee}
.daily-exit-summary span{padding:13px 14px;background:#f8fafc}
.daily-exit-summary small,.daily-exit-summary b{display:block}
.daily-exit-summary small{color:#738095;font-size:10px;font-weight:800;letter-spacing:.08em}
.daily-exit-summary b{margin-top:4px;color:#15243a;font-size:13px}
.daily-exit-message{min-height:19px;margin:12px 0 0!important;color:#607087!important;font-size:11px!important}
.daily-exit-message.is-error{color:#922e43!important}
.daily-exit-sheet footer{display:flex;justify-content:flex-end;gap:9px;margin-top:5px;padding-top:17px;border-top:1px solid #e8edf2}
.daily-exit-sheet footer>button{min-height:46px;padding:0 16px;border-radius:10px;font-size:12px;font-weight:800}
.daily-exit-confirm{min-width:190px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;color:#fff;background:#09244c;box-shadow:0 8px 18px rgba(9,36,76,.18)}
.daily-exit-confirm:hover:not(:disabled){background:#075abc}
.daily-exit-confirm:active:not(:disabled){transform:scale(.985)}
.daily-exit-confirm:disabled{color:#738095;background:#e3e8ee;box-shadow:none;cursor:wait}
.daily-exit-confirm svg{width:18px;height:18px}
.daily-exit-sheet button:focus-visible{outline:3px solid #075abc;outline-offset:3px}

/* Iconos del checklist con acabado de app iOS y semántica KJA. */
.day-card.has-daily-close .day-close-check{
  position:relative;
  isolation:isolate;
  width:34px;
  height:34px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.72);
  border-radius:10px;
  color:#fff;
  background:linear-gradient(155deg,#49cba8 0%,#159574 52%,#08735a 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.58),
    inset 0 -1px 0 rgba(0,64,48,.16),
    0 4px 10px rgba(8,115,90,.18);
}
.day-card.has-daily-close .day-close-check::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background:radial-gradient(circle at 25% 8%,rgba(255,255,255,.5),transparent 42%);
  pointer-events:none;
}
.day-card.has-daily-close .day-close-check svg{
  position:relative;
  z-index:1;
  width:17px;
  height:17px;
  color:#fff;
  stroke-width:2;
  filter:drop-shadow(0 1px 1px rgba(3,25,47,.16));
}
.day-card.has-daily-close .day-close-item.type-comparticiones:not(.is-complete) .day-close-check{
  border-color:rgba(255,255,255,.74);
  color:#fff;
  background:linear-gradient(155deg,#54a4ff 0%,#1877f2 48%,#0759c7 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.52),inset 0 -1px 0 rgba(0,53,139,.2),0 4px 11px rgba(24,119,242,.24);
}
.day-card.has-daily-close .day-close-item.type-comparticiones:not(.is-complete) .day-close-check .brand-icon{
  width:19px;
  height:19px;
  fill:#fff;
  stroke:none;
}
.day-card.has-daily-close .day-close-item.type-rpe:not(.is-complete) .day-close-check,
.day-card.has-daily-close .day-close-item.has-issue .day-close-check{
  border-color:rgba(255,255,255,.72);
  color:#fff;
  background:linear-gradient(155deg,#ffc85c 0%,#e59a19 52%,#b66d06 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.56),inset 0 -1px 0 rgba(109,61,0,.18),0 4px 11px rgba(182,109,6,.2);
}
.day-card.has-daily-close .day-close-item.type-salida:not(.is-complete) .day-close-check{
  border-color:rgba(255,255,255,.72);
  color:#fff;
  background:linear-gradient(155deg,#62d7e4 0%,#1ba5b9 52%,#087084 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.56),inset 0 -1px 0 rgba(0,77,91,.18),0 4px 11px rgba(8,112,132,.2);
}
.day-card.has-daily-close .day-close-item.is-complete .day-close-check,
.day-card.has-daily-close .day-close-item.is-entry.is-complete .day-close-check{
  border-color:rgba(255,255,255,.72);
  color:#fff;
  background:linear-gradient(155deg,#55d4b0 0%,#24a68a 50%,#08735a 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.58),inset 0 -1px 0 rgba(0,77,58,.16),0 4px 11px rgba(8,115,90,.2);
}
.day-card.has-daily-close .day-close-item.is-complete{
  border-radius:10px;
  background:linear-gradient(90deg,rgba(36,166,138,.13),rgba(36,166,138,.045));
  box-shadow:inset 0 0 0 1px rgba(36,166,138,.14);
}
.day-card.has-daily-close .day-close-item.is-complete .day-close-item-copy b{
  color:#0b604e;
}
.day-card.has-daily-close .day-close-item.is-editable{cursor:pointer}
.day-card.has-daily-close .day-close-item.is-editable .day-close-item-status{color:#075f50}
.day-card.has-daily-close .day-close-item.is-editable .day-close-item-status .edit-icon{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.day-card.has-daily-close .day-close-item.is-editable:hover{background:linear-gradient(90deg,rgba(36,166,138,.18),rgba(36,166,138,.07));box-shadow:inset 0 0 0 1px rgba(18,143,107,.24),0 5px 14px rgba(18,113,88,.07)}
.day-card.has-daily-close .day-close-item.is-editable:focus-visible{outline-color:#08735a}

@media(max-width:600px){
  .daily-evidence-edit-note{grid-template-columns:36px minmax(0,1fr);padding:11px 12px}.daily-evidence-edit-note>span{width:36px;height:36px}.daily-evidence-edit-note em{grid-column:2;justify-self:start;margin-top:-2px}
  .daily-exit-modal{align-items:end;padding:0}
  .daily-exit-sheet{width:100%;padding:23px 18px max(18px,env(safe-area-inset-bottom));border-radius:20px 20px 0 0}
  .daily-exit-sheet footer>button{flex:1}
  .daily-exit-confirm{min-width:0}
}

@media(prefers-reduced-motion:reduce){.daily-exit-sheet{animation:none}}

/* Inicio móvil: el cierre diario es una tarea principal, no un detalle oculto. */
@media(max-width:900px){
  .mobile-close-panel{margin-top:18px;overflow:hidden;border:1px solid #d8e4ef;border-radius:16px;background:#f8fbfe}
  .mobile-close-panel[hidden]{display:none}
  .mcv2.is-load-error{display:block;margin:18px 0 30px;padding:15px;border:1px solid #f0d4da;border-radius:16px;color:#102f55;background:#fff8f9}
  .mcv2.is-load-error>:not(.mcv2-load-error){display:none!important}
  .mcv2-load-error{display:flex;align-items:center;justify-content:space-between;gap:12px}
  .mcv2-load-error span,.mcv2-load-error b,.mcv2-load-error small{display:block}
  .mcv2-load-error b{font-size:12px;line-height:1.35}
  .mcv2-load-error small{margin-top:4px;color:#6e5a60;font-size:10px;line-height:1.45}
  .mcv2-load-error button{flex:0 0 auto}
  .mobile-close-panel:focus-visible{outline:3px solid #075abc;outline-offset:3px}
  .mobile-close-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:17px 16px 14px;border-bottom:1px solid #dfe8f1}
  .mobile-close-panel h2,.mobile-close-panel p{margin:0}.mobile-close-panel h2{color:#102f55;font-size:16px;line-height:1.3;letter-spacing:-.02em}.mobile-close-panel header p{max-width:38ch;margin-top:4px;color:#60748a;font-size:11px;line-height:1.45}
  .mobile-close-count{flex:0 0 auto;padding:6px 9px;border-radius:999px;color:#805207;background:#ffedc8;font-size:9px;font-weight:800;white-space:nowrap}
  .mobile-close-panel[data-state="ready"] .mobile-close-count,.mobile-close-panel[data-state="complete"] .mobile-close-count{color:#08735a;background:#dff4eb}
  .mobile-close-panel[data-state="incomplete"] .mobile-close-count{color:#922e43;background:#ffe6eb}
  .mobile-close-list{padding:4px 14px}
  .mobile-close-panel .day-close-item{min-height:62px;grid-template-columns:36px minmax(0,1fr) auto;gap:10px;padding:9px 2px;border-bottom:1px solid #e0e8f0;background:transparent}
  .mobile-close-panel .day-close-item:last-child{border-bottom:0}.mobile-close-panel .day-close-item:not(:disabled){touch-action:manipulation}
  .mobile-close-panel .day-close-check{width:34px;height:34px;border-radius:10px;box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 3px 8px rgba(14,54,91,.08)}
  .mobile-close-panel .day-close-item-copy{min-width:0}.mobile-close-panel .day-close-item-copy b{overflow:hidden;color:#173656;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.mobile-close-panel .day-close-item-copy small{display:-webkit-box;margin-top:2px;overflow:hidden;color:#667b91;font-size:10px;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}
  .mobile-close-panel .day-close-item-status{min-width:max-content;gap:5px;color:#855400;font-size:8px;letter-spacing:.04em}.mobile-close-panel .day-close-item-status:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.mobile-close-panel .day-close-item-status svg{width:13px}
  .mobile-close-panel .day-close-item.is-complete{margin-inline:-5px;padding-inline:7px;border-bottom-color:transparent;border-radius:10px;background:rgba(36,166,138,.09)}.mobile-close-panel .day-close-item.is-complete .day-close-item-status{color:#08735a}.mobile-close-panel .day-close-item.is-locked .day-close-item-status{color:#718197}
  .mobile-close-panel .day-close-item.type-comparticiones:not(.is-complete) .day-close-check{color:#fff;border-color:#80b7f8;background:#1877f2}.mobile-close-panel .day-close-item.type-comparticiones:not(.is-complete) .brand-icon{width:19px;fill:currentColor;stroke:none}
  .mobile-close-panel .day-close-item.type-rpe:not(.is-complete) .day-close-check{color:#865100;border-color:#edc36e;background:#fff0c9}.mobile-close-panel .day-close-item.type-salida:not(.is-complete) .day-close-check{color:#087084;border-color:#a8d9e0;background:#e6f6f8}
  .mobile-close-panel>footer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 16px;border-top:1px solid #dfe8f1;background:#fff}.mobile-close-panel>footer span b,.mobile-close-panel>footer span small{display:block}.mobile-close-panel>footer span b{color:#173656;font-size:11px}.mobile-close-panel>footer span small{margin-top:2px;color:#6b7d91;font-size:9px;line-height:1.4}
  #mobile-close-action{min-height:44px;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 13px;border:0;border-radius:11px;color:#fff;background:#0a4f9f;font-size:10px;font-weight:800;touch-action:manipulation}#mobile-close-action svg{width:16px;height:16px}#mobile-close-action:disabled{color:#718197;background:#e4ebf2}#mobile-close-action[hidden]{display:none}
}

/* El toque conserva la geometría: feedback por color, sin zoom ni encogimiento. */
@media(max-width:900px), (hover:none){
  button,a,[role="button"]{touch-action:manipulation}
  button:active:not(:disabled),a:active,[role="button"]:active{transform:none!important}
  .mobile-profile-photo-edit:active svg,.mobile-quick-grid button:active:not(:disabled) .card-deco-icon,.mobile-quick-grid button:active:not(:disabled) .card-deco-3d,.admin-review-gallery>a:hover img{transform:none!important}
  .mobile-quick-grid button:active:not(:disabled){background:#f3f7fb;box-shadow:0 5px 16px rgba(9,36,76,.07)}
}

@media(max-width:420px){
  .mobile-close-panel>header{display:grid}.mobile-close-count{justify-self:start}
  .mobile-close-panel .day-close-item{grid-template-columns:34px minmax(0,1fr)}.mobile-close-panel .day-close-item-status{grid-column:2;justify-self:start}
  .mobile-close-panel>footer{grid-template-columns:1fr}#mobile-close-action{width:100%}
}

/* Portada móvil compacta: identidad legible, pendientes primero y accesos sin vacíos. */
@media(max-width:900px){
  .portal[data-view="inicio"] .workspace,
  .portal[data-view="inicio"] #view-inicio,
  .mobile-portal-home{
    min-height:0;
  }

  .portal[data-view="inicio"] .workspace{
    position:relative;
    z-index:1;
  }

  .mobile-portal-home{
    display:block;
    color:#102f55;
    background:#e8f2f8;
  }

  .mobile-portal-hero{
    min-height:0;
    padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) 66px max(18px,env(safe-area-inset-left));
    background:
      radial-gradient(circle at 86% 82%,rgba(71,174,205,.18),transparent 30%),
      linear-gradient(145deg,#f4f9fd 0%,#d9ebf4 100%);
  }

  .mobile-portal-hero:after{
    right:-108px;
    bottom:-96px;
    border-color:rgba(12,68,112,.09);
    box-shadow:0 0 0 38px rgba(12,68,112,.025),0 0 0 76px rgba(12,68,112,.018);
  }

  .mobile-portal-brand>span:nth-child(2) b{color:#102f55}
  .mobile-portal-brand>span:nth-child(2) small{color:#526f89;font-size:12px}
  .mobile-portal-brand button{
    border-color:rgba(16,47,85,.12);
    color:#164a7d;
    background:rgba(255,255,255,.7);
    box-shadow:0 5px 16px rgba(16,47,85,.07);
  }

  .mobile-portal-person{margin-top:26px}
  .mobile-portal-person h1{color:#102f55;font-size:clamp(22px,6.2vw,27px)}
  .mobile-portal-person p{margin:6px 0 7px;color:#526f89;font-size:13px}
  .mobile-portal-person>div>span{color:#284f73}
  .mobile-portal-person>div>span b,.mobile-portal-person>div>span small{font-size:12px}
  .mobile-portal-person>div>span i{background:#159c91}
  .mobile-profile-avatar{box-shadow:0 10px 28px rgba(16,47,85,.18)}

  .mobile-portal-sheet{
    position:relative;
    z-index:2;
    min-height:0;
    display:flex;
    flex-direction:column;
    margin-top:-38px;
    padding:22px max(16px,env(safe-area-inset-right)) max(28px,calc(env(safe-area-inset-bottom) + 18px)) max(16px,env(safe-area-inset-left));
    border-radius:24px 24px 0 0;
    background:#edf4f9;
    box-shadow:0 -10px 28px rgba(16,47,85,.1);
  }

  .mobile-today-summary{order:1;margin-top:0}
  .mobile-primary-attendance{order:2;width:100%;margin:12px 0 20px}
  .mobile-primary-attendance[hidden]{display:none!important}
  .mobile-primary-attendance.daily-close-pending,
  .mobile-primary-attendance.daily-close-confirmed-hidden{display:none!important}
  .mobile-primary-attendance #mobile-action-mark{
    display:grid;grid-template-columns:46px minmax(0,1fr) 20px;align-items:center;gap:12px;
    width:100%;min-height:76px;padding:12px 16px;border:1px solid #0c5d9f;border-radius:16px;
    color:#fff;background:linear-gradient(120deg,#07538e,#0876b4);box-shadow:0 9px 22px rgba(7,83,142,.2);
    text-align:left;touch-action:manipulation;transition:background .18s,box-shadow .18s,transform .18s
  }
  .mobile-primary-attendance #mobile-action-mark .mobile-access-figure{width:42px;height:42px;object-fit:contain;filter:brightness(0) invert(1)}
  .mobile-primary-attendance #mobile-action-mark>span{display:block;min-width:0}
  .mobile-primary-attendance #mobile-action-mark b,.mobile-primary-attendance #mobile-action-mark small{display:block;position:static;white-space:normal}
  .mobile-primary-attendance #mobile-action-mark b{font-size:15px;line-height:1.3;font-weight:800}
  .mobile-primary-attendance #mobile-action-mark small{margin-top:3px;color:rgba(255,255,255,.84);font-size:11px;line-height:1.35;font-weight:600}
  .mobile-primary-attendance #mobile-action-mark .mobile-action-arrow{position:static;width:18px;height:18px;justify-self:end;color:#fff}
  .mobile-primary-attendance #mobile-action-mark:focus-visible{outline:3px solid #f1b733;outline-offset:3px}
  .mobile-primary-attendance #mobile-action-mark:disabled{border-color:#cbd9e5;color:#526a82;background:#e6eef5;box-shadow:none;opacity:1}
  .mobile-primary-attendance #mobile-action-mark:disabled small{color:#526a82}
  .mobile-primary-attendance #mobile-action-mark:disabled .mobile-access-figure{filter:none;opacity:.58}
  .mobile-primary-attendance[data-state="marked"] #mobile-action-mark{border-color:#08735a;background:linear-gradient(120deg,#075d50,#087d69);box-shadow:0 9px 22px rgba(7,93,80,.18)}
  .mobile-primary-attendance #mobile-entry-action-error:not([hidden]){margin:8px 3px 0;color:#a12f44;font-size:12px;line-height:1.45}
  .mobile-sheet-heading{order:3;margin:0 2px 15px}
  .mobile-sheet-heading h2{font-size:19px}
  .mobile-sheet-heading p{color:#526a82;font-size:12px}
  .mobile-session-state{display:none}
  .mobile-close-panel{order:4;margin:0 0 16px;background:#fff;box-shadow:0 9px 24px rgba(16,47,85,.07)}
  .mobile-quick-grid{order:5;grid-template-columns:1fr;gap:9px}

  .mobile-quick-grid button{
    min-height:82px;
    justify-content:center;
    gap:4px;
    padding:15px 82px 15px 16px;
    border-radius:15px;
    box-shadow:0 5px 16px rgba(16,47,85,.065);
  }

  .mobile-quick-grid button b{font-size:14px;line-height:1.3}
  .mobile-quick-grid button small{max-width:24ch;color:#526a82;font-size:12px;line-height:1.35}
  .mobile-quick-grid .card-deco-3d{right:18px;bottom:50%;width:64px;height:64px;opacity:.42;transform:translateY(50%)}
  .mobile-quick-grid .card-deco-icon{right:8px;bottom:50%;width:86px;height:86px;opacity:.045;transform:translateY(50%) rotate(-10deg)}
  .mobile-action-arrow{right:10px;top:10px;width:16px;height:16px}
}

@media(max-width:360px){
  .mobile-portal-hero{min-height:0;padding-inline:14px;padding-bottom:62px}
  .mobile-portal-person{margin-top:24px}
  .mobile-portal-sheet{padding-inline:12px}
  .mobile-quick-grid button{min-height:78px;padding:13px 76px 13px 14px}
}

/* Comprobante de compartición: identidad de Facebook y trazabilidad legible. */
.day-card.has-daily-close .day-close-checklist{max-height:320px}
.day-card.has-daily-close .day-close-item.has-facebook-receipt{
  min-height:118px;
  grid-template-columns:36px minmax(0,1fr) auto;
  row-gap:0;
  margin:4px 0;
  padding:11px 12px 12px;
  border:1px solid rgba(24,119,242,.18);
  border-radius:13px;
  background:linear-gradient(112deg,rgba(236,246,255,.96),rgba(255,255,255,.74) 58%,rgba(231,248,242,.82));
  box-shadow:0 8px 22px rgba(17,73,128,.07),inset 0 1px 0 rgba(255,255,255,.85);
}
.day-card.has-daily-close .day-close-item.has-facebook-receipt .day-close-check{
  width:36px;
  height:36px;
  overflow:visible;
  border-color:rgba(255,255,255,.78);
  color:#fff;
  background:linear-gradient(155deg,#54a4ff 0%,#1877f2 48%,#0759c7 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),inset 0 -1px 0 rgba(0,53,139,.2),0 5px 12px rgba(24,119,242,.23);
}
.day-card.has-daily-close .day-close-item.has-facebook-receipt .day-close-check>.brand-icon{
  width:20px;
  height:20px;
  fill:#fff;
  stroke:none;
}
.day-close-check-badge{
  position:absolute;
  right:-5px;
  bottom:-5px;
  z-index:2;
  width:16px;
  height:16px;
  display:grid;
  place-items:center;
  border:2px solid #f4f9fd;
  border-radius:50%;
  color:#fff;
  background:#159b78;
  box-shadow:0 3px 7px rgba(8,115,90,.22);
}
.day-card.has-daily-close .day-close-check .day-close-check-badge svg{
  width:9px;
  height:9px;
  fill:none;
  stroke:#fff;
  stroke-width:3;
  filter:none;
}
.day-card.has-daily-close .day-close-item.has-facebook-receipt .day-close-item-copy b{color:#075abc;font-size:12.5px}
.day-card.has-daily-close .day-close-item.has-facebook-receipt .day-close-item-copy small{color:#56718d}
.day-card.has-daily-close .day-close-item.has-facebook-receipt .day-close-item-status{align-self:start;margin-top:7px;color:#08735a}
.day-card.has-daily-close .day-close-item.has-facebook-receipt.is-editable:hover{
  background:linear-gradient(112deg,rgba(226,241,255,.98),rgba(255,255,255,.82) 58%,rgba(220,246,237,.9));
  box-shadow:0 10px 25px rgba(17,73,128,.1),inset 0 0 0 1px rgba(24,119,242,.06);
  transform:none;
}
.day-card.has-daily-close .day-close-item.has-facebook-receipt:focus-visible{outline-color:#1877f2}

@media(max-width:900px){
  .mobile-close-panel .day-close-item.has-facebook-receipt{
    min-height:132px;
    grid-template-columns:36px minmax(0,1fr) auto;
    margin:5px -5px;
    padding:11px 10px 12px;
    border:1px solid rgba(24,119,242,.17);
    background:linear-gradient(112deg,#edf7ff,#fff 60%,#edf9f5);
  }
  .mobile-close-panel .day-close-item.has-facebook-receipt .day-close-item-copy b{color:#075abc;font-size:12px}
  .mobile-close-panel .day-close-item.has-facebook-receipt .day-close-item-status{grid-column:auto;justify-self:end;margin-top:7px}
  .mobile-close-panel .day-close-item.has-facebook-receipt .day-close-check{
    overflow:visible;
    border-color:rgba(255,255,255,.78);
    color:#fff;
    background:linear-gradient(155deg,#54a4ff 0%,#1877f2 48%,#0759c7 100%);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 5px 12px rgba(24,119,242,.2);
  }
  .mobile-close-panel .day-close-item.has-facebook-receipt .day-close-check>.brand-icon{width:19px;height:19px;fill:#fff;stroke:none}
}

@media(max-width:420px){
  .mobile-close-panel .day-close-item.has-facebook-receipt{min-height:0;grid-template-columns:36px minmax(0,1fr)}
  .mobile-close-panel .day-close-item.has-facebook-receipt .day-close-item-status{grid-column:2;justify-self:start;margin:4px 0 0}
}

/* Acciones separadas del comprobante: corregir no se confunde con compartir. */
.day-card.has-daily-close .day-close-checklist{max-height:390px}
.day-card.has-daily-close article.day-close-item.has-facebook-receipt{
  cursor:default;
}
.facebook-evidence-actions{align-self:start;display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:1px}
.facebook-evidence-actions .day-close-item-status{align-self:center!important;margin:0!important;color:#08735a!important}
.facebook-evidence-edit{
  min-height:32px;
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:0 8px;
  border:1px solid rgba(7,90,188,.16);
  border-radius:9px;
  color:#075abc;
  background:rgba(255,255,255,.76);
  font-size:8px;
  font-weight:800;
  text-transform:uppercase;
}
.facebook-evidence-edit:hover{border-color:rgba(7,90,188,.3);background:#fff}
.facebook-evidence-edit:focus-visible,.facebook-share-open:focus-visible{outline:3px solid #43c5d1;outline-offset:2px}
.facebook-evidence-edit .edit-icon{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.facebook-share-open{
  grid-column:1/-1;
  min-height:52px;
  display:grid;
  grid-template-columns:32px minmax(0,1fr) 18px;
  align-items:center;
  gap:10px;
  margin-top:10px;
  padding:8px 11px;
  border:0;
  border-radius:11px;
  color:#fff;
  background:#075abc;
  box-shadow:0 8px 18px rgba(7,90,188,.17);
  text-align:left;
  cursor:pointer;
}
.facebook-share-open:hover{background:#064d9f;box-shadow:0 10px 22px rgba(7,75,159,.21)}
.facebook-share-open-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:rgba(255,255,255,.13)}
.facebook-share-open-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.facebook-share-open b,.facebook-share-open small{display:block}.facebook-share-open b{font-size:10.5px;line-height:1.3}.facebook-share-open small{margin-top:2px;color:#dcecff;font-size:8.5px;line-height:1.3}
.facebook-share-open-arrow{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* Comprobante privado de evidencias. */
body.facebook-share-open{overflow:hidden}
.facebook-share-modal{z-index:1010;padding:20px}
.facebook-share-modal .modal-backdrop{
  background:transparent!important;
  -webkit-backdrop-filter:blur(5px) saturate(92%) brightness(.94);
  backdrop-filter:blur(5px) saturate(92%) brightness(.94);
}
.facebook-share-sheet{
  position:relative;
  z-index:1;
  width:min(1040px,100%);
  max-height:calc(100dvh - 40px);
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  overflow:hidden;
  border-radius:18px;
  background:#fff;
  box-shadow:0 30px 90px rgba(0,18,45,.36);
  animation:facebook-share-sheet-in 240ms cubic-bezier(.16,1,.3,1) both;
}
.facebook-share-head{
  min-width:0;
  display:grid;
  grid-template-columns:46px minmax(0,1fr) 44px;
  align-items:center;
  gap:13px;
  padding:18px 20px;
  border-bottom:1px solid #dfe8f0;
  background:linear-gradient(108deg,#fff 58%,#edf7ff);
}
.facebook-share-brand{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;color:#fff;background:#1877f2;box-shadow:0 8px 19px rgba(24,119,242,.2)}
.facebook-share-brand svg{width:25px;height:25px;fill:currentColor}
.facebook-share-head h2,.facebook-share-head p{margin:0}.facebook-share-head h2{color:#102f55;font-size:20px;line-height:1.25;letter-spacing:-.025em}.facebook-share-head p{margin-top:4px;color:#5d7188;font-size:11px;line-height:1.45}
.facebook-share-close{width:44px;height:44px;display:grid;place-items:center;padding:0;border:1px solid #dbe5ed;border-radius:12px;color:#536a82;background:#f5f8fb}
.facebook-share-close:hover{color:#09244c;background:#eaf1f7}.facebook-share-close:focus-visible{outline:3px solid #43c5d1;outline-offset:2px}.facebook-share-close svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.facebook-share-workspace{min-height:0;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.8fr)}
.facebook-share-gallery-wrap{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:18px 20px 20px;background:#edf3f8}
.facebook-share-gallery-wrap>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:13px}
.facebook-share-gallery-wrap h3,.facebook-share-gallery-wrap p{margin:0}.facebook-share-gallery-wrap h3{color:#173656;font-size:15px;letter-spacing:-.015em}.facebook-share-gallery-wrap p{margin-top:4px;color:#60758b;font-size:10px}
.facebook-share-ready{flex:0 0 auto;padding:6px 9px;border-radius:999px;color:#75601e;background:#fff0d7;font-size:9px;font-weight:800}.facebook-share-ready[data-state="ready"]{color:#08735a;background:#dcf4eb}.facebook-share-ready[data-state="error"]{color:#922e43;background:#ffe8ed}
.facebook-share-gallery{min-height:260px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:9px;overflow:auto;padding:2px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#9fb1c2 transparent}
.facebook-share-gallery figure{min-width:0;margin:0;overflow:hidden;border-radius:12px;background:#fff;box-shadow:0 8px 22px rgba(16,47,85,.08)}
.facebook-share-gallery figure>a{min-height:138px;display:grid;place-items:center;padding:5px;background:#071a34}
.facebook-share-gallery img{width:100%;height:auto;max-height:210px;display:block;object-fit:contain}
.facebook-share-gallery figcaption{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;color:#173656}.facebook-share-gallery figcaption span b,.facebook-share-gallery figcaption span small{display:block}.facebook-share-gallery figcaption b{font-size:10px}.facebook-share-gallery figcaption small{margin-top:2px;color:#71849a;font-size:8px}.facebook-share-gallery figcaption em{font-style:normal;color:#075abc;font-size:8px;font-weight:800}
.facebook-share-skeleton{min-height:190px;border-radius:12px;background:linear-gradient(110deg,#dfe7ee 28%,#f3f7fa 43%,#dfe7ee 58%);background-size:220% 100%;animation:facebook-share-loading 1.4s ease-in-out infinite}
.facebook-share-error{grid-column:1/-1;align-self:center;max-width:44ch;margin:auto!important;padding:24px;color:#922e43!important;text-align:center;font-size:11px!important;line-height:1.55}
.facebook-share-details{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:auto;padding:22px;background:#fff;scrollbar-width:thin;scrollbar-color:#b4c1ce transparent}
.facebook-export{margin-top:18px;padding-top:16px;border-top:1px solid #dce5ee;color:#17324d}
.facebook-export[hidden]{display:none}
.facebook-export form{display:grid;gap:8px;margin-bottom:16px}
.facebook-export-quantity-row{display:grid;grid-template-columns:80px minmax(0,1fr);gap:8px;align-items:stretch}
.facebook-export-quantity-row input{text-align:center;font-variant-numeric:tabular-nums}
.facebook-export-quantity-row button{padding-inline:8px}
.facebook-export label{display:block;font-size:12px;font-weight:700;margin-bottom:6px}
.facebook-export input,.facebook-export textarea{box-sizing:border-box;width:100%;min-width:0;padding:10px;border:1px solid #b4c1ce;border-radius:8px;background:#fff;color:#17324d;font-family:inherit;line-height:1.5}
.facebook-export input{font-size:16px;min-height:44px}
.facebook-export textarea{font-family:inherit;font-size:12px;line-height:1.6;resize:vertical;margin-bottom:10px}
.facebook-export button{width:100%;min-height:44px;padding:10px 12px;border:0;border-radius:8px;background:#075abc;color:#fff;font-family:inherit;font-size:12px;font-weight:600;line-height:1.4;cursor:pointer}
.facebook-export button:hover:not(:disabled){background:#06478f}
.facebook-export button:disabled{opacity:.5;cursor:default}
.facebook-export :is(button,input,textarea):focus-visible{outline:3px solid #43c5d1;outline-offset:2px}
.facebook-export-alternatives{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:8px}
.facebook-export-alternatives button{padding:8px 5px;font-size:11px}
.facebook-export-alternatives button{background:#eef5fb;color:#17324d}
.facebook-export-alternatives button:hover:not(:disabled){background:#deecf9}
.facebook-export [role=status]{font-size:12px;line-height:1.6;margin:12px 0 0}
.facebook-export-web{display:flex;align-items:center;justify-content:center;min-height:44px;padding:6px;text-align:center;border-radius:8px;background:#eef5fb;color:#075abc;font-size:11px;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.facebook-export-web:focus-visible{outline:3px solid #43c5d1;outline-offset:2px}
.facebook-export>p{font-size:12px;line-height:1.6}
.facebook-export button.facebook-export-native{display:flex;align-items:center;justify-content:center;gap:9px;background:#25d366;color:#073b20}
.facebook-export-native svg{width:20px;height:20px;flex-shrink:0}
.facebook-export .facebook-export-hint{margin:4px 0 10px;font-size:11px;line-height:1.45;color:#466078}
.facebook-export button.facebook-export-bundle{background:#eef5fb;color:#17324d}
.facebook-export button.facebook-export-bundle:hover:not(:disabled){background:#deecf9}
.facebook-export-help{margin-top:10px;font-size:11px;line-height:1.5;color:#466078}
.facebook-export-help summary{cursor:pointer;padding-block:6px;color:#075abc}
.facebook-export-help summary:focus-visible{outline:3px solid #43c5d1;outline-offset:2px}
.facebook-export-help p{margin:6px 0}
.facebook-export [role=status]:empty{display:none}
.facebook-export-tools{margin-top:14px;padding-top:14px}
.facebook-export-tools .facebook-export-bundle{max-width:100%;display:flex;align-items:center;justify-content:center;gap:9px;min-height:48px;background:#075abc;color:#fff;font-size:13px}
.facebook-export-tools .facebook-export-bundle:hover:not(:disabled){background:#06478f}
.facebook-export-tools .facebook-export-alternatives{margin-top:10px;gap:10px}
.facebook-export-tools .facebook-export-alternatives :is(button,a){box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px;border:1px solid #9aadc0;border-radius:9px;background:#fff;color:#17324d;font-size:12px;font-weight:700;line-height:1.4;text-decoration:none;cursor:pointer}
.facebook-export-tools .facebook-export-alternatives :is(button:hover:not(:disabled),a:hover){border-color:#075abc;background:#e0edfa;color:#06478f}
.facebook-export-tools :is(button:active:not(:disabled),a:active){transform:translateY(1px)}
.facebook-export-tools button:disabled{opacity:1;background:#e2e8ef;color:#647589;border-color:#c5cfdb;cursor:not-allowed}
.facebook-export-tools :is(button,a) svg{width:19px;height:19px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:420px){.facebook-export-tools .facebook-export-alternatives{gap:6px}.facebook-export-tools .facebook-export-alternatives :is(button,a){flex-direction:column;padding:10px 5px;font-size:11px;text-align:center}}
.facebook-export-tools .facebook-receipt-note{margin-top:8px;padding:8px 10px}
.facebook-export-tools [role=status]{margin-top:6px;font-size:11px;line-height:1.4}
.facebook-export-tools .facebook-export-help{margin-top:5px}
@media(min-width:701px){.facebook-export-tools{max-height:38vh;overflow:auto;scrollbar-width:thin}.facebook-export-tools .facebook-export-alternatives{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.facebook-export textarea{font-size:16px}.facebook-export-quantity-row{grid-template-columns:86px minmax(0,1fr)}}
.facebook-export button.facebook-export-native:hover:not(:disabled){background:#1fbd5b}
.facebook-share-person{display:grid;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:12px;padding-bottom:17px;border-bottom:1px solid #e5ebf1}
.facebook-share-person>span:first-child{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;color:#fff;background:#09244c;font-size:11px;font-weight:800;box-shadow:0 8px 18px rgba(9,36,76,.15)}
.facebook-share-person small,.facebook-share-person b,.facebook-share-person em{display:block}.facebook-share-person small{color:#075abc;font-size:8px;font-weight:800;letter-spacing:.1em}.facebook-share-person b{margin-top:3px;color:#173656;font-size:13px;line-height:1.35}.facebook-share-person em{margin-top:2px;color:#667b91;font-size:9px;font-style:normal}
.facebook-share-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:14px 0 0}
.facebook-share-facts>div{min-width:0;padding:9px 8px;border-bottom:1px solid #e8edf2}.facebook-share-facts>div:nth-child(odd){padding-left:0}.facebook-share-facts>div:nth-child(even){padding-right:0}
.facebook-share-facts dt{color:#718399;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.facebook-share-facts dd{margin:4px 0 0;overflow-wrap:anywhere;color:#243f5d;font-size:10px;font-weight:700;line-height:1.35;font-variant-numeric:tabular-nums}
.facebook-share-comment{margin-top:15px;padding-bottom:15px;border-bottom:1px solid #e8edf2}.facebook-share-comment small{color:#718399;font-size:8px;font-weight:800;letter-spacing:.08em}.facebook-share-comment p{margin:6px 0 0;color:#40566f;font-size:10px;line-height:1.5;overflow-wrap:anywhere}
.facebook-receipt-note{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:10px;margin-top:15px;padding:11px 12px;border-radius:11px;color:#31516f;background:#eef5fb}.facebook-receipt-note svg{width:32px;height:32px;padding:7px;border-radius:9px;color:#075abc;background:#deecf9;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.facebook-receipt-note p{margin:0;font-size:9px;line-height:1.45}.facebook-share-gallery a:focus-visible{outline:3px solid #43c5d1;outline-offset:2px}
@keyframes facebook-share-sheet-in{from{opacity:.68;transform:translateY(14px);filter:blur(2px)}to{opacity:1;transform:none;filter:none}}
@keyframes facebook-share-loading{to{background-position:-220% 0}}

@media(max-width:900px){
  .mobile-close-panel .facebook-share-open{grid-column:1/-1}
  .facebook-share-workspace{grid-template-columns:minmax(0,1fr) 310px}
}
@media(max-width:700px){
  .facebook-share-modal{align-items:end;padding:0}
  .facebook-share-sheet{width:100%;max-height:96dvh;border-radius:18px 18px 0 0}
  .facebook-share-head{grid-template-columns:42px minmax(0,1fr) 42px;padding:15px 14px}.facebook-share-brand{width:42px;height:42px}.facebook-share-head h2{font-size:17px}.facebook-share-head p{font-size:10px}
  .facebook-share-workspace{display:block;overflow:auto;overscroll-behavior:contain}
  .facebook-share-gallery-wrap{display:block;padding:17px 14px}.facebook-share-gallery{min-height:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;overflow:visible}.facebook-share-gallery figure>a{min-height:120px}.facebook-share-gallery img{max-height:210px}
  .facebook-share-details{overflow:visible;padding:18px 16px max(18px,env(safe-area-inset-bottom))}
}
@media(max-width:420px){
  .mobile-close-panel article.day-close-item.has-facebook-receipt{min-height:0;grid-template-columns:36px minmax(0,1fr)}
  .mobile-close-panel article.day-close-item.has-facebook-receipt .facebook-evidence-actions{grid-column:2;justify-self:start;margin-top:4px}
  .mobile-close-panel article.day-close-item.has-facebook-receipt .facebook-share-open{grid-column:1/-1;margin-top:9px}
  .facebook-share-facts{grid-template-columns:1fr 1fr}
}
@media(prefers-reduced-motion:reduce){.facebook-share-sheet,.facebook-share-skeleton{animation:none}}

.facebook-delete-modal{z-index:1200;padding:18px;background:rgba(4,18,39,.56);backdrop-filter:blur(5px)}
.facebook-delete-modal[hidden]{display:none}
.facebook-delete-progress[hidden]{display:none}
.facebook-delete-progress{display:flex;align-items:center;gap:12px;margin:14px 0;padding:14px 16px;border:1px solid #c5d8ed;border-radius:12px;background:#eef5fb;color:#173656}
.facebook-delete-progress strong,.facebook-delete-progress small{display:block}
.facebook-delete-progress strong{font-size:13px;line-height:1.4}
.facebook-delete-progress small{margin-top:3px;font-size:12px;line-height:1.5;color:#466078}
.facebook-delete-spinner{flex:0 0 24px;width:24px;height:24px;border:3px solid #c5d8ed;border-top-color:#075abc;border-radius:50%;animation:facebook-delete-spin .8s linear infinite}
@keyframes facebook-delete-spin{to{transform:rotate(360deg)}}
.daily-evidence-editor[aria-busy="true"] .daily-evidence-preview button{opacity:.45;cursor:wait}
@media(prefers-reduced-motion:reduce){.facebook-delete-spinner{animation:none}}
.facebook-delete-modal .modal-backdrop{border:0;padding:0;cursor:default}
.facebook-delete-sheet{box-sizing:border-box;max-height:calc(100dvh - 36px);overflow:auto}
.facebook-delete-modal .modal-backdrop{background:transparent}
.facebook-delete-sheet{position:relative;z-index:1;display:grid;grid-template-columns:52px minmax(0,1fr);gap:14px;width:min(470px,100%);padding:24px;border:1px solid #dce5ed;border-radius:18px;background:#fff;box-shadow:0 28px 70px rgba(0,25,60,.28)}
.facebook-delete-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:15px;color:#b43b50;background:#ffedf0}.facebook-delete-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.facebook-delete-kicker{margin:2px 0 4px;color:#b43b50;font-size:9px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.facebook-delete-content h2{margin:0;color:#173656;font-size:18px;line-height:1.25}.facebook-delete-content>p:not(.facebook-delete-kicker){margin:8px 0 0;color:#536a82;font-size:12px;line-height:1.55}.facebook-delete-warning{padding:9px 10px;border-radius:9px;color:#875719!important;background:#fff3dc;font-size:11px!important}
.facebook-delete-sheet footer{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;margin-top:5px}.facebook-delete-sheet footer button{min-height:44px;padding:10px 14px;border-radius:9px;font-family:inherit;font-size:12px;font-weight:700;line-height:1.2;cursor:pointer}.facebook-delete-cancel{border:1px solid #c4d1de;color:#38516c;background:#f7f9fb}.facebook-delete-confirm{border:1px solid #b43b50;color:#fff;background:#b43b50}.facebook-delete-sheet button:hover{filter:brightness(.96)}.facebook-delete-sheet button:focus-visible{outline:3px solid #43c5d1;outline-offset:2px}
@media(max-width:480px){.facebook-delete-sheet{grid-template-columns:42px minmax(0,1fr);padding:20px}.facebook-delete-icon{width:42px;height:42px;border-radius:12px}.facebook-delete-icon svg{width:21px;height:21px}.facebook-delete-sheet footer{display:grid;grid-template-columns:1fr 1fr}.facebook-delete-sheet footer button{width:100%}}

/* Centro privado de notificaciones de revisión. */
body.review-notification-open{overflow:hidden}
.review-notification-trigger[hidden],.review-notification-layer[hidden],.review-notification-badge[hidden],.review-notification-summary button[hidden]{display:none!important}
.review-notification-trigger{position:relative;width:38px;height:38px;display:grid;flex:0 0 38px;place-items:center;padding:0;border:1px solid rgba(255,255,255,.14);border-radius:10px;color:var(--white);background:rgba(255,255,255,.07);cursor:pointer;transition:color 180ms ease,background-color 180ms ease,box-shadow 180ms ease}
.review-notification-trigger>svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.review-notification-trigger:hover{color:#fff;background:rgba(255,255,255,.13)}
.review-notification-trigger:focus-visible{outline:3px solid rgba(96,212,222,.45);outline-offset:3px}
.review-notification-trigger.has-unread{color:#fff;background:rgba(255,255,255,.12)}
.review-notification-badge{position:absolute;top:-5px;right:-6px;min-width:20px;height:20px;display:grid;place-items:center;padding:0 5px;border:2px solid var(--navy);border-radius:999px;color:var(--white);background:var(--pink);font-size:10px;font-style:normal;font-variant-numeric:tabular-nums;font-weight:800;line-height:1;animation:review-notification-badge-in 260ms cubic-bezier(.16,1,.3,1) both}
@keyframes review-notification-badge-in{from{opacity:0;transform:translateY(3px) scale(.8)}to{opacity:1;transform:none}}

.review-notification-layer{position:fixed;z-index:1250;inset:0;display:flex;align-items:flex-start;justify-content:flex-end;padding:72px 28px 24px}
.review-notification-backdrop{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;border-radius:0;background:rgba(6,26,56,.16);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);cursor:default}
.review-notification-panel{position:relative;z-index:1;width:min(410px,calc(100vw - 40px));max-height:calc(100dvh - 96px);display:flex;flex-direction:column;overflow:hidden;border-radius:16px;color:var(--ink);background:var(--white);box-shadow:0 24px 72px rgba(6,26,56,.28);animation:review-notification-panel-in 220ms cubic-bezier(.16,1,.3,1) both}
@keyframes review-notification-panel-in{from{opacity:0;clip-path:inset(0 0 18% 0 round 16px);transform:translateY(-10px)}to{opacity:1;clip-path:inset(0 round 16px);transform:none}}
.review-notification-panel:focus{outline:none}
.review-notification-panel>header{display:grid;grid-template-columns:42px minmax(0,1fr) 36px;align-items:center;gap:12px;padding:18px 18px 15px;border-bottom:1px solid #e3e8ee}
.review-notification-panel>header h2,.review-notification-panel>header p{margin:0}
.review-notification-panel>header h2{color:var(--navy);font-size:20px;line-height:1.25;letter-spacing:-.02em}
.review-notification-panel>header p{margin-top:3px;color:var(--muted);font-size:10px;line-height:1.45}
.review-notification-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;color:var(--blue);background:var(--blue-soft)}
.review-notification-mark svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.review-notification-close{width:36px;height:36px;display:grid;place-items:center;padding:0;border:0;border-radius:10px;color:var(--muted);background:var(--cloud);cursor:pointer}
.review-notification-close:hover{color:var(--navy);background:var(--line)}
.review-notification-close svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.review-notification-panel button:focus-visible{outline:3px solid rgba(7,90,188,.22);outline-offset:2px}

.review-notification-summary{min-height:61px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 18px;background:#f4f8fb}
.review-notification-summary span{min-width:0}.review-notification-summary b,.review-notification-summary small{display:block}.review-notification-summary b{color:var(--navy);font-size:13px}.review-notification-summary small{margin-top:2px;color:var(--muted);font-size:10px;line-height:1.4}
.review-notification-summary button{flex:0 0 auto;padding:8px 10px;border:0;border-radius:10px;color:var(--blue);background:var(--blue-soft);font-size:10px;font-weight:800;cursor:pointer}
.review-notification-summary button:hover{color:var(--white);background:var(--blue)}.review-notification-summary button:disabled{opacity:.55;cursor:wait}
.review-notification-list{min-height:150px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bdcbd8 transparent}
.review-notification-item{margin:0;border-bottom:1px solid var(--line);background:var(--white)}
.review-notification-item:last-child{border-bottom:0}.review-notification-item.is-unread{background:linear-gradient(90deg,var(--blue-soft) 0%,var(--white) 70%)}
.review-notification-item>button{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr);align-items:start;gap:11px;padding:15px 18px;border:0;color:inherit;background:transparent;text-align:left;cursor:pointer}
.review-notification-item>button:hover{background:rgba(7,90,188,.045)}
.review-notification-state{width:38px;height:38px;display:grid;place-items:center;border-radius:12px}
.review-notification-state svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.review-notification-item[data-state="approved"] .review-notification-state{color:#08735a;background:#e4f7f0}.review-notification-item[data-state="observed"] .review-notification-state{color:#79520e;background:#fff0d7}
.review-notification-copy{min-width:0}.review-notification-copy>span{display:flex;align-items:center;justify-content:space-between;gap:8px}.review-notification-copy b{color:var(--navy);font-size:13px;line-height:1.3}.review-notification-copy em{padding:4px 7px;border-radius:999px;color:var(--blue);background:var(--blue-soft);font-size:10px;font-style:normal;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.review-notification-copy strong{display:block;margin-top:3px;overflow:hidden;color:var(--ink);font-size:10px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.review-notification-copy p{display:-webkit-box;margin:7px 0 0;overflow:hidden;color:var(--muted);font-size:13px;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:3}.review-notification-copy small{display:block;margin-top:7px;color:var(--muted);font-size:10px;font-variant-numeric:tabular-nums}
.review-notification-loading,.review-notification-empty{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px;text-align:center}.review-notification-loading{color:var(--muted);font-size:13px}
.review-notification-empty b{color:var(--navy);font-size:13px}.review-notification-empty p{max-width:34ch;margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.review-notification-empty button{margin-top:12px;padding:9px 13px;border:0;border-radius:10px;color:var(--white);background:var(--blue);font-size:13px;font-weight:800}.review-notification-empty.is-error b{color:#922e43}
.review-notification-panel>footer{display:flex;align-items:center;gap:8px;padding:11px 18px;border-top:1px solid var(--line);color:var(--muted);background:var(--cloud);font-size:10px;line-height:1.4}
.review-notification-panel>footer svg{width:15px;height:15px;flex:0 0 15px;fill:none;stroke:#24a68a;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

@media(max-width:900px){
  .mobile-portal-brand{grid-template-columns:46px minmax(0,1fr) 40px 40px;gap:8px}
  .mobile-portal-brand .review-notification-trigger{width:40px;height:40px;display:grid;padding:0;border-radius:10px}.mobile-portal-brand .review-notification-trigger>svg{width:20px;height:20px}.mobile-portal-brand .review-notification-badge{top:-5px;right:-5px;border-color:var(--white)}
  .review-notification-layer{align-items:flex-end;padding:0}.review-notification-backdrop{background:rgba(6,26,56,.2);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
  .review-notification-panel{width:100%;max-height:min(88dvh,720px);border-radius:20px 20px 0 0;animation-name:review-notification-sheet-in}
  @keyframes review-notification-sheet-in{from{opacity:0;clip-path:inset(18% 0 0 0 round 20px);transform:translateY(28px)}to{opacity:1;clip-path:inset(0 round 20px);transform:none}}
  .review-notification-panel>header{padding:18px max(17px,env(safe-area-inset-right)) 15px max(17px,env(safe-area-inset-left))}.review-notification-summary{padding-inline:max(17px,env(safe-area-inset-right)) max(17px,env(safe-area-inset-left))}
  .review-notification-item>button{min-height:92px;padding:15px max(18px,env(safe-area-inset-right)) 15px max(18px,env(safe-area-inset-left))}.review-notification-panel>footer{padding:12px max(18px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))}
}
@media(prefers-reduced-motion:reduce){.review-notification-badge,.review-notification-panel{animation:none}}

/* Accesos móviles: dos columnas estables, sin huecos ni reescalado al tocar. */
@media(max-width:900px){
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
  body,.portal{max-width:100%;overflow-x:clip}

  .mobile-portal-sheet{row-gap:0}
  .mobile-quick-grid{
    order:3;
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-flow:row;
    grid-auto-rows:minmax(124px,auto);
    gap:10px;
  }
  .mobile-quick-grid button{
    width:100%;
    min-height:124px;
    align-self:stretch;
    justify-content:flex-end;
    gap:3px;
    padding:60px 13px 13px;
    border-radius:16px;
    contain:layout paint;
    transform:none!important;
    transform-origin:center;
    transition:background-color 160ms ease,box-shadow 160ms ease,opacity 160ms ease;
  }
  .mobile-quick-grid button>span{width:100%;min-width:0}
  .mobile-quick-grid button b{
    min-height:2.6em;
    display:flex;
    align-items:flex-end;
    font-size:14px;
    line-height:1.3;
    overflow-wrap:anywhere;
  }
  .mobile-quick-grid button small{
    min-height:2.7em;
    display:-webkit-box;
    margin-top:3px;
    overflow:hidden;
    color:#526a82;
    font-size:12px;
    line-height:1.35;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }
  .mobile-quick-grid .card-deco-3d{
    inset:8px auto auto 10px;
    width:52px;
    height:52px;
    opacity:.5;
    transform:none!important;
  }
  .mobile-quick-grid .card-deco-icon{
    inset:7px auto auto 9px;
    width:58px;
    height:58px;
    opacity:.07;
    transform:none!important;
  }
  .mobile-action-arrow{top:11px;right:10px;width:16px;height:16px;transform:none!important}

  .mobile-quick-grid button.is-grid-orphan{
    grid-column:1/-1;
    min-height:88px;
    padding:16px 82px 16px 16px;
    justify-content:center;
  }
  .mobile-quick-grid button.is-grid-orphan b,
  .mobile-quick-grid button.is-grid-orphan small{min-height:0;max-width:25ch}
  .mobile-quick-grid button.is-grid-orphan .card-deco-3d{
    inset:50% 15px auto auto;
    width:64px;
    height:64px;
    transform:translateY(-50%)!important;
  }
  .mobile-quick-grid button.is-grid-orphan .card-deco-icon{
    inset:50% 8px auto auto;
    width:78px;
    height:78px;
    transform:translateY(-50%)!important;
  }
}

/* Mensajería de Dirección y nuevos tipos del centro de notificaciones. */
.admin-close-message-trigger{
  min-height:32px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:0 9px;
  border:1px solid rgba(94,64,190,.2);
  border-radius:9px;
  color:#563ba7;
  background:#f4f0ff;
  font-size:9px;
  font-weight:800;
  cursor:pointer;
  transition:border-color 180ms ease,background-color 180ms ease,color 180ms ease;
}
.admin-close-message-trigger svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.admin-close-message-trigger:hover{border-color:rgba(94,64,190,.38);color:#442d91;background:#ece6ff}
.admin-close-message-trigger:focus-visible{outline:3px solid rgba(94,64,190,.22);outline-offset:2px}
.admin-close-message-cell{display:flex;align-items:center;justify-content:flex-start;min-width:0;color:#91a0af}
.admin-close-message-cell .admin-close-message-trigger{width:100%;justify-content:center}

body.admin-message-open{overflow:hidden}
.admin-message-modal{z-index:450;padding:20px}
.admin-message-sheet{
  position:relative;
  z-index:1;
  width:min(520px,100%);
  overflow:hidden;
  border-radius:16px;
  color:#263f59;
  background:#fff;
  box-shadow:0 28px 80px rgba(0,18,45,.34);
  animation:daily-evidence-sheet-in 220ms cubic-bezier(.16,1,.3,1) both;
}
.admin-message-head{
  display:grid;
  grid-template-columns:46px minmax(0,1fr) 40px;
  align-items:center;
  gap:13px;
  padding:19px 21px 17px;
  border-bottom:1px solid #e4e9ef;
  background:linear-gradient(110deg,#fff 58%,#f1edff);
}
.admin-message-head>span:nth-child(2){min-width:0}
.admin-message-head h2,.admin-message-head p{margin:0}
.admin-message-head h2{color:#102b50;font-size:19px;line-height:1.25;letter-spacing:-.02em}
.admin-message-head p{margin-top:4px;color:#607087;font-size:11px;line-height:1.45}
.admin-message-head .modal-close{position:static}
.admin-message-person-mark{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border-radius:14px;
  color:#fff;
  background:#563ba7;
  box-shadow:0 8px 18px rgba(67,43,145,.18);
  font-size:11px;
  font-weight:800;
}
.admin-message-sheet form{display:grid;gap:15px;padding:20px 21px 21px}
.admin-message-recipient{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding-bottom:14px;border-bottom:1px solid #e8edf2}
.admin-message-recipient small{grid-column:1/-1;color:#718096;font-size:8px;font-weight:800;letter-spacing:.08em}
.admin-message-recipient b{min-width:0;overflow:hidden;color:#173656;font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.admin-message-recipient span{color:#6b7d91;font-size:10px}
.admin-message-sheet label{display:grid;gap:6px;color:#334a65;font-size:11px;font-weight:800}
.admin-message-sheet label>span{display:flex;align-items:center;justify-content:space-between;gap:12px}
.admin-message-sheet label>span small{color:#7b8999;font-size:9px;font-weight:600}
.admin-message-sheet input,.admin-message-sheet textarea{width:100%;padding:10px 12px;border:1px solid #ccd8e4;border-radius:10px;outline:0;color:#253d58;background:#fbfcfe;font:500 12px/1.5 Inter,sans-serif}
.admin-message-sheet input{height:44px}.admin-message-sheet textarea{min-height:128px;resize:vertical}
.admin-message-sheet input:focus,.admin-message-sheet textarea:focus{border-color:#755ac9;box-shadow:0 0 0 3px rgba(94,64,190,.1)}
.admin-message-sheet label>small{color:#718096;font-size:9px;font-weight:500;line-height:1.45}
.admin-message-status{min-height:16px;margin:0;color:#607087;font-size:10px;line-height:1.45}
.admin-message-status.is-error{color:#922e43}
.admin-message-sheet footer{display:flex;justify-content:flex-end;gap:9px;padding-top:4px}
.admin-message-sheet footer button{min-height:44px;padding:0 15px;border-radius:10px;font-size:11px;font-weight:800}
.admin-message-cancel{border:1px solid #d5dfe8;color:#506278;background:#f7f9fb}
.admin-message-submit{min-width:170px;display:flex;align-items:center;justify-content:center;gap:9px;border:0;color:#fff;background:#563ba7;box-shadow:0 8px 18px rgba(67,43,145,.18)}
.admin-message-submit:hover:not(:disabled){background:#442d91}.admin-message-submit:disabled{color:#8390a0;background:#e5e9ee;box-shadow:none;cursor:wait}
.admin-message-submit svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.admin-message-sheet button:focus-visible{outline:3px solid rgba(94,64,190,.24);outline-offset:2px}

.review-notification-item[data-state="message"] .review-notification-state{color:#563ba7;background:#f0ebff}
.review-notification-item[data-state="assignment"] .review-notification-state{color:#075abc;background:#e8f3ff}

@media(max-width:900px){
  .admin-message-modal{align-items:flex-end;padding:0}
  .admin-message-sheet{width:100%;border-radius:20px 20px 0 0}
  .admin-message-head{padding:17px 17px 15px}
  .admin-message-sheet form{padding:18px 17px max(18px,env(safe-area-inset-bottom))}
  .admin-message-sheet input,.admin-message-sheet textarea{font-size:16px}
}

@media(max-width:520px){
  .admin-message-sheet footer{display:grid;grid-template-columns:1fr 1fr}
  .admin-message-submit{min-width:0}
}

@media(prefers-reduced-motion:reduce){.admin-message-sheet{animation:none}}

body.admin-role-confirm-open{overflow:hidden}
.admin-role-confirm-modal{z-index:460;padding:20px}.admin-role-confirm-modal>.modal-backdrop{padding:0;border:0}
.admin-role-confirm-sheet{position:relative;z-index:1;width:min(500px,100%);overflow:hidden;border-radius:16px;color:#263f59;background:#fff;box-shadow:0 28px 80px rgba(0,18,45,.34);animation:daily-evidence-sheet-in 220ms cubic-bezier(.16,1,.3,1) both}
.admin-role-confirm-head{display:grid;grid-template-columns:48px minmax(0,1fr) 40px;align-items:center;gap:13px;padding:20px 21px 18px;border-bottom:1px solid #e4e9ef;background:#f8fafc}
.admin-role-confirm-head>span:nth-child(2){min-width:0}.admin-role-confirm-head h2,.admin-role-confirm-head p{margin:0}.admin-role-confirm-head h2{color:#102b50;font-size:19px;line-height:1.25;letter-spacing:-.02em}.admin-role-confirm-head p{margin-top:4px;color:#607087;font-size:11px;line-height:1.45}.admin-role-confirm-head .modal-close{position:static}
.admin-role-confirm-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;color:#075abc;background:#e8f3ff}.admin-role-confirm-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.admin-role-confirm-body{display:grid;gap:16px;padding:20px 21px}.admin-role-confirm-facts{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(120px,.65fr);gap:12px;margin:0}.admin-role-confirm-facts>div{min-width:0;padding:13px 14px;border-radius:12px;background:#f5f7fa}.admin-role-confirm-facts dt{color:#718096;font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.admin-role-confirm-facts dd{overflow:hidden;margin:5px 0 0;color:#173656;font-size:12px;font-weight:800;line-height:1.4;text-overflow:ellipsis}
.admin-role-confirm-impact{display:grid;grid-template-columns:22px minmax(0,1fr);gap:11px;padding:14px;border-radius:12px;color:#08735a;background:#e4f7f0}.admin-role-confirm-impact svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.admin-role-confirm-impact b,.admin-role-confirm-impact p{display:block;margin:0}.admin-role-confirm-impact b{font-size:11px}.admin-role-confirm-impact p{margin-top:3px;font-size:10px;line-height:1.5}
.admin-role-confirm-actions{display:flex;justify-content:flex-end;gap:9px;padding:0 21px 21px}.admin-role-confirm-actions button{min-height:44px;padding:0 16px;border-radius:10px;font-size:11px;font-weight:800}.admin-role-confirm-cancel{border:1px solid #d5dfe8;color:#506278;background:#f7f9fb}.admin-role-confirm-submit{min-width:170px;border:0;color:#fff;background:#075abc;box-shadow:0 8px 18px rgba(7,90,188,.18)}.admin-role-confirm-submit:hover{background:#09244c}.admin-role-confirm-sheet button:focus-visible{outline:3px solid rgba(7,90,188,.22);outline-offset:2px}
.admin-role-confirm-modal[data-tone="remove"] .admin-role-confirm-icon{color:#922e43;background:#ffe8ed}.admin-role-confirm-modal[data-tone="remove"] .admin-role-confirm-impact{color:#922e43;background:#fff0f3}.admin-role-confirm-modal[data-tone="remove"] .admin-role-confirm-submit{background:#c23b50;box-shadow:0 8px 18px rgba(194,59,80,.18)}.admin-role-confirm-modal[data-tone="remove"] .admin-role-confirm-submit:hover{background:#922e43}.admin-role-confirm-modal[data-tone="remove"] .admin-role-confirm-sheet button:focus-visible{outline-color:rgba(194,59,80,.24)}
@media(max-width:900px){.admin-role-confirm-modal{align-items:flex-end;padding:0}.admin-role-confirm-sheet{width:100%;border-radius:20px 20px 0 0}.admin-role-confirm-head{padding:18px 17px 16px}.admin-role-confirm-body{padding:18px 17px}.admin-role-confirm-actions{padding:0 17px max(18px,env(safe-area-inset-bottom))}}
@media(max-width:520px){.admin-role-confirm-facts{grid-template-columns:1fr}.admin-role-confirm-actions{display:grid;grid-template-columns:1fr 1fr}.admin-role-confirm-submit{min-width:0}}
@media(prefers-reduced-motion:reduce){.admin-role-confirm-sheet{animation:none}}

@media(max-width:900px){
  #view-gestion>header.view-head.admin-view-head{
    min-height:58px;
    align-items:center!important;
    flex-direction:row!important;
    padding:8px 2px!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    background-color:transparent!important;
    background-image:none!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
    box-shadow:none!important;
    overflow:visible!important;
  }

  #view-gestion>header.view-head.admin-view-head::before,
  #view-gestion>header.view-head.admin-view-head::after{
    content:none!important;
    display:none!important;
    background:none!important;
  }

  #view-gestion .admin-view-head .eyebrow,
  #view-gestion .admin-view-head>div>p:last-child,
  #view-gestion .admin-view-head .admin-role-chip,
  #view-gestion .admin-view-head .mobile-inline-home{
    display:none!important;
  }

  #view-gestion .admin-view-head h1{
    margin:0!important;
    max-width:none!important;
    color:var(--navy)!important;
    font-size:20px!important;
    line-height:1.15!important;
    text-shadow:none!important;
    white-space:nowrap;
  }

  #view-gestion .admin-head-actions{
    width:auto;
    margin:0 0 0 auto;
  }
}

/* Safari amplía automáticamente los formularios con texto menor de 16 px. */
@media(max-width:900px){
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
  select,
  textarea{font-size:16px!important}
}

@media(max-width:350px){
  .mobile-quick-grid{gap:8px;grid-auto-rows:minmax(132px,auto)}
  .mobile-quick-grid button{min-height:132px;padding:58px 11px 12px}
  .mobile-quick-grid button b{font-size:13px}
  .mobile-quick-grid button small{font-size:11px}
  .mobile-quick-grid button.is-grid-orphan{min-height:88px;padding:14px 76px 14px 14px}
}

/* ═══════════════════════════════════════════════════════════════════
   Mobile Close V2 (mcv2) — Cierre de jornada estilo app
   ═══════════════════════════════════════════════════════════════════ */
@media(max-width:900px){

  /* — Container — */
  .mcv2{
    display:grid;
    gap:0;
    margin:20px 0 30px;
    color:#102f55;
  }
  .mcv2[hidden]{display:none}
  .mcv2:focus-visible{outline:3px solid #6B5CE7;outline-offset:3px}

  /* — Header MI JORNADA — */
  .mcv2-head{
    position:relative;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    margin-bottom:20px;
  }
  .mcv2-head-left{
    display:flex;
    align-items:flex-start;
    gap:14px;
    min-width:0;
  }
  .mcv2-head-left>div{min-width:0;padding-right:94px}
  .mcv2-head-icon{
    width:52px;
    height:52px;
    flex:0 0 52px;
    display:grid;
    place-items:center;
    border-radius:15px;
    color:#6B5CE7;
    background:#ede9fe;
  }
  .mcv2-head-icon svg{
    width:26px;
    height:26px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  .mcv2-eyebrow{
    display:block;
    margin-bottom:3px;
    color:#64748b;
    font-size:11px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
  }
  .mcv2-head h2{
    margin:0;
    color:#0f172a;
    font-size:22px;
    font-weight:600;
    line-height:1.25;
    letter-spacing:-.02em;
  }
  .mcv2-head h2 strong{font-weight:800}
  .mcv2-head p{
    margin:5px 0 0;
    color:#64748b;
    font-size:13px;
    line-height:1.45;
  }

  /* State pill */
  .mcv2-state-pill{
    position:absolute;
    top:0;
    right:0;
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-height:30px;
    padding:6px 10px;
    border:1px solid #fde68a;
    border-radius:999px;
    color:#b45309;
    background:#fffbeb;
    font-size:10px;
    font-weight:700;
    white-space:nowrap;
  }

  /* Icon based on state */
  #mobile-close-panel[data-state="ready"] .mcv2-state-pill::before,
  #mobile-close-panel[data-state="complete"] .mcv2-state-pill::before {
    content:"";
    width:16px;
    height:16px;
    background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%2315803d" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="m5 12 4 4L19 6"/></svg>') no-repeat center;
  }

  #mobile-close-panel[data-state="ready"] .mcv2-state-pill,
  #mobile-close-panel[data-state="complete"] .mcv2-state-pill {
    border-color:#bbf7d0;
    color:#15803d;
    background:#f0fdf4;
  }

  #mobile-close-panel[data-state="incomplete"] .mcv2-state-pill {
    border-color:#fecdd3;
    color:#be123c;
    background:#fff1f2;
  }

  /* — Resumen contextual de la jornada — */
  .mcv2-banner{
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,1fr) 88px;
    align-items:center;
    gap:8px 12px;
    min-height:128px;
    margin-bottom:20px;
    padding:18px;
    overflow:hidden;
    border-radius:16px;
    color:#fff;
    background:#102f55;
    box-shadow:0 10px 26px rgba(16,47,85,.18);
  }
  .mcv2-banner::after{
    content:"";
    position:absolute;
    right:-42px;
    bottom:-62px;
    width:148px;
    height:148px;
    border:1px solid rgba(255,255,255,.1);
    border-radius:50%;
    box-shadow:0 0 0 26px rgba(255,255,255,.025);
    pointer-events:none;
  }
  .mcv2-banner-text{
    position:relative;
    z-index:1;
    min-width:0;
  }
  .mcv2-banner h3{
    margin:0;
    font-size:17px;
    font-weight:800;
    line-height:1.25;
    letter-spacing:-.02em;
  }
  .mcv2-banner p{
    max-width:28ch;
    margin:4px 0 0;
    color:#c8d9ea;
    font-size:12px;
    line-height:1.45;
  }
  .mcv2-banner-figure{
    position:relative;
    z-index:1;
    width:88px;
    height:88px;
    display:block;
    object-fit:contain;
    filter:drop-shadow(0 10px 12px rgba(1,18,37,.22));
    transform:rotate(3deg);
  }
  .mcv2-banner-progress{
    position:relative;
    z-index:1;
    grid-column:1/-1;
    height:4px;
    margin-top:5px;
    overflow:hidden;
    border-radius:999px;
    background:rgba(255,255,255,.14);
  }
  .mcv2-banner-progress i{
    width:100%;
    height:100%;
    display:block;
    border-radius:inherit;
    background:#65d6c1;
    transform:scaleX(0);
    transform-origin:left center;
    transition:transform 420ms cubic-bezier(.16,1,.3,1);
  }
  .mcv2-banner-meta{
    position:relative;
    z-index:1;
    grid-column:1/-1;
    color:#dce8f4;
    font-size:10px;
    font-weight:700;
    line-height:1.3;
    font-variant-numeric:tabular-nums;
  }
  #mobile-close-panel[data-state="ready"] .mcv2-banner,
  #mobile-close-panel[data-state="complete"] .mcv2-banner{background:#0b5e50}
  #mobile-close-panel[data-state="ready"] .mcv2-banner-progress i,
  #mobile-close-panel[data-state="complete"] .mcv2-banner-progress i{background:#8ce8d4}
  #mobile-close-panel[data-state="incomplete"] .mcv2-banner{background:#713346}
  #mobile-close-panel[data-state="waiting"] .mcv2-banner{background:#254967}
  @media(prefers-reduced-motion:reduce){
    .mcv2-banner-progress i{transition:none}
  }

  /* — Checklist V2 (card-based) — */
  .mcv2-checklist{
    position:relative;
    display:grid;
    gap:10px;
    margin-bottom:18px;
    padding-left:18px;
  }
  .mcv2-checklist:empty{display:none}
  .mcv2-checklist::before{
    content:"";
    position:absolute;
    top:42px;
    bottom:42px;
    left:5px;
    border-left:1px dashed #bdcad7;
    pointer-events:none;
  }

  /* Override existing day-close-item for card style */
  .mcv2 .day-close-item{
    --task-accent:#74869a;
    --task-soft:#f0f4f8;
    position:relative;
    min-height:96px;
    display:grid;
    grid-template-columns:46px minmax(0,1fr) 18px;
    grid-template-rows:auto auto;
    grid-template-areas:"icon copy arrow" "icon state arrow";
    align-items:center;
    gap:5px 14px;
    padding:15px 14px;
    border:0;
    border-bottom:0;
    border-radius:16px;
    color:inherit;
    background:#fff;
    box-shadow:0 8px 22px rgba(16,47,85,.075);
    text-align:left;
    cursor:pointer;
    touch-action:manipulation;
    transition:background-color 180ms ease,box-shadow 180ms ease;
  }
  .mcv2 .day-close-item::before{
    content:"";
    position:absolute;
    top:50%;
    left:-13px;
    width:9px;
    height:9px;
    border:3px solid #edf4f9;
    border-radius:50%;
    background:var(--task-accent);
    box-sizing:content-box;
    transform:translate(-50%,-50%);
  }
  .mcv2 .day-close-item.type-comparticiones{--task-accent:#1877f2;--task-soft:#eaf3ff}
  .mcv2 .day-close-item.type-rpe{--task-accent:#c97808;--task-soft:#fff2da}
  .mcv2 .day-close-item.type-salida{--task-accent:#7c3aed;--task-soft:#f0eafd}
  .mcv2 .day-close-item.is-complete{--task-accent:#16866a;--task-soft:#e5f7f0}
  .mcv2 .day-close-item:disabled{cursor:default}
  .mcv2 .day-close-item:disabled::after{opacity:0}
  .mcv2 .day-close-item[aria-busy="true"]{pointer-events:none;opacity:.68}
  @media(hover:hover){
    .mcv2 .day-close-item:not(:disabled):hover{background:#fbfdff;box-shadow:0 12px 28px rgba(16,47,85,.105)}
  }

  /* Add chevron to the end of each card */
  .mcv2 .day-close-item::after{
    content:"";
    grid-area:arrow;
    width:18px;
    height:18px;
    align-self:center;
    opacity:.72;
    background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23cbd5e1" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m9 18 6-6-6-6"/></svg>') no-repeat center;
  }

  .mcv2 .day-close-item:active:not(:disabled){
    background:#f8fbfe;
    box-shadow:0 4px 14px rgba(16,47,85,.07);
  }
  .mcv2 .day-close-item:last-child{border-bottom:0}

  .mcv2 .day-close-check{
    grid-area:icon;
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    border:0;
    border-radius:14px;
    color:var(--task-accent);
    background:var(--task-soft);
    box-shadow:none;
  }
  .mcv2 .day-close-check svg{
    width:20px;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
  }

  /* Color coding for check icons */
  .mcv2 .day-close-item.is-complete .day-close-check{
    color:#16866a;
    background:#e5f7f0;
  }
  .mcv2 .day-close-item.is-entry .day-close-check{
    color:var(--task-accent);
    background:var(--task-soft);
  }
  .mcv2 .day-close-item.type-comparticiones .day-close-check{
    color:#1877f2;
    background:#eaf3ff;
  }
  .mcv2 .day-close-item.type-comparticiones .day-close-check .brand-icon{
    width:22px;
    fill:currentColor;
    stroke:none;
  }
  .mcv2 .day-close-item.type-rpe .day-close-check{
    color:#a96105;
    background:#fff2da;
  }
  .mcv2 .day-close-item.type-salida .day-close-check{
    color:#7141c6;
    background:#f0eafd;
  }
  .mcv2 .day-close-item.is-locked .day-close-check{
    color:#94a3b8;
    background:#f1f5f9;
  }

  .mcv2 .day-close-item-copy{grid-area:copy;min-width:0;align-self:end}
  .mcv2 .day-close-item-copy b{
    display:block;
    overflow:hidden;
    color:#172942;
    font-size:14px;
    font-weight:700;
    line-height:1.35;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .mcv2 .day-close-item-copy small{
    display:block;
    margin-top:3px;
    overflow:hidden;
    color:#667b91;
    font-size:12px;
    line-height:1.4;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  /* Status badge */
  .mcv2 .day-close-item-status{
    grid-area:state;
    justify-self:start;
    align-self:start;
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:4px 9px;
    border-radius:999px;
    font-size:9px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
    white-space:nowrap;
  }
  .mcv2 .day-close-item-status::before{
    content:"";
    width:6px;
    height:6px;
    flex:0 0 6px;
    border-radius:50%;
    background:currentColor;
  }
  .mcv2 .day-close-item.is-complete .day-close-item-status{
    color:#16a34a;
    background:#f0fdf4;
  }
  .mcv2 .day-close-item.type-comparticiones:not(.is-complete) .day-close-item-status{
    color:#2563eb;
    background:#eff6ff;
  }
  .mcv2 .day-close-item.type-salida:not(.is-complete) .day-close-item-status{
    color:#d97706;
    background:#fffbeb;
  }
  .mcv2 .day-close-item.type-rpe:not(.is-complete) .day-close-item-status{
    color:#16a34a;
    background:#f0fdf4;
  }
  .mcv2 .day-close-item.is-locked .day-close-item-status{
    color:#64748b;
    background:#f1f5f9;
  }

  /* Chevron arrow */
  .mcv2 .day-close-item-status svg{
    width:16px;
    height:16px;
    color:#cbd5e1;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  .mcv2 .day-close-item:not(.is-editable) .day-close-item-status svg{display:none}

  /* Facebook receipt sub-card override */
  .mcv2 .day-close-item.has-facebook-receipt{
    min-height:auto;
    grid-template-columns:46px minmax(0,1fr) 18px;
    grid-template-areas:"icon copy arrow" "icon state arrow" "receipt receipt receipt";
    padding:16px;
    border:0;
    border-radius:16px;
    background:#fff;
    box-shadow:0 8px 22px rgba(16,47,85,.075);
  }
  .mcv2 .day-close-item.has-facebook-receipt .facebook-evidence-actions{grid-area:state;justify-self:start;margin:0}
  .mcv2 .facebook-share-open{
    grid-area:receipt;
    grid-column:1/-1;
    min-height:48px;
    display:grid;
    grid-template-columns:36px minmax(0,1fr) 20px;
    align-items:center;
    gap:10px;
    margin-top:12px;
    padding:10px 14px;
    border:0;
    border-radius:12px;
    color:#fff;
    background:#4f46e5;
    box-shadow:0 6px 16px rgba(79,70,229,.2);
    text-align:left;
  }
  .mcv2 .facebook-share-open:hover{background:#4338ca}
  .mcv2 .facebook-share-open-icon{
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    border-radius:10px;
    background:rgba(255,255,255,.15);
  }

  /* — Journey stepper — */
  /* — Time cards — */
  /* Cierre compacto: resumen horario compartido y sin tarjetas apiladas. */
  .mcv2-time-cards{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
    margin-bottom:0;
    padding:5px;
    border:1px solid rgba(188,202,216,.7);
    border-radius:17px;
    background:#fff;
    box-shadow:0 8px 22px rgba(16,47,85,.065);
    outline:none;
  }
  .mcv2-time-cards:focus-visible{outline:3px solid #6B5CE7;outline-offset:3px}
  .mcv2-time-card{
    display:flex;
    align-items:center;
    gap:9px;
    min-width:0;
    padding:11px 10px;
    border:0;
    border-radius:12px;
    background:transparent;
  }
  .mcv2-time-entry{border-radius:12px 0 0 12px;background:#f3f5f7}
  .mcv2-time-exit{border-radius:0 12px 12px 0;background:#f3f5f7}
  .mcv2-time-card.is-recorded{background:#eaf3ff}
  .mcv2-time-icon{
    width:34px;
    height:34px;
    flex:0 0 34px;
    display:grid;
    place-items:center;
    border-radius:10px;
    color:#6366f1;
    background:#e0e7ff;
  }
  .mcv2-time-entry .mcv2-time-icon,
  .mcv2-time-exit .mcv2-time-icon{color:#64748b;background:#e2e8f0}
  .mcv2-time-card.is-recorded .mcv2-time-icon{color:#2563eb;background:#dbeafe}
  .mcv2-time-icon svg{
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  .mcv2-time-card>div{min-width:0;flex:1}
  .mcv2-time-card small{
    display:block;
    color:#64748b;
    font-size:8px;
    font-weight:800;
    letter-spacing:.07em;
    text-transform:uppercase;
  }
  .mcv2-time-card b{
    display:block;
    margin-top:2px;
    color:#0f172a;
    font-size:18px;
    font-weight:800;
    line-height:1.2;
    letter-spacing:-.03em;
  }
  .mcv2-time-card:not(.is-recorded) b{color:#94a3b8}
  .mcv2-time-card.is-recorded b{color:#1d4ed8}
  .mcv2-time-card>div>span{
    display:block;
    margin-top:2px;
    color:#94a3b8;
    font-size:9px;
    font-weight:500;
  }
  /* — Footer — */
  .mcv2-footer{
    display:block;
    padding:10px 0 0;
  }
  .mcv2-footer[hidden],.mcv2-footer-status{display:none}
  .mcv2-footer #mobile-close-action{
    width:100%;
    min-height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:0 16px;
    border:0;
    border-radius:12px;
    color:#fff;
    background:#4f46e5;
    font-size:12px;
    font-weight:800;
    touch-action:manipulation;
  }
  .mcv2-footer #mobile-close-action svg{width:16px;height:16px}
  .mcv2-footer #mobile-close-action:disabled{color:#94a3b8;background:#e2e8f0}
  .mcv2-footer #mobile-close-action[hidden]{display:none}

}

/* mcv2 small devices */
@media(max-width:420px){
  .mcv2-head{flex-wrap:nowrap}
  .mcv2-banner{min-height:124px;padding:16px}
  .mcv2-banner h3{font-size:16px}
  .mcv2-banner-figure{width:78px;height:78px;justify-self:end}
  .mcv2-time-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mcv2-time-card{padding-inline:8px}
  .mcv2-time-card>div>span{display:none}
  .mcv2-checklist{padding-left:16px}
  .mcv2 .day-close-item{grid-template-columns:40px minmax(0,1fr) 18px;gap:5px 12px;padding:14px 12px}
  .mcv2 .day-close-item::before{left:-11px}
  .mcv2 .day-close-item-status svg{display:none}
  .mcv2 .day-close-check{width:40px;height:40px}
}

@media(max-width:350px){
  .mcv2-head-icon{width:44px;height:44px;flex-basis:44px;border-radius:12px}
  .mcv2-head-icon svg{width:22px;height:22px}
  .mcv2-head h2{font-size:19px}
  .mcv2-time-icon{display:none}
}

/* Asistencia móvil: historial inmediato, controles integrados y fondo estable. */
@media(max-width:600px){
  #view-asistencia>.view-head{position:relative;margin-bottom:12px;padding-right:104px}
  #view-asistencia>.view-head>div:first-child{padding-right:0}
  #view-asistencia .mobile-inline-home{
    position:absolute;
    top:14px;
    right:14px;
    min-width:76px;
    height:40px;
    margin:0;
    padding-inline:10px;
    font-size:11px;
  }
  #view-asistencia>.attendance-topbar,
  #view-asistencia>.attendance-stats{display:none}
  #view-asistencia .attendance-workspace{gap:14px;margin-top:0}
  #view-asistencia .attendance-calendar-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 12px}
  #view-asistencia .attendance-calendar-mobile-tools{
    grid-column:1/-1;
    display:grid;
    grid-template-columns:40px minmax(0,1fr) 40px 40px;
    align-items:center;
    gap:6px;
    padding-top:10px;
    border-top:1px solid rgba(20,62,101,.09);
  }
  #view-asistencia .attendance-calendar-mobile-tools button{
    width:40px;
    height:40px;
    display:grid;
    place-items:center;
    padding:0;
    border:0;
    border-radius:10px;
    color:#174f84;
    background:#edf4fb;
  }
  #view-asistencia .attendance-calendar-mobile-tools button:disabled{color:#9aabba;background:#f1f4f7}
  #view-asistencia .attendance-calendar-mobile-tools button svg{width:18px;height:18px}
  #view-asistencia .attendance-calendar-mobile-tools b{font-size:12px;text-align:center;text-transform:capitalize;white-space:nowrap}
  #view-asistencia .attendance-calendar-mobile-tools .attendance-calendar-request{color:#fff;background:#0b568f}
  .portal:not([data-view="inicio"]) .time-ambience{position:fixed;transition:none}
  .portal:not([data-view="inicio"]) .time-ambience-orb,
  .portal:not([data-view="inicio"]) .time-ambience-orb::after,
  .portal:not([data-view="inicio"]) .time-ambience-haze,
  .portal:not([data-view="inicio"]) .time-ambience-stars,
  .portal:not([data-view="inicio"]) .time-ambience-stars::before,
  .portal:not([data-view="inicio"]) .time-ambience-clouds,
  .portal:not([data-view="inicio"]) .time-ambience-clouds::before,
  .portal:not([data-view="inicio"]) .time-ambience-rain,
  .portal:not([data-view="inicio"]) .time-ambience-reflection,
  .portal:not([data-view="inicio"]) .view-head::before,
  .portal:not([data-view="inicio"]) .view-head::after{animation:none!important;transition:none!important}
}

/* Dirección: cabecera utilitaria, sin franja editorial que compita con la operación. */
@media(min-width:901px){
  .portal.admin-wide[data-time-phase] #view-gestion{
    background:transparent!important;
    background-image:none!important;
  }

  .portal.admin-wide #view-gestion{
    grid-template-rows:64px auto minmax(0,1fr);
    row-gap:10px;
  }

  .portal.admin-wide #view-gestion>.admin-view-head{
    min-height:64px;
    align-items:center;
    flex-direction:row;
    padding:0 2px!important;
    border:0!important;
    border-radius:0!important;
    color:var(--navy)!important;
    background:transparent!important;
    box-shadow:none!important;
    overflow:visible!important;
  }

  .portal.admin-wide[data-time-phase] #view-gestion>header.view-head.admin-view-head{
    border:0!important;
    background:transparent!important;
    background-color:transparent!important;
    background-image:none!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
    box-shadow:none!important;
  }

  .portal.admin-wide .admin-view-head>div:first-child{
    min-height:52px;
    display:flex;
    align-items:center;
    padding:0 19px;
    border:1px solid rgba(20,56,94,.10);
    border-radius:16px;
    background:rgba(255,255,255,.88);
    box-shadow:0 8px 24px rgba(20,49,82,.07);
  }

  .portal.admin-wide #view-gestion>.admin-view-head::before,
  .portal.admin-wide #view-gestion>.admin-view-head::after{
    content:none!important;
    display:none!important;
  }

  .portal.admin-wide[data-time-phase] #view-gestion>header.view-head.admin-view-head::before,
  .portal.admin-wide[data-time-phase] #view-gestion>header.view-head.admin-view-head::after{
    content:none!important;
    display:none!important;
    background:none!important;
  }

  .portal.admin-wide .admin-view-head .eyebrow,
  .portal.admin-wide .admin-view-head>div>p:last-child,
  .portal.admin-wide .admin-role-chip{
    display:none!important;
  }

  .portal.admin-wide .admin-view-head h1{
    margin:0!important;
    max-width:none!important;
    color:var(--navy)!important;
    font-size:22px!important;
    font-weight:800!important;
    letter-spacing:-.03em!important;
    text-shadow:none!important;
    white-space:nowrap;
  }

  .portal.admin-wide[data-time-phase] #view-gestion>.admin-view-head h1{
    color:var(--navy)!important;
  }

  .portal.admin-wide .admin-head-actions{
    margin-left:auto;
    width:auto;
    justify-content:flex-start;
  }

  .portal.admin-wide .admin-refresh{
    min-height:44px;
    padding:0 18px;
    border:1px solid #0b4f87!important;
    border-radius:999px!important;
    color:#fff!important;
    background:#0b4f87!important;
    box-shadow:0 7px 18px rgba(11,79,135,.16)!important;
    font-size:12px!important;
  }

  .portal.admin-wide .admin-refresh svg{
    width:16px;
    height:16px;
  }

  .portal.admin-wide .admin-refresh:hover:not(:disabled){
    border-color:#075abc!important;
    background:#075abc!important;
    box-shadow:0 9px 22px rgba(7,90,188,.20)!important;
    transform:translateY(-1px)!important;
  }

  .portal.admin-wide .admin-refresh:active:not(:disabled){
    box-shadow:0 4px 12px rgba(7,90,188,.16)!important;
    transform:none!important;
  }

  .portal.admin-wide .admin-section-nav{
    border-color:rgba(20,56,94,.10);
    border-radius:16px;
    background:rgba(255,255,255,.82);
    box-shadow:0 8px 24px rgba(20,49,82,.055);
  }

  .portal.admin-wide .admin-section-nav button,
  .portal.admin-wide .admin-section-nav a{
    border-radius:11px;
  }
}

/* Cierres y entregables: diseño estilo Apple / iOS profesional, sin espacios vacíos y paleta elegante */
.admin-close-section{
  display:flex;
  flex-direction:column;
  gap:20px;
}
.admin-close-command{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:16px 24px;
  padding:16px 22px;
  border:1px solid rgba(0,0,0,.06);
  border-radius:20px;
  background:#ffffff;
  box-shadow:0 2px 12px rgba(0,0,0,.03);
}
.admin-close-heading{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}
.admin-close-heading-icon{
  width:44px;
  height:44px;
  flex:0 0 44px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:linear-gradient(135deg,#0a84ff 0%,#0066cc 100%);
  color:#ffffff;
  box-shadow:0 4px 12px rgba(0,122,255,.24);
}
.admin-close-heading-icon svg{
  width:22px;
  height:22px;
  stroke:#ffffff;
}
.admin-close-heading h2{
  margin:0;
  color:#1c1c1e;
  font-size:18px;
  font-weight:700;
  line-height:1.2;
  letter-spacing:-.02em;
}
.admin-close-heading p{
  margin:3px 0 0;
  color:#8e8e93;
  font-size:12px;
  font-weight:500;
  line-height:1.4;
}

/* KPI Summary Cards (iOS Segmented Widget style) */
.admin-close-command .admin-review-summary{
  min-height:auto;
  display:flex;
  align-items:center;
  gap:10px;
  border:0;
  border-radius:0;
  background:transparent;
  padding:0;
  margin:0;
}
.admin-close-command .admin-review-summary>span.admin-review-stat{
  min-width:96px;
  min-height:auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:6px 14px;
  border:1px solid rgba(0,0,0,.06);
  border-radius:12px;
  background:#ffffff;
  box-shadow:0 1px 3px rgba(0,0,0,.03);
  transition:transform .15s ease,box-shadow .15s ease;
}
.admin-close-command .admin-review-summary>span.admin-review-stat:hover{
  transform:translateY(-1px);
  box-shadow:0 3px 8px rgba(0,0,0,.05);
}
.admin-close-command .admin-review-summary .admin-review-stat-label{
  display:flex;
  align-items:center;
  gap:5px;
}
.admin-close-command .admin-review-summary .admin-review-stat-label i{
  width:6px;
  height:6px;
  flex:0 0 6px;
  border-radius:50%;
}
.admin-close-command .admin-review-summary .admin-review-stat-label i.pending{background:#ff9500}
.admin-close-command .admin-review-summary .admin-review-stat-label i.approved{background:#34c759}
.admin-close-command .admin-review-summary .admin-review-stat-label i.observed{background:#ff3b30}
.admin-close-command .admin-review-summary .admin-review-stat-label small{
  color:#636366;
  font-size:9.5px;
  font-weight:600;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.admin-close-command .admin-review-summary>span.admin-review-stat b{
  margin-top:2px;
  color:#1c1c1e;
  font-size:20px;
  font-weight:700;
  line-height:1.15;
}
.admin-close-command .admin-review-summary>p{display:none}

/* Filters (iOS Style Inputs) */
.admin-close-filters{
  display:flex;
  align-items:flex-end;
  gap:10px;
  min-width:0;
  flex:1 1 auto;
  justify-content:flex-end;
  flex-wrap:wrap;
}
.admin-close-filters label,
.admin-close-filters .admin-close-filter-col{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.admin-close-filters label>span,
.admin-close-filters .admin-close-filter-col>span{
  font-size:10.5px;
  font-weight:600;
  color:#636366;
  text-transform:uppercase;
  letter-spacing:.02em;
}
.admin-close-field-wrap{
  position:relative;
  display:flex;
  align-items:center;
  width:100%;
  min-width:0;
}
.admin-close-field-wrap .admin-field-icon{
  position:absolute;
  left:11px;
  width:15px;
  height:15px;
  color:#8e8e93;
  pointer-events:none;
}
.admin-close-field-wrap .admin-chevron-icon{
  position:absolute;
  right:11px;
  width:14px;
  height:14px;
  color:#8e8e93;
  pointer-events:none;
}
.admin-close-filters input,
.admin-close-filters select{
  height:38px;
  min-width:0;
  width:100%;
  padding:0 12px 0 32px;
  border:1px solid rgba(0,0,0,.06);
  border-radius:10px;
  outline:0;
  color:#1c1c1e;
  background:#f2f2f7;
  font:500 12px/38px Inter,system-ui,sans-serif;
  box-sizing:border-box;
  transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease;
}
.admin-close-filters select{
  padding-right:30px;
  appearance:none;
  cursor:pointer;
}
.admin-close-search{flex:1 1 180px;min-width:140px;max-width:280px}
.admin-close-date-wrap{flex:0 1 142px;min-width:130px}
.admin-close-area-wrap{flex:1 1 160px;min-width:140px;max-width:220px}
.admin-close-filters input::placeholder{color:#8e8e93;opacity:1}
.admin-close-filters input:focus-visible,
.admin-close-filters select:focus-visible{
  background:#ffffff;
  border-color:#007aff;
  box-shadow:0 0 0 3px rgba(0,122,255,.15);
}

/* 2-Column Area Grid (Each Area is a complete card in its column) */
.admin-close-status{
  width:100%;
}
.admin-close-grid-cols{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
  align-items:start;
  width:100%;
}
.admin-close-grid-cols.is-single{
  grid-template-columns:1fr;
}
.admin-close-col{
  display:flex;
  flex-direction:column;
  gap:20px;
  min-width:0;
  width:100%;
}

/* Area Card (iOS Rounded Card with Soft Shadow) */
.admin-close-area{
  display:block;
  width:100%;
  margin:0;
  box-sizing:border-box;
  overflow:hidden;
  border:1px solid rgba(0,0,0,.06);
  border-radius:18px;
  background:#ffffff;
  box-shadow:0 2px 10px rgba(0,0,0,.03);
  transition:box-shadow .2s ease;
}
.admin-close-area:hover{
  box-shadow:0 4px 16px rgba(0,0,0,.05);
}
.admin-close-area>header{
  min-height:60px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 18px;
  border-bottom:1px solid rgba(0,0,0,.05);
  background:#fafafc;
}
.admin-close-area-title-group{
  display:flex;
  align-items:center;
  gap:11px;
  min-width:0;
}
.admin-close-area-badge{
  width:38px;
  height:38px;
  flex:0 0 38px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:rgba(142,142,147,.12);
  color:#636366;
  border:1px solid rgba(142,142,147,.18);
}
.admin-close-area-badge svg{
  width:19px;
  height:19px;
}
.admin-close-area-badge.tone-salud{background:rgba(48,176,199,.12);color:#00a2b8;border-color:rgba(48,176,199,.22)}
.admin-close-area-badge.tone-diseno{background:rgba(88,86,214,.12);color:#5856d6;border-color:rgba(88,86,214,.22)}
.admin-close-area-badge.tone-marketing{background:rgba(255,45,85,.12);color:#ff2d55;border-color:rgba(255,45,85,.22)}
.admin-close-area-badge.tone-ingenieria{background:rgba(0,122,255,.12);color:#007aff;border-color:rgba(0,122,255,.22)}
.admin-close-area-badge.tone-rrhh{background:rgba(255,149,0,.12);color:#ff9500;border-color:rgba(255,149,0,.22)}
.admin-close-area-badge.tone-reclutamiento{background:rgba(52,199,89,.12);color:#34c759;border-color:rgba(52,199,89,.22)}
.admin-close-area-badge.tone-finanzas{background:rgba(175,82,222,.12);color:#af52de;border-color:rgba(175,82,222,.22)}
.admin-close-area-badge.tone-operaciones{background:rgba(255,159,10,.12);color:#ff9f0a;border-color:rgba(255,159,10,.22)}

.admin-close-area-title-group>span{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.admin-close-area>header b{
  margin:0;
  color:#1c1c1e;
  font-size:14.5px;
  font-weight:700;
  line-height:1.25;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.admin-close-area>header small{
  margin:2px 0 0;
  color:#8e8e93;
  font-size:11.5px;
  font-weight:500;
  white-space:nowrap;
}
.admin-close-progress{
  display:flex;
  align-items:center;
  gap:8px;
  flex:1;
  max-width:160px;
  margin:0 8px;
}
.admin-close-progress-bar{
  flex:1;
  height:5px;
  background:#e5e5ea;
  border-radius:999px;
  overflow:hidden;
}
.admin-close-progress-fill{
  height:100%;
  background:#34c759;
  border-radius:999px;
  transition:width .3s ease;
}
.admin-close-progress-pct{
  font-size:11px;
  font-weight:600;
  color:#8e8e93;
  min-width:26px;
}
.admin-close-area-count{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:4px 10px;
  border-radius:9px;
  background:#f2f2f7;
  border:1px solid rgba(0,0,0,.04);
  min-width:62px;
}
.admin-close-area-count b{
  font-size:14px;
  font-weight:700;
  color:#1c1c1e;
  line-height:1.1;
}
.admin-close-area-count small{
  font-size:9px;
  font-weight:500;
  color:#8e8e93;
  text-transform:lowercase;
  margin-top:1px;
}

/* Table */
.admin-close-table{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  scrollbar-color:#d1d1d6 transparent;
}
.admin-close-table::-webkit-scrollbar{height:4px}
.admin-close-table::-webkit-scrollbar-thumb{background:#d1d1d6;border-radius:999px}
.admin-close-table-head,
.admin-close-person{
  display:grid;
  grid-template-columns:minmax(130px,1.3fr) 46px 66px minmax(96px,1fr) 46px 74px 48px;
  align-items:center;
  gap:6px;
  padding:8px 14px;
  min-width:530px;
  box-sizing:border-box;
}
.admin-close-table-head{
  padding-block:8px;
  color:#8e8e93;
  background:#fafafc;
  border-bottom:1px solid #e5e5ea;
  font-size:9.5px;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.admin-close-table-head span:not(:first-child){
  text-align:center;
}
.admin-close-person{
  min-height:50px;
  border-top:1px solid #f2f2f7;
  background:#ffffff;
  color:#1c1c1e;
  font-size:12px;
  transition:background-color .12s ease;
}
.admin-close-person:hover{
  background:#f8f9fa;
}
.admin-close-person.is-off{
  background:rgba(255,59,48,.03) !important;
  box-shadow:none;
}
.admin-close-person.is-off:hover{
  background:rgba(255,59,48,.06) !important;
}

/* Collaborator cell */
.admin-close-person-cell{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.admin-close-avatar{
  width:30px;
  height:30px;
  flex:0 0 30px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#f2f2f7;
  color:#1c1c1e;
  font-size:11px;
  font-weight:600;
  font-style:normal;
  border:1px solid rgba(0,0,0,.04);
}
.admin-close-person.is-off .admin-close-avatar{
  background:rgba(255,59,48,.08);
  color:#d70015;
  border-color:rgba(255,59,48,.18);
}
.admin-close-avatar{
  position:relative;
  overflow:hidden;
}
.admin-close-avatar img{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:inherit;
}
.admin-close-person-meta{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.admin-close-person-meta b{
  font-size:12px;
  font-weight:600;
  color:#1c1c1e;
  line-height:1.3;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.admin-close-person-schedule{font-variant-numeric:tabular-nums;font-size:10.5px;color:#8e8e93;margin-top:1px;white-space:nowrap}
.admin-close-person.is-off .admin-close-person-schedule{
  color:#d70015;
  font-weight:600;
}

/* Entrada & Salida cells */
.admin-close-time-cell{
  text-align:center;
  font-size:11px;
  font-weight:500;
  color:#48484a;
}

/* Modalidad cell (iOS Subtle Pill) */
.admin-close-mode-cell{
  display:flex;
  justify-content:center;
}
.admin-close-mode{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:2px 7px;
  border-radius:6px;
  font-size:10.5px;
  font-weight:600;
  line-height:1.3;
  white-space:nowrap;
}
.admin-close-mode.pending{color:#8e8e93;background:#f2f2f7}
.admin-close-mode.virtual{color:#007aff;background:rgba(0,122,255,.08);border:1px solid rgba(0,122,255,.14)}
.admin-close-mode.presencial{color:#248a3d;background:rgba(52,199,89,.08);border:1px solid rgba(52,199,89,.16)}

/* Evidencias cell */
.admin-close-evidence-cell{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
  text-align:center;
}
.admin-close-evidence-fraction{
  display:inline-flex;
  align-items:center;
  gap:3px;
  font-size:10.5px;
  font-weight:500;
  color:#636366;
}
.admin-close-evidence-fraction b{
  font-weight:600;
  color:#1c1c1e;
}
.admin-close-exit-note{
  display:inline-flex;
  align-items:center;
  gap:3px;
  padding:1px 5px;
  border-radius:4px;
  font-size:9px;
  font-weight:600;
  color:#b25e00;
  background:rgba(255,149,0,.08);
  white-space:nowrap;
  margin-top:1px;
}
.admin-close-evidence-actions{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:3px;
  margin-top:2px;
}
.admin-action-icon{
  width:11px;
  height:11px;
  flex-shrink:0;
}
.admin-close-upload-trigger{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-height:22px;
  padding:2px 8px;
  border:1px solid rgba(255,59,48,.2);
  border-radius:6px;
  color:#d70015;
  background:rgba(255,59,48,.06);
  font-size:10px;
  font-weight:600;
  white-space:nowrap;
  cursor:pointer;
  transition:all .15s ease;
}
.admin-close-upload-trigger:hover{
  background:rgba(255,59,48,.12);
  border-color:rgba(255,59,48,.35);
}
.admin-close-upload-trigger.is-recover{
  color:#007aff;
  border-color:rgba(0,122,255,.2);
  background:rgba(0,122,255,.06);
}
.admin-close-upload-trigger.is-recover:hover{
  background:rgba(0,122,255,.12);
  border-color:rgba(0,122,255,.35);
}
.admin-close-review-trigger{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-height:22px;
  padding:2px 8px;
  border:1px solid rgba(0,122,255,.2);
  border-radius:6px;
  color:#007aff;
  background:rgba(0,122,255,.06);
  font-size:10px;
  font-weight:600;
  white-space:nowrap;
  cursor:pointer;
  transition:all .15s ease;
}
.admin-close-review-trigger:hover{
  background:rgba(0,122,255,.12);
  border-color:rgba(0,122,255,.35);
}
.admin-close-review-trigger.has-pending{
  border-color:rgba(255,149,0,.22);
  color:#b25e00;
  background:rgba(255,149,0,.08);
}
.admin-close-review-trigger.has-pending:hover{
  background:rgba(255,149,0,.15);
  border-color:rgba(255,149,0,.38);
}

/* Jornada cell (Apple Status Capsule with Dot) */
.admin-close-status-cell{
  display:flex;
  justify-content:center;
}
.admin-close-status-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  padding:2px 8px;
  border-radius:999px;
  font-size:10.5px;
  font-weight:600;
  line-height:1.3;
  white-space:nowrap;
}
.admin-close-status-pill::before{
  content:"";
  width:5px;
  height:5px;
  border-radius:50%;
  flex:0 0 5px;
}
.admin-close-status-pill.sin_entrada,
.admin-close-status-pill.no_aplica{
  color:#636366;
  background:#f2f2f7;
  border:1px solid rgba(0,0,0,.04);
}
.admin-close-status-pill.sin_entrada::before,
.admin-close-status-pill.no_aplica::before{background:#8e8e93}

.admin-close-status-pill.en_curso{
  color:#b25e00;
  background:rgba(255,149,0,.08);
  border:1px solid rgba(255,149,0,.16);
}
.admin-close-status-pill.en_curso::before{background:#ff9500}

.admin-close-status-pill.completa,
.admin-close-status-pill.lista_para_salir{
  color:#1e7e34;
  background:rgba(52,199,89,.08);
  border:1px solid rgba(52,199,89,.16);
}
.admin-close-status-pill.completa::before,
.admin-close-status-pill.lista_para_salir::before{background:#34c759}

.admin-close-status-pill.regularizada{
  color:#007aff;
  background:rgba(0,122,255,.08);
  border:1px solid rgba(0,122,255,.16);
}
.admin-close-status-pill.regularizada::before{background:#007aff}

.admin-close-status-pill.justificado{
  color:#5856d6;
  background:rgba(88,86,214,.08);
  border:1px solid rgba(88,86,214,.16);
}
.admin-close-status-pill.justificado::before{background:#5856d6}

.admin-close-status-pill.incompleta{
  color:#d70015;
  background:rgba(255,59,48,.08);
  border:1px solid rgba(255,59,48,.16);
}
.admin-close-status-pill.incompleta::before{background:#ff3b30}

/* Mensaje cell (Apple Messages Action) */
.admin-close-message-cell{
  display:flex;
  justify-content:center;
}
.admin-close-message-trigger{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-height:24px;
  padding:2px 8px;
  border:1px solid rgba(0,122,255,.16);
  border-radius:6px;
  background:rgba(0,122,255,.06);
  color:#007aff;
  font-size:10.5px;
  font-weight:600;
  cursor:pointer;
  transition:all .15s ease;
  white-space:nowrap;
}
.admin-close-message-trigger svg{
  width:11px;
  height:11px;
}
.admin-close-message-trigger:hover{
  background:rgba(0,122,255,.12);
  border-color:rgba(0,122,255,.32);
}
.admin-close-message-trigger:focus-visible{
  outline:2px solid #007aff;
  outline-offset:2px;
}

/* Cierres: paleta sobria, conservando la geometria de las tarjetas. */
.admin-close-area{
  border-color:#e5e1dc;
  box-shadow:none;
}
.admin-close-area:hover{box-shadow:none}
.admin-close-area>header,
.admin-close-area .admin-close-table-head{background:#faf9f7}
.admin-close-area>header small,
.admin-close-area .admin-close-progress-pct,
.admin-close-area .admin-close-table-head{color:#706b65}
.admin-close-area .admin-close-area-badge{
  color:#65758b;
  background:#eef1f5;
  border-color:#dce1e8;
}
.admin-close-area .admin-close-area-count{
  background:#f3f1ee;
  border-color:#e5e1dc;
}
.admin-close-area .admin-close-progress-bar{background:#e8e4df}
.admin-close-area .admin-close-progress-fill{background:#91c9a5}
.admin-close-area .admin-close-progress[data-progress-tone="low"] .admin-close-progress-bar{background:#f6e6e8}
.admin-close-area .admin-close-progress[data-progress-tone="low"] .admin-close-progress-fill{background:#e3a0a8}
.admin-close-area .admin-close-person{border-top-color:#efede9}
.admin-close-area .admin-close-person:hover{background:#faf9f7}
.admin-close-area .admin-close-person.is-off{background:#f8f7f5 !important}
.admin-close-area .admin-close-person.is-off:hover{background:#f1eeea !important}
.admin-close-area .admin-close-person>span:first-child b{color:#454950}
.admin-close-area .admin-close-person>span:first-child small{color:#706b65}
.admin-close-area .admin-close-avatar,
.admin-close-area .admin-close-person.is-off .admin-close-avatar{
  color:#6d6861;
  background:#f2f0ed;
  border-color:#e5e0d9;
}
.admin-close-area .admin-close-mode.pending{color:#706b65;background:#f2f0ed}
.admin-close-area .admin-close-mode.virtual,
.admin-close-area .admin-close-mode.presencial{
  color:#666b74;
  background:#f3f3f4;
  border-color:#e3e3e6;
}
.admin-close-area .admin-close-exit-note{color:#805f30;background:#f5f0e6}

/* Acciones compactas: revision acentuada, carga y mensaje secundarios. */
.admin-close-area .admin-close-review-trigger,
.admin-close-area .admin-close-upload-trigger,
.admin-close-area .admin-close-message-trigger{
  color:#5d626b;
  background:#fff;
  border-color:#dcdde0;
  border-radius:5px;
  box-shadow:none;
  transition:background-color .15s ease,border-color .15s ease,color .15s ease;
}
.admin-close-area .admin-close-review-trigger.has-pending{
  color:#53657e;
  background:#eef1f6;
  border-color:#d6deea;
}
.admin-close-area .admin-close-review-trigger:hover,
.admin-close-area .admin-close-upload-trigger:hover,
.admin-close-area .admin-close-message-trigger:hover{
  color:#3f526e;
  background:#e8edf4;
  border-color:#a8b5c7;
}
.admin-close-area .admin-close-review-trigger:focus-visible,
.admin-close-area .admin-close-upload-trigger:focus-visible,
.admin-close-area .admin-close-message-trigger:focus-visible{
  outline:2px solid #657a98;
  outline-offset:2px;
}
.admin-close-area .admin-close-status-pill{border-color:transparent}
.admin-close-area .admin-close-status-pill.sin_entrada,
.admin-close-area .admin-close-status-pill.no_aplica{color:#706b65;background:#f2f0ed}
.admin-close-area .admin-close-status-pill.en_curso{color:#805f30;background:#f5f0e6}
.admin-close-area .admin-close-status-pill.completa,
.admin-close-area .admin-close-status-pill.lista_para_salir,
.admin-close-area .admin-close-status-pill.regularizada{color:#3e6853;background:#edf3ee}
.admin-close-area .admin-close-status-pill.justificado{color:#625c73;background:#f1eff4}
.admin-close-area .admin-close-status-pill.incompleta{color:#92554c;background:#f8eeeb}
.admin-close-area .admin-close-status-pill::before{background:currentColor}

/* Detalles geometricos contenidos en el icono, sin ocupar espacio adicional. */
.admin-close-area .admin-close-area-badge{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.admin-close-area .admin-close-area-badge::before,
.admin-close-area .admin-close-area-badge::after{
  content:"";
  position:absolute;
  pointer-events:none;
  border:1px solid currentColor;
  opacity:.22;
  z-index:-1;
}
.admin-close-area .admin-close-area-badge::before{
  width:19px;
  height:19px;
  top:-7px;
  right:-6px;
  border-radius:50%;
}
.admin-close-area .admin-close-area-badge::after{
  width:7px;
  height:7px;
  bottom:1px;
  left:1px;
  transform:rotate(45deg);
  border-radius:1px;
}
.admin-close-area .admin-close-area-badge.tone-salud,
.admin-close-area .admin-close-area-badge.tone-ingenieria{
  color:#637b93;background:#eef2f6;border-color:#dce4ec;
}
.admin-close-area .admin-close-area-badge.tone-rrhh,
.admin-close-area .admin-close-area-badge.tone-operaciones{
  color:#967459;background:#f6f0e9;border-color:#e9ddcf;
}
.admin-close-area .admin-close-area-badge.tone-marketing,
.admin-close-area .admin-close-area-badge.tone-diseno{
  color:#8a6e80;background:#f4eff3;border-color:#e7dce4;
}
/* Mensaje: rosa con relieve suave e icono de conversacion. */
.admin-close-area .admin-close-message-trigger{
  width:28px;
  min-height:28px;
  padding:4px;
  color:#fff;
  background:linear-gradient(180deg,#d52c7b,#bc2068);
  border-color:#bb2469;
  border-radius:8px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 2px 4px rgba(137,28,79,.12);
}
.admin-close-area .admin-close-message-trigger:hover{
  color:#fff;
  background:linear-gradient(180deg,#c72570,#a91a5a);
  border-color:#a91a5a;
}
.admin-close-area .admin-close-message-trigger:active{
  background:#a91a5a;
  box-shadow:inset 0 1px 2px rgba(94,13,48,.2);
}
.admin-close-area .admin-close-message-trigger:focus-visible{
  outline:2px solid #b51e65;
  outline-offset:2px;
}
.admin-close-area .admin-close-message-trigger svg{
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.admin-close-area .admin-close-message-trigger .admin-message-phone{
  fill:currentColor;
  stroke:none;
}

/* Revision en ambar; evidencias faltantes en rojo pastel. */
.admin-close-area .admin-close-review-trigger.has-pending{
  color:#805610;
  background:#fff1cd;
  border-color:#ebce88;
}
.admin-close-area .admin-close-review-trigger.has-pending:hover{
  color:#6d4709;
  background:#ffe6a6;
  border-color:#d9b45b;
}
.admin-close-area .admin-close-upload-trigger:not(.is-recover){
  color:#963f4b;
  background:#fcebed;
  border-color:#efcbd1;
}
.admin-close-area .admin-close-upload-trigger:not(.is-recover):hover{
  color:#802f3b;
  background:#f8dce1;
  border-color:#dfa9b3;
}

/* Floating Messages Action */
.admin-close-floating-messages{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:95;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:11px 18px;
  border-radius:999px;
  background:linear-gradient(135deg,#ff2d55 0%,#e0004d 100%);
  color:#ffffff;
  border:0;
  font-size:13.5px;
  font-weight:700;
  cursor:pointer;
  box-shadow:0 6px 20px rgba(224,0,77,.28);
  transition:transform .15s ease,box-shadow .15s ease;
}
.admin-close-floating-messages:hover{
  transform:scale(1.02);
  box-shadow:0 8px 24px rgba(224,0,77,.35);
}
.admin-close-floating-messages svg{
  width:17px;
  height:17px;
}

/* Responsive adjustments: Bulletproof multi-breakpoint system */
@media(max-width:1220px){
  .admin-close-grid-cols{
    grid-template-columns:1fr;
    gap:18px;
  }
  .admin-close-col{
    gap:18px;
  }
}

@media(max-width:960px){
  .admin-close-command{
    flex-direction:column;
    align-items:stretch;
    gap:14px;
    padding:14px 16px;
  }
  .admin-close-heading{
    width:100%;
  }
  .admin-close-command .admin-review-summary{
    width:100%;
    justify-content:flex-start;
  }
  .admin-close-filters{
    width:100%;
    justify-content:flex-start;
    gap:10px;
  }
  .admin-close-search{flex:1 1 200px}
  .admin-close-date-wrap{flex:0 1 140px}
  .admin-close-area-wrap{flex:1 1 170px}
}

@media(max-width:768px){
  .admin-close-table-head{
    display:none!important;
  }
  .admin-close-table{
    overflow-x:visible!important;
  }
  .admin-close-person{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:8px 12px!important;
    padding:12px 14px!important;
    min-width:0!important;
    width:100%!important;
    border-top:1px solid rgba(0,0,0,.06)!important;
    background:#ffffff!important;
    box-sizing:border-box!important;
  }
  .admin-close-person>span::before{
    display:none!important;
    content:none!important;
  }
  .admin-close-person-cell{
    grid-column:1/-1!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:10px!important;
    padding-bottom:8px!important;
    border-bottom:1px dashed rgba(0,0,0,.06)!important;
    min-width:0!important;
  }
  .admin-close-person-cell .admin-close-person-meta{
    flex:1 1 auto!important;
    min-width:0!important;
  }
  .admin-close-person-cell .admin-close-person-meta b{
    font-size:12.5px!important;
  }
  .admin-close-mode-cell{
    grid-column:1/2!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
  }
  .admin-close-status-cell{
    grid-column:2/3!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
  }
  .admin-close-time-cell:nth-of-type(2){
    grid-column:1/2!important;
    display:flex!important;
    align-items:center!important;
    gap:6px!important;
    font-size:11.5px!important;
    color:#48484a!important;
    text-align:left!important;
  }
  .admin-close-time-cell:nth-of-type(2)::before{
    content:"Entrada:"!important;
    display:inline!important;
    font-size:9.5px!important;
    font-weight:600!important;
    color:#8e8e93!important;
    text-transform:uppercase!important;
  }
  .admin-close-time-cell:nth-of-type(5){
    grid-column:2/3!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:6px!important;
    font-size:11.5px!important;
    color:#48484a!important;
  }
  .admin-close-time-cell:nth-of-type(5)::before{
    content:"Salida:"!important;
    display:inline!important;
    font-size:9.5px!important;
    font-weight:600!important;
    color:#8e8e93!important;
    text-transform:uppercase!important;
  }
  .admin-close-evidence-cell{
    grid-column:1/2!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    gap:4px!important;
  }
  .admin-close-evidence-actions{
    align-items:flex-start!important;
  }
  .admin-close-message-cell{
    grid-column:2/3!important;
    display:flex!important;
    align-items:flex-end!important;
    justify-content:flex-end!important;
  }
  .admin-close-message-trigger{
    min-height:30px!important;
    padding:4px!important;
    font-size:11px!important;
  }
  .admin-close-command .admin-review-summary{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:8px!important;
    width:100%!important;
  }
  .admin-close-command .admin-review-summary>span.admin-review-stat{
    min-width:0!important;
    width:100%!important;
  }
  .admin-close-area>header{
    display:grid!important;
    grid-template-columns:1fr auto!important;
    gap:8px 12px!important;
    padding:10px 14px!important;
  }
  .admin-close-area-title-group{
    grid-column:1/2!important;
  }
  .admin-close-area-count{
    grid-column:2/3!important;
  }
  .admin-close-progress{
    grid-column:1/-1!important;
    width:100%!important;
    justify-content:space-between!important;
    padding-top:4px!important;
    border-top:1px dashed rgba(0,0,0,.05)!important;
  }
  .admin-close-progress-bar{
    flex:1 1 auto!important;
    width:auto!important;
  }
}

@media(max-width:480px){
  .admin-close-command{
    padding:12px 14px;
    border-radius:16px;
  }
  .admin-close-filters{
    display:flex;
    flex-direction:column;
    gap:10px;
    width:100%;
  }
  .admin-close-filters label,
  .admin-close-search,
  .admin-close-date-wrap,
  .admin-close-area-wrap{
    width:100%!important;
    max-width:100%!important;
    flex:1 1 100%!important;
  }
  .admin-close-filters input,
  .admin-close-filters select{
    width:100%!important;
    height:40px;
    font-size:13px;
  }
  .admin-close-person{
    padding:10px 12px!important;
  }
}

/* Centro de notificaciones: compacto, privado y con lectura tipo macOS. */
.review-notification-layer{
  padding:72px 24px 24px;
}
.review-notification-backdrop{
  background:rgba(15,35,58,.14);
  -webkit-backdrop-filter:blur(10px) saturate(120%);
  backdrop-filter:blur(10px) saturate(120%);
}
.review-notification-panel{
  width:min(430px,calc(100vw - 40px));
  border:1px solid rgba(255,255,255,.72);
  border-radius:22px;
  background:rgba(241,246,251,.9);
  -webkit-backdrop-filter:blur(28px) saturate(145%);
  backdrop-filter:blur(28px) saturate(145%);
  box-shadow:0 26px 76px rgba(12,31,53,.3),0 2px 10px rgba(12,31,53,.09);
}
.review-notification-panel>header{
  grid-template-columns:40px minmax(0,1fr) 36px;
  gap:11px;
  padding:16px;
  border-bottom-color:rgba(29,63,98,.1);
  background:rgba(255,255,255,.56);
}
.review-notification-panel>header h2{font-size:19px}
.review-notification-panel>header p{color:#687a8e;font-size:10px}
.review-notification-mark{
  width:40px;
  height:40px;
  border-radius:12px;
  color:#0866c5;
  background:rgba(221,237,255,.92);
  box-shadow:inset 0 0 0 1px rgba(8,102,197,.08);
}
.review-notification-close{
  color:#5f7185;
  background:rgba(231,237,243,.82);
}
.review-notification-close:hover{color:#193b5e;background:#dfe8f0}
.review-notification-summary{
  min-height:58px;
  padding:11px 16px;
  border-bottom:1px solid rgba(29,63,98,.07);
  background:rgba(247,250,253,.68);
}
.review-notification-summary b{font-size:12px}
.review-notification-summary small{color:#687a8e}
.review-notification-summary button{
  border:1px solid rgba(8,102,197,.1);
  color:#075abc;
  background:rgba(226,239,254,.82);
}
.review-notification-list{
  min-height:150px;
  display:block;
  padding:10px;
  scrollbar-color:#a9bac9 transparent;
}
.review-notification-day{display:grid;gap:7px}
.review-notification-day+.review-notification-day{margin-top:14px}
.review-notification-day>h3{
  position:sticky;
  z-index:3;
  top:-1px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0;
  padding:7px 5px;
  color:#173958;
  background:rgba(241,246,251,.92);
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
  font-size:12px;
  line-height:1.3;
}
.review-notification-day>h3 small{
  color:#6e8092;
  font-size:9px;
  font-weight:700;
}
.review-notification-day-items{display:flex;flex-direction:column;gap:8px}
.review-notification-item{
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) 38px;
  align-items:start;
  gap:2px;
  margin:0;
  overflow:hidden;
  border:1px solid rgba(29,63,98,.1);
  border-radius:15px;
  background:rgba(255,255,255,.78);
  box-shadow:0 7px 20px rgba(25,54,84,.07);
  transition:border-color .18s ease-out,background-color .18s ease-out,opacity .18s ease-out,transform .18s ease-out;
}
.review-notification-item:last-child{border-bottom:1px solid rgba(29,63,98,.1)}
.review-notification-item.is-unread{
  border-color:rgba(8,102,197,.2);
  background:rgba(247,251,255,.94);
}
.review-notification-item.is-deleting{
  opacity:.48;
  transform:scale(.985);
  pointer-events:none;
}
.review-notification-item>.review-notification-content{
  width:100%;
  min-width:0;
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  align-items:start;
  gap:11px;
  padding:14px 8px 14px 14px;
  border:0;
  color:inherit;
  background:transparent;
  text-align:left;
  cursor:pointer;
}
.review-notification-item>.review-notification-content:hover{background:rgba(18,91,163,.035)}
.review-notification-item>.review-notification-content:focus-visible,
.review-notification-item>.review-notification-delete:focus-visible{
  position:relative;
  z-index:2;
  outline:3px solid rgba(7,90,188,.24);
  outline-offset:-3px;
}
.review-notification-state{
  width:38px;
  height:38px;
  border-radius:12px;
  box-shadow:inset 0 0 0 1px rgba(23,62,96,.05);
}
.review-notification-copy>span{min-height:20px}
.review-notification-copy b{font-size:12px}
.review-notification-copy em{padding:3px 6px;font-size:8px}
.review-notification-copy strong{
  margin-top:2px;
  color:#334b63;
  font-size:10px;
}
.review-notification-copy p{
  display:block;
  margin:7px 0 0;
  overflow:visible;
  color:#65768a;
  font-size:12px;
  line-height:1.48;
  -webkit-line-clamp:unset;
}
.review-notification-copy p.has-direction-message{
  margin-top:9px;
  padding:9px 10px 10px;
  border:1px solid rgba(7,90,188,.12);
  border-radius:10px;
  color:#203f5d;
  background:rgba(232,242,253,.72);
  font-weight:600;
}
.review-notification-copy p.has-direction-message>span{
  display:block;
  margin-bottom:4px;
  color:#075abc;
  font-size:9px;
  font-weight:800;
}
.review-notification-copy p.is-system-message{color:#5f7185}
.review-notification-copy small{display:flex;align-items:center;min-height:16px;margin-top:8px;color:#65778b;font-size:9px;font-weight:600}
.review-notification-item>.review-notification-delete{
  width:34px;
  height:34px;
  min-height:34px;
  display:grid;
  grid-template-columns:1fr;
  place-items:center;
  align-self:start;
  margin:12px 4px 0 0;
  padding:0;
  border:0;
  border-radius:10px;
  color:#738396;
  background:transparent;
  cursor:pointer;
  transition:color .18s ease-out,background-color .18s ease-out;
}
.review-notification-item>.review-notification-delete:hover{
  color:#ad3148;
  background:#fdebef;
}
.review-notification-item>.review-notification-delete:disabled{cursor:wait}
.review-notification-delete svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.review-notification-loading,.review-notification-empty{
  width:100%;
  border-radius:14px;
  background:rgba(255,255,255,.58);
}
.review-notification-panel>footer{
  border-top-color:rgba(29,63,98,.08);
  color:#6b7c8f;
  background:rgba(247,250,253,.7);
}

@media(max-width:900px){
  .review-notification-backdrop{
    background:rgba(15,35,58,.18);
    -webkit-backdrop-filter:blur(9px) saturate(115%);
    backdrop-filter:blur(9px) saturate(115%);
  }
  .review-notification-panel{
    border-radius:24px 24px 0 0;
    background:rgba(241,246,251,.94);
  }
  .review-notification-list{padding:9px max(9px,env(safe-area-inset-right)) 9px max(9px,env(safe-area-inset-left))}
  .review-notification-item>.review-notification-content{
    min-height:92px;
    padding:14px 7px 14px 13px;
  }
  .review-notification-item>.review-notification-delete{
    min-height:36px;
    width:36px;
    height:36px;
    margin:12px 3px 0 0;
    padding:0;
  }
}

/* Inicio de escritorio: saludo y notificaciones sin franja decorativa. */
@media (min-width:901px){
  .portal:not(.admin-wide) #view-inicio>.view-head,
  .portal:not(.admin-wide)[data-time-phase] #view-inicio>.view-head{
    min-height:76px;
    display:grid;
    grid-template-columns:minmax(230px,.58fr) minmax(300px,1.42fr) auto;
    align-items:center;
    gap:20px;
    margin-bottom:10px!important;
    padding:4px!important;
    overflow:visible;
    border:0!important;
    border-bottom:0!important;
    border-radius:0!important;
    color:var(--navy)!important;
    background:transparent!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
    box-shadow:none!important;
  }
  .portal:not(.admin-wide) #view-inicio>.view-head::before,
  .portal:not(.admin-wide) #view-inicio>.view-head::after{content:none!important;display:none!important}
  .portal:not(.admin-wide) #view-inicio>.view-head .welcome-only{min-width:0}
  .portal:not(.admin-wide) #view-inicio>.view-head h1{
    margin:0;
    color:var(--navy)!important;
    font-size:clamp(23px,1.8vw,28px)!important;
    font-weight:800!important;
    line-height:1.15!important;
    letter-spacing:-.04em!important;
    text-shadow:none!important;
    max-width:230px;
    overflow:visible;
    text-overflow:clip;
    white-space:normal;
    text-wrap:balance;
  }
  .portal:not(.admin-wide) #view-inicio>.view-head .dashboard-month-progress{
    min-width:0;
    display:block;
  }
  .portal:not(.admin-wide) #view-inicio>.view-head .dashboard-month-days{
    min-width:0;
    display:flex;
    gap:6px;
    overflow-x:auto;
    padding:4px 22px 5px;
    scroll-snap-type:x proximity;
    scroll-padding-inline:22px;
    scrollbar-width:none;
    -webkit-mask-image:linear-gradient(90deg,transparent,rgba(0,0,0,.35) 8px,#000 22px,#000 calc(100% - 22px),rgba(0,0,0,.35) calc(100% - 8px),transparent);
    mask-image:linear-gradient(90deg,transparent,rgba(0,0,0,.35) 8px,#000 22px,#000 calc(100% - 22px),rgba(0,0,0,.35) calc(100% - 8px),transparent);
  }
  .portal:not(.admin-wide) #view-inicio>.view-head .dashboard-month-days::-webkit-scrollbar{display:none}
  .portal:not(.admin-wide) #view-inicio>.view-head .dashboard-month-days>i{
    width:34px;
    height:45px;
    flex:0 0 34px;
    border-radius:10px;
    background:rgba(255,255,255,.38);
  }
  .portal:not(.admin-wide) #view-inicio>.view-head .dashboard-month-day{
    width:34px;
    height:45px;
    flex:0 0 34px;
    display:grid;
    place-content:center;
    gap:2px;
    position:relative;
    border:1px solid rgba(75,106,143,.08);
    border-radius:10px;
    color:#7b8a9c;
    background:rgba(248,251,255,.72);
    -webkit-backdrop-filter:blur(12px) saturate(120%);
    backdrop-filter:blur(12px) saturate(120%);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.72);
    text-align:center;
    scroll-snap-align:center;
  }
  .portal:not(.admin-wide) #view-inicio>.view-head .dashboard-month-day b{font-size:11px;line-height:1}
  .portal:not(.admin-wide) #view-inicio>.view-head .dashboard-month-day small{
    font-size:7px;
    font-weight:700;
    line-height:1;
    text-transform:capitalize;
  }
  .portal:not(.admin-wide) #view-inicio>.view-head .dashboard-month-day.p{
    border-color:rgba(43,157,128,.13);
    color:#176f5c;
    background:rgba(224,245,239,.86);
  }
  .portal:not(.admin-wide) #view-inicio>.view-head .dashboard-month-day.j{
    border-color:rgba(79,119,185,.12);
    color:#476caa;
    background:rgba(232,239,250,.88);
  }
  .portal:not(.admin-wide) #view-inicio>.view-head .dashboard-month-day.t{
    border-color:rgba(194,132,30,.13);
    color:#8b641b;
    background:rgba(255,242,215,.88);
  }
  .portal:not(.admin-wide) #view-inicio>.view-head .dashboard-month-day.ng{
    border-color:rgba(194,56,82,.12);
    color:#a54458;
    background:rgba(253,235,239,.88);
  }
  .portal:not(.admin-wide) #view-inicio>.view-head .dashboard-month-day.pending,
  .portal:not(.admin-wide) #view-inicio>.view-head .dashboard-month-day.future{opacity:.55}
  .portal:not(.admin-wide) #view-inicio>.view-head .dashboard-month-day.today{
    border-color:rgba(32,83,148,.2);
    color:#123e73;
    background:rgba(216,231,249,.94);
    box-shadow:0 7px 16px rgba(36,80,134,.1),inset 0 1px 0 rgba(255,255,255,.72);
    opacity:1;
  }
  .portal:not(.admin-wide) #view-inicio>.view-head .dashboard-month-day.incomplete,
  .portal:not(.admin-wide) #view-inicio>.view-head .dashboard-month-day.incomplete.today{
    border-color:rgba(194,56,82,.3);
    color:#9f2f47;
    background:rgba(255,222,229,.94);
    box-shadow:0 7px 16px rgba(173,49,72,.1),inset 0 1px 0 rgba(255,255,255,.68);
    opacity:1;
  }
  .portal:not(.admin-wide) #view-inicio>.view-head .dashboard-month-day.incomplete em{
    position:absolute;
    top:3px;
    right:4px;
    width:11px;
    height:11px;
    display:grid;
    place-items:center;
    border-radius:50%;
    color:#fff;
    background:#c23b50;
    font-size:7px;
    font-style:normal;
    font-weight:900;
    line-height:1;
  }
  .portal:not(.admin-wide) #view-inicio>.view-head .dashboard-month-empty{
    align-self:center;
    color:#708297;
    font-size:10px;
    font-weight:600;
  }
  .portal:not(.admin-wide) #view-inicio>.view-head .header-tools{margin-left:0}
  .portal:not(.admin-wide) #view-inicio>.view-head .review-notification-trigger{
    width:40px;
    height:40px;
    border:1px solid rgba(11,42,92,.1);
    border-radius:12px;
    color:#fff;
    background:var(--navy);
    box-shadow:0 7px 18px rgba(11,42,92,.14);
  }
  .portal:not(.admin-wide) #view-inicio>.view-head .review-notification-trigger:hover{background:var(--blue)}
  .portal:not(.admin-wide)[data-view="inicio"] .time-ambience-orb{display:none}
  .portal:not(.admin-wide) .today-layout .day-card{
    grid-template-areas:"schedule action" "close close" "progress progress";
  }
  .portal:not(.admin-wide) .today-layout .day-card.has-daily-close{
    grid-template-areas:"schedule close" "progress progress";
  }
  .portal:not(.admin-wide) .today-layout .progress-card{
    grid-template-columns:112px minmax(150px,.48fr) minmax(320px,1.52fr);
    gap:28px;
    padding:18px 28px;
  }
  .portal:not(.admin-wide) .today-layout .progress-card .hours-ring{width:112px;height:112px}
  .portal:not(.admin-wide) .today-layout .progress-card .summary-copy{
    align-self:center;
    padding-right:4px;
  }
  .portal:not(.admin-wide) .today-layout .progress-card .summary-copy .eyebrow{margin-bottom:8px}
  .portal:not(.admin-wide) .today-layout .progress-card .hours-rate{font-size:15px;line-height:1.25}
  .portal:not(.admin-wide) .today-layout .hours-progress-map{
    min-width:0;
    align-self:center;
    padding:10px 0;
  }
  .portal:not(.admin-wide) .today-layout .hours-progress-map>header{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
  }
  .portal:not(.admin-wide) .today-layout .hours-progress-map>header span:last-child{text-align:right}
  .portal:not(.admin-wide) .today-layout .hours-progress-map small,
  .portal:not(.admin-wide) .today-layout .hours-progress-map b{display:block}
  .portal:not(.admin-wide) .today-layout .hours-progress-map small{
    color:#74869b;
    font-size:8px;
    font-weight:800;
    letter-spacing:.09em;
  }
  .portal:not(.admin-wide) .today-layout .hours-progress-map b{
    margin-top:4px;
    color:#173b63;
    font-size:13px;
    font-variant-numeric:tabular-nums;
  }
  .portal:not(.admin-wide) .today-layout .hours-progress-map .progress-track{
    height:9px;
    margin-top:14px;
    background:rgba(255,255,255,.64);
    box-shadow:inset 0 1px 2px rgba(11,42,92,.07);
  }
  .portal:not(.admin-wide) .today-layout .hours-progress-map .progress-track i{
    width:100%;
    background:linear-gradient(90deg,#5a47ed,#5b8ff1);
    transform-origin:left center;
  }
  .portal:not(.admin-wide) .today-layout .hours-progress-map>p{
    margin:8px 0 0;
    color:#65788e;
    font-size:9px;
    font-weight:600;
    line-height:1.4;
  }
}

@media(max-width:900px){
  .today-layout .hours-progress-map{grid-column:1/-1}
}

.admin-close-status-pill.justificado{color:#245c96;background:#e8f1fb}

/* Navegación lateral de escritorio: modo compacto con rail personal expandido. */
#sidebar .sidebar-icon{stroke-linecap:round;stroke-linejoin:round}
#sidebar .sidebar-icon .icon-tone{fill:currentColor;fill-opacity:.15;stroke:none}
#sidebar .sidebar-icon .icon-solid{fill:currentColor;stroke:none}
#sidebar .sidebar-icon .icon-accent{stroke:var(--sidebar-accent,#bd1769)}
#sidebar .active .sidebar-icon .icon-tone{fill-opacity:.23}
#sidebar .active .sidebar-icon .icon-accent{stroke:currentColor}
#portal #sidebar .side-nav button svg.sidebar-icon{width:22px;height:22px;flex:0 0 22px;margin-inline:-1px;stroke-width:1.65}
.sidebar-collapse-toggle{
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  margin-left:auto;
  padding:0;
  border:1px solid rgba(255,255,255,.16);
  border-radius:9px;
  color:inherit;
  background:rgba(255,255,255,.08);
  transition:transform 180ms ease,background-color 180ms ease,border-color 180ms ease;
}
.sidebar-collapse-toggle:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.28)}
.sidebar-collapse-toggle:focus-visible{outline:3px solid rgba(109,215,216,.72);outline-offset:2px}
.sidebar-toggle-icon{width:17px;height:17px;transition:transform 180ms ease}
.sidebar-tooltip{
  position:fixed;
  z-index:1200;
  max-width:230px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:8px;
  color:#fff;
  background:#071a36;
  box-shadow:0 10px 24px rgba(5,20,42,.22);
  font-size:11px;
  line-height:1.3;
  pointer-events:none;
  white-space:nowrap;
}

@media (max-width:1280px){
  .sidebar-collapse-toggle{display:none!important}
  .sidebar-tooltip{display:none!important}
}

/* La columna reserva el panel y su margen. El ancho liberado al colapsar
   pasa al rail derecho: la jornada conserva el ancho que tenía con el menú abierto.
   Izquierda + derecha = 630px en ambos estados y durante la transición. */
@media (min-width:1281px){
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]){
    --sidebar-width:220px;
    --sidebar-copy-opacity:1;
    --sidebar-copy-shift:0px;
    --sidebar-copy-delay:90ms;
    --sidebar-duration:300ms;
    --sidebar-icon-inset:18px;
    --sidebar-avatar-shift:0px;
    grid-template-columns:calc(var(--sidebar-width) + 16px) minmax(0,1fr) calc(614px - var(--sidebar-width));
    transition:grid-template-columns var(--sidebar-duration) cubic-bezier(.22,1,.36,1);
  }
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"])[data-sidebar-collapsed="true"]{
    --sidebar-width:88px;
    --sidebar-copy-opacity:0;
    --sidebar-copy-shift:-6px;
    --sidebar-copy-delay:0ms;
    --sidebar-duration:220ms;
    --sidebar-icon-inset:13px;
    --sidebar-avatar-shift:10px;
  }
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar{
    width:auto;
    min-width:0;
    padding:20px 14px 16px;
    overflow-x:hidden;
    scrollbar-width:none;
    transition:none;
  }
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar::-webkit-scrollbar{display:none}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-brand{
    position:relative;
    flex:0 0 68px;
    width:190px;
    height:68px;
    padding:0;
    gap:10px;
    white-space:nowrap;
  }
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-brand img{position:absolute;left:10px;top:0;width:38px;height:38px;flex:0 0 38px;border-radius:13px}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-brand>.sidebar-label{position:absolute;left:58px;top:9px;font-size:15px;letter-spacing:-.025em}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .sidebar-collapse-toggle{
    position:absolute;right:0;top:3px;width:32px;height:32px;margin:0;border-radius:10px;
    background:rgba(255,255,255,.42);color:#526878;
    transition:transform var(--sidebar-duration) cubic-bezier(.22,1,.36,1),background-color 150ms ease;
  }
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .sidebar-collapse-toggle:hover{background:rgba(255,255,255,.85);color:#203248}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"])[data-sidebar-collapsed="true"] #sidebar .sidebar-collapse-toggle{transform:translate(-145px,39px)}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"])[data-sidebar-collapsed="true"] .sidebar-toggle-icon{transform:rotate(180deg)}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-nav{flex:0 0 auto;width:100%;min-width:0;grid-template-columns:minmax(0,1fr);gap:6px;margin-top:8px}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-nav-divider{position:relative;display:block;white-space:nowrap;margin:20px 19px 4px;font-size:10px;font-weight:600;letter-spacing:.06em;line-height:16px}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-nav-divider.personal{margin-top:0}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"])[data-sidebar-collapsed="true"] #sidebar .side-nav-divider:not(.personal){opacity:1;transform:none;color:transparent}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-nav-divider:not(.personal)::after{content:'';position:absolute;left:0;top:7px;width:20px;height:1px;background:rgba(82,104,120,.22);opacity:calc(1 - var(--sidebar-copy-opacity));transition:opacity 130ms ease}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-nav button{
    width:100%;
    min-width:0;
    height:48px;
    min-height:48px;
    margin-inline:auto;
    border-radius:14px;
    justify-content:flex-start;
    gap:13px;
    padding-inline:var(--sidebar-icon-inset);
    white-space:nowrap;
    overflow:hidden;
    transition:width var(--sidebar-duration) cubic-bezier(.22,1,.36,1),padding var(--sidebar-duration) cubic-bezier(.22,1,.36,1),color 150ms ease,background-color 150ms ease;
  }
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"])[data-sidebar-collapsed="true"] #sidebar .side-nav button{width:calc(100% - 10px)}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-nav button svg{width:20px;height:20px;flex:0 0 20px;color:var(--sidebar-blue)!important;stroke-width:1.7}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-nav button:hover{background:var(--sidebar-hover)!important;color:var(--sidebar-blue)!important}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-nav button.active{background:var(--sidebar-blue)!important;color:#fff!important;border-color:transparent!important;box-shadow:0 4px 12px rgba(0,79,176,.14)!important;font-weight:600}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-nav button.active svg{color:#fff!important}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-nav button:focus-visible{outline:2px solid var(--sidebar-accent);outline-offset:2px}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-nav button .sidebar-label{position:absolute;left:52px;top:50%;translate:0 -50%}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar :is(.sidebar-label,.side-user-copy,.side-nav-divider){
    opacity:var(--sidebar-copy-opacity);
    transform:translateX(var(--sidebar-copy-shift));
    white-space:nowrap;
    flex-shrink:0;
    transition:opacity 130ms ease var(--sidebar-copy-delay),transform 200ms cubic-bezier(.22,1,.36,1) var(--sidebar-copy-delay);
  }
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-help{
    position:relative;flex:0 0 84px;width:100%;min-width:0;height:84px;padding:16px;
    transition:background-color 150ms ease,border-color 150ms ease;
  }
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-help-heading{position:absolute;left:16px;top:16px;display:flex;gap:8px;margin-bottom:10px;transition:transform var(--sidebar-duration) cubic-bezier(.22,1,.36,1)}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"])[data-sidebar-collapsed="true"] #sidebar .side-help-heading{transform:translateX(2px)}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-help-heading svg{width:20px;height:20px;flex:none}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-help>a{position:absolute;inset:0;display:block;padding:46px 16px 0}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-help>a svg{position:absolute;right:16px;top:47px;opacity:var(--sidebar-copy-opacity);transition:opacity 130ms ease}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"])[data-sidebar-collapsed="true"] #sidebar .side-help{background:transparent!important;border-color:transparent!important;box-shadow:none!important}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-user{
    position:relative;flex:0 0 92px;width:100%;min-width:0;height:92px;
    grid-template-columns:38px minmax(0,1fr) 30px;align-items:start;gap:9px;
  }
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-user .avatar{width:38px;height:38px;transform:translateX(var(--sidebar-avatar-shift));transition:transform var(--sidebar-duration) cubic-bezier(.22,1,.36,1)}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-user-copy{position:absolute;left:47px;top:18px;width:104px;padding-top:3px}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-user button{position:absolute;left:calc(100% - 30px);top:18px;transition:left var(--sidebar-duration) cubic-bezier(.22,1,.36,1),top var(--sidebar-duration) cubic-bezier(.22,1,.36,1),color 150ms ease}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"])[data-sidebar-collapsed="true"] #sidebar .side-user button{left:calc(50% - 15px);top:60px}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) .rail-calendar-space{flex:0 0 160px;min-height:160px;margin-top:12px}
}
@media (min-width:1281px) and (prefers-reduced-motion:reduce){
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]),
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar,
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar :is(button,.avatar,.side-help-heading,.sidebar-label,.side-user-copy,.side-nav-divider,.sidebar-toggle-icon){transition:none}
}

/* En escritorio el perfil y la ayuda viven en Mi espacio. El pie izquierdo
   conserva una sola acción; en móvil se mantiene el acceso dentro del menú. */
.rail-profile-support{display:none}
@media (min-width:901px){
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar :is(.side-help,.side-user-copy,.side-user>.avatar){display:none}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-user{display:flex;justify-content:flex-start;align-items:center;flex:0 0 auto;width:100%;min-width:0;height:auto;margin-top:auto;padding-top:16px;gap:0}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar #logout{position:relative;inset:auto;transform:none;display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:12px;margin:0 0 0 7px;border:1px solid transparent;border-radius:13px;transition:background-color 160ms ease,color 160ms ease,border-color 160ms ease}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar #logout:is(:hover,:focus-visible){background:var(--sidebar-hover);color:var(--sidebar-blue);border-color:#cbdced}
  #portal #logout svg{width:20px;height:20px;transition:transform 160ms ease}
  #portal #logout:is(:hover,:focus-visible) svg{transform:translateX(2px)}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #logout::after{content:'Cerrar sesión';position:absolute;left:46px;white-space:nowrap;font-size:12px;font-weight:600;opacity:var(--sidebar-copy-opacity,1);pointer-events:none;transition:opacity 130ms ease}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) .rail-profile{
    container:personal-profile / inline-size;
    display:grid;grid-template-columns:56px minmax(0,1fr);
    column-gap:12px;align-items:center;text-align:left;
  }
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) .rail-profile .rail-title{grid-column:1/-1;margin-bottom:6px}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) .rail-profile .rail-title>span{font:600 11px/1.4 Inter,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#526878}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) .rail-profile .rail-title button{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.55);box-shadow:none}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) .rail-profile #rail-avatar{
    grid-column:1;grid-row:2/5;width:100%;height:auto;aspect-ratio:1;margin:0;
    align-self:center;border:2px solid rgba(255,255,255,.85);border-radius:14px;
    box-shadow:0 4px 12px rgba(24,53,70,.08);font-size:18px;
  }
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) .rail-profile #rail-name{
    grid-column:2;grid-row:3;margin:2px 0;
    font:600 16px/1.3 Inter,system-ui,sans-serif;
    letter-spacing:-.025em;text-wrap:balance;overflow-wrap:anywhere;
  }
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) .rail-profile #rail-area{grid-column:2;grid-row:4;margin:0;font-size:11px;line-height:1.4;color:#526878}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) .rail-profile #rail-role{grid-column:2;grid-row:2;justify-self:start;margin:0;padding:0;border:0;background:transparent;color:#227365;font-size:11px;font-weight:600;line-height:1.5}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) .rail-profile-support{
    grid-column:1/-1;justify-self:start;display:inline-flex;align-items:center;gap:9px;
    min-height:32px;max-width:100%;margin-top:6px;padding:0 8px 0 0;
    border:0;border-radius:12px;background:transparent;color:#526878;text-align:left;text-decoration:none;
    transition:color 150ms ease,background-color 150ms ease;
  }
  .rail-profile-support>span{min-width:0;font-size:12px;font-weight:500;line-height:1.5}
  .rail-profile-support svg{flex:0 0 16px;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .rail-profile-support>svg:first-child{box-sizing:content-box;padding:6px;border-radius:50%;background:rgba(255,255,255,.6)}
  #portal .rail-profile-support:hover{background:rgba(255,255,255,.3);color:#173f5b}
  #portal .rail-profile-support:focus-visible,#portal .rail-profile .rail-title button:focus-visible{outline:2px solid #075abc;outline-offset:3px}
}
@container personal-profile (max-width:280px){
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) .rail-profile #rail-avatar{border-radius:18px}
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) .rail-profile-support{gap:6px}
}
@media(prefers-reduced-motion:reduce){#portal #logout,#portal #logout svg,#portal #logout::after,#portal #sidebar .side-nav-divider::after,#portal .rail-profile-support{transition:none!important}#portal #logout:is(:hover,:focus-visible) svg{transform:none}}

/* La columna ampliada muestra las posturas y ambos comunicados completos. */
.rail-pausa-character{display:block;width:100%;height:100%;flex:none}
.rail-pausa-extra,.rail-announcement-gallery{display:none}
.rail-announcement-tile{display:flex;flex-direction:column;min-width:0;gap:8px;padding:8px;border:1px solid rgba(43,76,113,.12);border-radius:14px;background:#fff;color:#20364f;text-align:left;cursor:zoom-in}
.rail-announcement-tile>img{display:block;width:100%;height:clamp(190px,32dvh,330px);object-fit:contain;border-radius:8px;background:#fff}
.rail-announcement-tile>img[hidden]{display:none}
.rail-announcement-tile>span{display:block;min-height:36px;padding:0 3px;font-size:11px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}
.rail-announcement-tile:hover{border-color:#8fa7b6;background:#f8fafb}
@media (min-width:1281px){
  #portal[data-personal="true"][data-sidebar-collapsed="true"]:not(.admin-wide):not([data-view="marketing"]) #rail-pausa-open{grid-template-columns:minmax(0,1fr) 188px;column-gap:8px}
  #portal[data-personal="true"][data-sidebar-collapsed="true"]:not(.admin-wide):not([data-view="marketing"]) .rail-pausa-figure{display:flex;align-items:center;gap:4px;width:188px;height:78px}
  #portal[data-personal="true"][data-sidebar-collapsed="true"]:not(.admin-wide):not([data-view="marketing"]) .rail-pausa-character{display:block;width:60px;height:74px}
  #portal[data-personal="true"][data-sidebar-collapsed="true"]:not(.admin-wide):not([data-view="marketing"]) #rail-announcement-carousel{display:none}
  #portal[data-personal="true"][data-sidebar-collapsed="true"]:not(.admin-wide):not([data-view="marketing"]) #rail-announcement-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:12px}
}

/* Razones del calendario: fuera del contenedor desplazable para evitar recortes. */
.dashboard-day-tooltip {
  position:fixed;
  z-index:1200;
  width:max-content;
  max-width:min(310px,calc(100vw - 16px));
  padding:12px 15px;
  border-radius:12px;
  background:#09244c;
  color:#fff;
  box-shadow:0 8px 24px rgba(6,26,56,.2);
  font-size:13px;
  line-height:1.5;
  overflow-wrap:anywhere;
}
.dashboard-day-tooltip[hidden]{display:none}
.dashboard-month-day{font-family:inherit;cursor:help;padding:0}
.dashboard-month-day:focus-visible{outline:3px solid #075abc;outline-offset:2px}
.portal:not(.admin-wide) #view-inicio>.view-head .dashboard-month-day.sharing-pending{
  color:#80530b;background:#fff1cf;border-color:#e0bf7a;opacity:1;
}
@media(max-width:900px){
  .dashboard-month-progress{min-width:0;max-width:100%;margin-top:12px}
  .dashboard-month-days{display:flex;gap:6px;overflow-x:auto;padding:5px 3px}
  .dashboard-month-day{position:relative;flex:0 0 38px;min-height:44px;display:grid;place-content:center;gap:2px;border:1px solid #dce4ed;border-radius:10px;background:#f3f6fa;color:#54657a}
  .dashboard-month-day b{font-size:12px}
  .dashboard-month-day small{font-size:9px}
  .dashboard-month-day.p{background:#e0f5ef;color:#176f5c}
  .dashboard-month-day.t,.dashboard-month-day.sharing-pending{background:#fff1cf;color:#80530b}
  .dashboard-month-day.j{background:#e8effa;color:#476caa}
  .dashboard-month-day.future{opacity:.55}
  .dashboard-month-day.today{border:2px solid #075abc}
  .dashboard-month-day.incomplete,.dashboard-month-day.ng{background:#ffdee5;color:#9f2f47;border-color:#c23b50}
  .dashboard-month-day em{position:absolute;top:1px;right:3px;font-size:10px;font-style:normal;font-weight:800}
}

/* Entrada delegada: datos y evidencia en una sola mesa de trabajo. */
body.admin-entry-open{overflow:hidden}
#admin-list-section .admin-list-toolbar,#admin-list-section .admin-list-filters{flex-wrap:wrap}
#admin-entry-open{grid-column:1/-1;min-height:44px;height:auto;padding-block:10px;white-space:normal;text-align:left}
.admin-entry-modal{z-index:440;padding:24px}
.admin-entry-dialog{position:relative;z-index:1;box-sizing:border-box;width:min(940px,100%);max-height:calc(100dvh - 48px);display:flex;flex-direction:column;overflow:hidden;border-radius:16px;background:#fff;color:#15243a;text-align:left;box-shadow:0 24px 80px rgba(6,26,56,.24)}
.admin-entry-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-shrink:0;padding:24px 28px;border-bottom:1px solid #e3e8ee}
.admin-entry-heading{min-width:0}
.admin-entry-dialog h2{margin:0;color:#09244c;font-size:24px;line-height:1.25;letter-spacing:-.025em;overflow-wrap:anywhere}
.admin-entry-dialog #admin-entry-copy{max-width:60ch;margin:8px 0 0;color:#506278;font-size:14px;line-height:1.5}
.admin-entry-dialog .modal-close{position:static;flex-shrink:0;width:40px;height:40px;border-radius:10px;background:#f6f8fb;color:#506278}
#admin-entry-form{display:flex;flex-direction:column;min-height:0;overflow:hidden;margin:0}
#admin-entry-fields{min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bac7d5 transparent;margin:0;padding:0;border:0}
.admin-entry-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.admin-entry-details,.admin-entry-evidence{min-width:0;padding:24px 28px}
.admin-entry-evidence{background:#f8fafc;border-left:1px solid #e3e8ee}
.admin-entry-dialog h3{margin:0 0 18px;color:#09244c;font-size:16px;line-height:1.4;font-weight:700}
.admin-entry-dialog label{display:grid;gap:7px;margin-top:16px;font-size:13px;line-height:1.45;font-weight:700}
.admin-entry-dialog input,.admin-entry-dialog select,.admin-entry-dialog textarea{box-sizing:border-box;width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#15243a;font:inherit;font-size:14px;line-height:1.5;caret-color:#075abc;transition:border-color .15s}
.admin-entry-dialog input:hover,.admin-entry-dialog select:hover,.admin-entry-dialog textarea:hover{border-color:#8b9fb5}
.admin-entry-dialog textarea::placeholder{color:#607087;font-weight:400}
.admin-entry-dialog :is(input,select,textarea,button):focus-visible{outline:2px solid #075abc;outline-offset:3px}
.admin-entry-dialog textarea{resize:vertical;min-height:90px}
.admin-entry-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.admin-entry-dialog .admin-entry-help,.admin-entry-dialog small{display:block;margin:10px 0 0;color:#506278;font-size:13px;line-height:1.55;font-weight:400}
.admin-entry-evidence>.admin-entry-help{margin-top:-8px;margin-bottom:16px}
.admin-entry-dialog .admin-entry-picker{position:relative;min-height:230px;display:grid;place-items:center;overflow:hidden;margin:0;border:1px dashed #9aaec2;border-radius:12px;background:#fff;cursor:pointer;transition:border-color .15s,background .15s}
.admin-entry-picker:hover{border-color:#075abc;background:#f0f6fc}
.admin-entry-picker:focus-within{outline:2px solid #075abc;outline-offset:3px}
.admin-entry-dialog .admin-entry-picker input{position:absolute;z-index:3;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.admin-entry-empty{display:flex;align-items:center;flex-direction:column;gap:10px;padding:26px 18px;text-align:center;color:#075abc}
.admin-entry-empty svg{width:36px;height:36px;fill:none;stroke:currentColor;stroke-width:1.4}
.admin-entry-empty b{font-size:14px}.admin-entry-empty>span{color:#506278;font-size:12px;font-weight:400}
#admin-entry-preview{display:block;width:100%;height:270px;padding:12px 12px 48px;box-sizing:border-box;object-fit:contain;background:#edf1f5}
.admin-entry-image-action{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);padding:6px 14px;border:1px solid #d1dce7;border-radius:8px;background:#fff;color:#075abc;font-size:13px;white-space:nowrap}
.admin-entry-picker [hidden]{display:none!important}
.admin-entry-picker[data-ready="true"]{border-style:solid;border-color:#cbd5e1}
.admin-entry-file-status{margin:10px 0 0;color:#176653;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.admin-entry-file-status:empty{display:none}
.admin-entry-audit{display:flex;align-items:flex-start;gap:10px;margin:22px 0 0;padding-top:18px;border-top:1px solid #e3e8ee;color:#506278;font-size:12px;line-height:1.6}
.admin-entry-audit svg{flex:0 0 20px;width:20px;height:20px;fill:none;stroke:#176653;stroke-width:1.5}
#admin-entry-message{flex-shrink:0;max-height:110px;overflow:auto;margin:0;padding:12px 28px;background:#fff3df;color:#75450d;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
#admin-entry-message:empty{display:none}
.admin-entry-dialog footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-shrink:0;margin:0;padding:16px 28px;border-top:1px solid #e3e8ee;background:#fff}
.admin-entry-footer-note{margin-right:auto;color:#506278;font-size:12px}
.admin-entry-dialog footer button{min-height:44px;padding:10px 18px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#344b65;font:700 13px/1.4 Inter,system-ui,sans-serif;cursor:pointer}
.admin-entry-dialog footer #admin-entry-submit{background:#075abc;color:#fff;border-color:#075abc}
.admin-entry-dialog footer #admin-entry-submit:hover:not(:disabled){background:#064b9c}
.admin-entry-dialog footer .admin-evidence-cancel:hover:not(:disabled){background:#f6f8fb}
.admin-entry-dialog button:disabled{opacity:.5;cursor:not-allowed}
.admin-entry-dialog fieldset:disabled{opacity:.75}
.admin-entry-dialog ::selection{background:#d9eaff;color:#09244c}
@media(max-width:720px){
 .admin-entry-modal{padding:12px}.admin-entry-dialog{max-height:calc(100dvh - 24px)}
 .admin-entry-layout{grid-template-columns:1fr}.admin-entry-evidence{border-left:0;border-top:1px solid #e3e8ee}
 .admin-entry-dialog>header,.admin-entry-details,.admin-entry-evidence{padding:20px}
 .admin-entry-dialog h2{font-size:20px}.admin-entry-dialog input,.admin-entry-dialog select,.admin-entry-dialog textarea{font-size:16px}
 .admin-entry-dialog footer{padding:12px 20px max(12px,env(safe-area-inset-bottom))}.admin-entry-footer-note{display:none}
 .admin-entry-dialog footer #admin-entry-submit{flex:1}#admin-entry-message{padding:12px 20px}
 .admin-entry-dialog .admin-entry-picker{min-height:170px}#admin-entry-preview{height:240px}
}
@media(max-width:380px){.admin-entry-row{grid-template-columns:1fr;gap:0}.admin-entry-dialog footer{gap:8px;padding-inline:14px}}

/* Tablet y monitores compactos: conserva la distribución de tres columnas.
   La columna personal prioriza perfil, pausas y comunicados; el resumen de
   horas queda al final y puede desplazarse en pantallas de poca altura. */
@media (min-width:901px) and (max-width:1280px){
  .portal:not(.admin-wide){
    grid-template-columns:clamp(190px,22vw,224px) minmax(0,1fr) clamp(220px,28vw,330px);
    grid-template-rows:minmax(0,1fr);
  }
  .portal:not(.admin-wide)>.sidebar{grid-column:1;grid-row:1}
  .portal:not(.admin-wide)>.workspace{
    grid-column:2;
    grid-row:1;
    min-height:0;
    padding-inline:clamp(16px,2vw,26px);
  }
  .portal:not(.admin-wide)>.portal-rail{
    display:grid;
    grid-column:3;
    grid-row:1;
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:max-content max-content minmax(220px,1fr);
    align-content:stretch;
    gap:12px;
    min-height:0;
    padding:18px 14px 100px;
    overflow-y:auto;
    scroll-padding-bottom:100px;
    overscroll-behavior:contain;
  }
  .portal:not(.admin-wide)>.portal-rail>:is(.rail-calendar,.rail-schedule){display:none}
  .portal:not(.admin-wide)>.portal-rail>.rail-profile{grid-row:1}
  .portal:not(.admin-wide)>.portal-rail>.rail-pausa-activa{grid-row:2}
  .portal:not(.admin-wide)>.portal-rail>.rail-announcement{grid-row:3}
  .portal:not(.admin-wide)>.portal-rail>:is(.rail-pausa-activa,.rail-announcement){
    min-width:0;
    margin:0;
  }
  .portal:not(.admin-wide)>.portal-rail .rail-profile .rail-avatar{
    width:58px;
    height:58px;
    margin:10px auto 8px;
  }
  .portal:not(.admin-wide)>.portal-rail .rail-profile h2{font-size:13px}
  .portal:not(.admin-wide)>.portal-rail .rail-pausa-activa{display:flex;flex-direction:column;gap:8px}
  .portal:not(.admin-wide)>.portal-rail .rail-pausa-card{flex:0 0 auto;min-height:160px;padding:10px 12px 9px}
  .portal:not(.admin-wide)>.portal-rail .rail-pausa-info b{font-size:clamp(17px,1.7vw,21px)}
  .portal:not(.admin-wide)>.portal-rail .rail-pausa-figure{width:48px;height:52px}
  .portal:not(.admin-wide)>.portal-rail .rail-pausa-footer{margin-top:6px;padding-top:6px}
  .portal:not(.admin-wide)>.portal-rail .rail-announcement{display:flex;flex-direction:column;min-height:220px;overflow:hidden}
  .portal:not(.admin-wide)>.portal-rail .rail-announcement-carousel{display:flex;flex:1;min-height:0;flex-direction:column}
  .portal:not(.admin-wide)>.portal-rail .rail-announcement-media{flex:1;min-height:0;padding:6px}
  .portal:not(.admin-wide)>.portal-rail .rail-announcement-media>img{
    width:100%;
    height:clamp(110px,20dvh,210px);
    min-height:0;
    object-fit:contain;
  }
  .portal:not(.admin-wide)>.portal-rail .rail-announcement-controls{flex-shrink:0}
  .portal:not(.admin-wide)>.portal-rail .rail-insight{padding:12px 14px}
}

/* Personal navigation label remains visible in narrow desktop windows. */
@media (min-width:901px){
  #portal[data-personal="true"]:not(.admin-wide):not([data-view="marketing"]) #sidebar .side-nav-divider.personal{
    display:flex;
    align-items:center;
    min-height:26px;
    margin:4px 10px 8px;
    padding:0 10px;
    border-left:3px solid var(--sidebar-blue,#075abc);
    border-radius:8px;
    color:var(--sidebar-blue,#075abc)!important;
    background:rgba(7,90,188,.1);
    font-size:11px!important;
    font-weight:800!important;
    letter-spacing:.1em!important;
    line-height:1!important;
  }
}
