:root{
  --bg:#f7f0e5;
  --card:#fffdf9;
  --text:#40241e;
  --muted:#7a665e;
  --line:#e5d9ca;
  --brown:#4a2a22;
  --brown-2:#60382f;
  --turquoise:#14b8c8;
  --turquoise-soft:#dff7f8;
  --sand:#efe3d2;
  --soft:#f4eadc;
  --danger:#9d3a32;
  --radius:20px;
  --shadow:0 16px 42px rgba(74,42,34,.10);
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;min-height:100vh;background:linear-gradient(180deg,#fbf6ee 0%,#f4eadc 100%);color:var(--text);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body:before{content:"";position:fixed;inset:auto 0 0;height:180px;pointer-events:none;opacity:.6;background:linear-gradient(150deg,transparent 0 10%,rgba(74,42,34,.035) 10% 20%,transparent 20% 30%,rgba(20,184,200,.03) 30% 38%,transparent 38%)}
.shell{max-width:980px;margin:0 auto;padding:24px;position:relative;z-index:1}.hidden{display:none!important}.muted{color:var(--muted)}.center{text-align:center}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.16em;color:var(--turquoise);text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.02em}button,input,select{font:inherit}.brand-logo{display:block;object-fit:contain}.brand-logo-login{width:min(310px,82%);height:auto;margin:0 auto}.brand-logo-header{width:122px;height:74px}.brand-surface{position:relative;overflow:hidden}
.auth-card{max-width:470px;margin:5vh auto;background:rgba(255,253,249,.97);padding:28px 30px 24px;border:1px solid var(--line);border-radius:30px;box-shadow:var(--shadow)}
.auth-card:before,.auth-card:after{content:"";position:absolute;left:-10%;right:-10%;height:120px;border-radius:50%;background:rgba(74,42,34,.035);transform:rotate(-5deg);pointer-events:none}.auth-card:before{top:185px}.auth-card:after{bottom:-65px;background:rgba(20,184,200,.045);transform:rotate(6deg)}.brand-hero,.auth-copy,.segmented,.stack,.auth-footer{position:relative;z-index:2}.brand-hero{padding:2px 0 14px}.auth-copy{text-align:center;margin-bottom:20px}.auth-copy h1{font-size:28px;margin:7px 0 7px}.auth-copy p{line-height:1.55;margin-bottom:0}
.segmented{display:grid;grid-template-columns:1fr 1fr;background:var(--soft);border:1px solid #eadcca;border-radius:14px;padding:4px;margin:20px 0}.segmented button,.admin-tabs button{border:0;background:transparent;padding:11px 12px;border-radius:10px;color:var(--muted);font-weight:700}.segmented .active,.admin-tabs .active{background:var(--card);color:var(--brown);box-shadow:0 3px 10px rgba(74,42,34,.08)}
.stack{display:grid;gap:14px}label{font-size:13px;font-weight:700;display:grid;gap:7px;color:var(--brown)}input,select{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#fffdfa;color:var(--text);outline:none;transition:.18s ease}input:focus,select:focus{border-color:var(--turquoise);box-shadow:0 0 0 3px rgba(20,184,200,.12)}button{cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}button:active{transform:translateY(1px)}.primary,.secondary{border:0;border-radius:12px;padding:13px 16px;font-weight:800}.primary{background:linear-gradient(135deg,var(--brown),var(--brown-2));color:#fff;box-shadow:0 8px 18px rgba(74,42,34,.16)}.primary:hover{box-shadow:0 10px 22px rgba(74,42,34,.22)}.secondary{background:var(--turquoise-soft);color:#087f8b}.link-btn{border:0;background:none;color:var(--brown);text-decoration:none;font-weight:700}.hint{font-size:12px;color:var(--muted);line-height:1.5}.auth-footer{text-align:center;margin-top:22px;padding-top:18px;border-top:1px solid var(--line);font-size:10px;font-weight:800;letter-spacing:.24em;color:var(--brown)}
.app-frame{padding-bottom:18px}.topbar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.brand-header{background:rgba(255,253,249,.94);border:1px solid var(--line);border-radius:24px;padding:14px 16px;box-shadow:0 9px 28px rgba(74,42,34,.07);backdrop-filter:blur(8px)}.brand-inline{display:flex;align-items:center;gap:16px;min-width:0}.header-copy{min-width:0}.topbar h2{margin:5px 0 7px;font-size:25px}.badge{display:inline-block;padding:5px 10px;border-radius:999px;background:var(--turquoise-soft);color:#087f8b;font-size:12px;font-weight:800}.icon-btn{border:1px solid var(--line);background:#fffdfa;color:var(--brown);border-radius:11px;padding:9px 12px;font-weight:700}.logout-btn{margin-top:7px}.week-card,.panel-card{background:rgba(255,253,249,.96);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:20px;box-shadow:0 8px 24px rgba(74,42,34,.05)}.week-nav{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}.week-nav small{display:block;color:var(--muted);margin-bottom:4px}.week-nav strong{font-size:16px}.week-arrow{width:42px;height:42px;padding:0;font-size:28px;display:grid;place-items:center;color:var(--brown)}.section-title{display:flex;align-items:center;justify-content:space-between;margin:22px 0 10px}.section-title h3{margin:0;font-size:20px}
.shift-list,.people-list,.admin-shifts{display:grid;gap:10px}.shift-card,.person-card,.admin-row{background:rgba(255,253,249,.98);border:1px solid var(--line);border-radius:15px;padding:14px;box-shadow:0 5px 18px rgba(74,42,34,.035)}.shift-card{display:grid;grid-template-columns:80px 1fr;gap:14px;align-items:center;border-left:4px solid var(--turquoise)}.day-box{border-right:1px solid var(--line);padding-right:12px}.day-box strong{display:block;font-size:28px;color:var(--brown)}.day-box span{font-size:12px;color:var(--muted);text-transform:uppercase;font-weight:700}.shift-time{font-size:17px;font-weight:800;color:#087f8b}.shift-note{margin-top:5px;font-size:13px;color:var(--muted)}.empty{padding:30px;text-align:center;border:1px dashed #cebda9;border-radius:15px;color:var(--muted);background:rgba(255,253,249,.55)}.readonly-note{display:flex;gap:11px;align-items:flex-start;margin-top:14px;padding:14px 15px;border-radius:14px;background:var(--turquoise-soft);color:#24636a;font-size:13px;line-height:1.45}.info-dot{width:23px;height:23px;border:2px solid var(--turquoise);border-radius:50%;display:grid;place-items:center;font-weight:900;color:#087f8b;flex:0 0 auto}
.admin-intro{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:26px}.admin-intro h3{margin:5px 0 0}.admin-chip{font-size:11px;font-weight:800;color:#087f8b;background:var(--turquoise-soft);padding:7px 10px;border-radius:999px;white-space:nowrap}.admin-tabs{display:flex;gap:5px;background:var(--soft);border:1px solid #eadcca;border-radius:14px;padding:4px;width:max-content;max-width:100%;margin:18px 0}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.admin-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.admin-row .meta{font-size:13px;color:var(--muted);margin-top:4px}.row-actions{display:flex;gap:7px}.row-actions button{border:1px solid var(--line);background:#fffdfa;color:var(--brown);border-radius:9px;padding:8px}.row-actions .danger{color:var(--danger)}.notice{padding:13px 15px;border:1px solid #e0c482;background:#fff5d8;color:#735619;border-radius:13px;margin-bottom:16px}.file-drop{border:1px dashed #c5ab91;padding:22px;border-radius:15px;text-align:center;cursor:pointer;background:#fffaf3}.file-drop input{margin-top:10px}.preview{margin:12px 0;max-height:260px;overflow:auto}.preview table{width:100%;border-collapse:collapse;font-size:12px}.preview th,.preview td{border-bottom:1px solid var(--line);padding:8px;text-align:left}.person-card{display:flex;align-items:center;justify-content:space-between;gap:12px}.person-info{display:grid;gap:4px}.person-info span{font-size:12px;color:var(--muted)}.person-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.person-actions select{width:auto;min-width:140px;padding:8px 10px}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}.check{display:flex;align-items:center;gap:9px}.check input{width:auto}.toast{position:fixed;z-index:50;left:50%;bottom:24px;transform:translateX(-50%);background:var(--brown);color:#fff;padding:12px 16px;border-radius:12px;box-shadow:0 12px 28px rgba(74,42,34,.28);max-width:min(90vw,520px);text-align:center}dialog{border:0;border-radius:20px;padding:0;background:var(--card);color:var(--text);box-shadow:0 20px 60px rgba(74,42,34,.25);width:min(92vw,480px)}dialog::backdrop{background:rgba(38,20,16,.45);backdrop-filter:blur(3px)}.dialog-form{padding:22px}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between}.dialog-head h3{margin:5px 0 0}.app-footer{margin-top:32px;padding:18px 12px 6px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:center;gap:14px;color:var(--brown);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;text-align:center}.footer-logo{width:62px;height:42px;object-fit:contain}
@media(max-width:650px){.shell{padding:12px}.auth-card{margin:12px auto;padding:22px 18px 18px;border-radius:24px}.brand-logo-login{width:min(280px,85%)}.brand-header{padding:11px 12px}.brand-logo-header{width:92px;height:60px}.brand-inline{gap:9px}.header-copy .eyebrow{font-size:9px}.topbar h2{font-size:20px}.logout-btn{padding:8px 9px}.week-card{padding:12px}.shift-card{grid-template-columns:68px 1fr}.day-box strong{font-size:25px}.admin-tabs{width:100%;display:grid;grid-template-columns:1fr 1.15fr 1fr}.admin-tabs button{padding:9px 5px;font-size:12px}.admin-intro{align-items:flex-start}.admin-chip{display:none}.admin-row{grid-template-columns:1fr}.row-actions{justify-content:flex-start}.person-card{align-items:flex-start;flex-direction:column}.person-actions{justify-content:flex-start;width:100%}.person-actions select{flex:1}.two-cols{grid-template-columns:1fr}.app-footer{flex-direction:column;gap:5px}.footer-logo{width:70px;height:46px}}
@media(max-width:390px){.brand-logo-header{width:80px}.header-copy .eyebrow{display:none}.topbar h2{font-size:18px}.shift-card{grid-template-columns:62px 1fr;gap:10px}.shift-time{font-size:15px}}
.shift-place{display:inline-flex;margin-top:6px;padding:5px 9px;border-radius:999px;background:var(--soft);color:var(--brown);font-size:12px;font-weight:800}
.alarm-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}.alarm-btn{border:1px solid rgba(20,184,200,.38);background:var(--turquoise-soft);color:#087f8b;border-radius:10px;padding:8px 10px;font-size:12px;font-weight:800}.alarm-btn:hover{box-shadow:0 5px 14px rgba(20,184,200,.12)}
.dialog-form select+input[type="time"]{margin-top:7px}
@media(max-width:650px){.alarm-actions{display:grid;grid-template-columns:1fr 1fr}.alarm-btn{padding:9px 6px;font-size:11px}}
.header-actions{display:flex;gap:8px;align-items:center}.auth-admin-note{margin-top:14px;padding:12px 14px;border:1px solid rgba(74,42,34,.14);border-radius:14px;background:rgba(255,255,255,.52);font-size:.86rem;color:#6a514a}.single-auth{grid-template-columns:1fr!important}.compact-panel{padding:12px 14px;margin-bottom:12px}.initial-password-box{display:flex;align-items:center;justify-content:space-between;padding:13px 15px;border-radius:14px;background:#f4ebe2;border:1px solid rgba(74,42,34,.12)}.initial-password-box strong{font-size:1.25rem;letter-spacing:.08em;color:#4a2a22}@media(max-width:560px){.header-actions{flex-direction:column;gap:5px}.header-actions .icon-btn{padding:7px 9px;font-size:.78rem}}

/* V7 · perfil y alta de turnos */
.header-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.profile-avatar{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;margin:2px auto 8px;background:linear-gradient(145deg,#efe4d8,#f9f5ee);border:1px solid rgba(74,42,34,.12);font-size:34px;box-shadow:0 10px 24px rgba(74,42,34,.08)}
.profile-help{font-size:.86rem;line-height:1.45;margin-top:-2px}
.notice-inline{display:grid;gap:8px;padding:14px;border-radius:16px;background:rgba(30,174,196,.10);border:1px solid rgba(30,174,196,.20);color:#4a2a22}
.notice-inline span{font-size:.9rem;line-height:1.45;color:#6f5a50}
.notice-inline .secondary{justify-self:start}
#saveShiftBtn:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:560px){.header-actions{gap:6px}.header-actions .icon-btn{padding:8px 10px;font-size:.82rem}}

/* V8 · navegación inferior, calendario y acabado visual */
:root{--cream:#fbf6ee;--cream-2:#f4eadf;--brown:#4a2a22;--brown-2:#6a3e31;--turquoise:#16b7c7;--turquoise-dark:#087f8b;--turquoise-soft:#dff7f9;--ink:#33251f;--muted:#7d6c64;--line:#e8d9ca;--soft:#f3e8dc}
body{background:radial-gradient(circle at 15% 12%,rgba(22,183,199,.05),transparent 28%),linear-gradient(180deg,#fdf9f3 0%,#f5eadf 100%)}
.shell{max-width:860px}.app-frame{padding-bottom:90px}.brand-header{position:sticky;top:8px;z-index:15}
.view-switcher{position:sticky;bottom:10px;z-index:14;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:18px 0 16px;padding:7px;background:rgba(74,42,34,.96);border-radius:18px;box-shadow:0 12px 30px rgba(74,42,34,.22);backdrop-filter:blur(10px)}
.view-btn{border:0;background:transparent;color:#eadfd9;border-radius:12px;padding:9px 5px 8px;display:grid;place-items:center;gap:4px;font-size:10px;font-weight:800}.view-btn.active{background:rgba(255,255,255,.11);color:#5ce0ec}.nav-icon{font-size:20px;line-height:1}.view-btn:active{transform:scale(.98)}
.calendar-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;background:rgba(255,253,249,.96);border:1px solid var(--line);border-radius:18px;padding:12px 14px;margin-bottom:12px;box-shadow:0 8px 24px rgba(74,42,34,.05)}.calendar-head small{display:block;color:var(--muted);margin-bottom:3px}.calendar-head strong{font-size:18px;color:var(--brown)}.month-arrow{font-size:26px;width:42px;height:42px;padding:0}
.month-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;background:rgba(255,253,249,.97);border:1px solid var(--line);border-radius:20px;padding:12px;box-shadow:0 8px 24px rgba(74,42,34,.05)}.cal-dow{text-align:center;font-size:10px;font-weight:900;color:var(--muted);padding:4px 0}.cal-day{min-height:72px;border:1px solid #eee2d6;border-radius:12px;background:#fffdfa;padding:8px 6px;display:flex;flex-direction:column;align-items:flex-start;gap:5px}.cal-day.other{opacity:.35}.cal-day.today{outline:2px solid rgba(22,183,199,.28)}.cal-day.has-shift{background:linear-gradient(180deg,#fffdfa 0%,#ecfbfc 100%)}.cal-num{font-weight:900;color:var(--brown)}.cal-dots{display:flex;gap:4px;flex-wrap:wrap}.cal-dot{width:7px;height:7px;border-radius:50%;background:var(--turquoise)}.cal-dot.brown{background:#b45b34}.cal-place{font-size:8px;color:var(--muted);line-height:1.2}.calendar-legend{display:flex;flex-wrap:wrap;gap:14px;padding:12px 4px;color:var(--muted);font-size:11px}.calendar-legend span{display:flex;align-items:center;gap:6px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.dot-turq{background:var(--turquoise)}.dot-brown{background:#b45b34}.dot-gray{background:#cfc9c4}
.alerts-list{display:grid;gap:10px;margin-top:12px}.alert-item{padding:14px;border:1px solid var(--line);border-radius:14px;background:#fffdfa}.alert-item strong{color:var(--brown)}.alert-item p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.45}
.shift-card{background:linear-gradient(90deg,#fffdfa 0%,#f6fcfc 100%)}.shift-time{color:var(--turquoise-dark)}.primary{background:linear-gradient(135deg,#4a2a22,#63382d)}
.dialog-form{background:linear-gradient(180deg,#fffdfa,#fbf4ec)}
@media(max-width:650px){.shell{padding:10px}.brand-header{top:5px}.view-switcher{position:fixed;left:10px;right:10px;bottom:8px;margin:0}.app-frame{padding-bottom:96px}.month-calendar{gap:4px;padding:8px}.cal-day{min-height:62px;padding:6px 4px;border-radius:10px}.cal-place{display:none}.calendar-legend{justify-content:center}.topbar{margin-bottom:12px}.week-card{margin-bottom:12px}}

/* V10 · planificador mensual interactivo (Opción 4) */
.planner-shell{display:grid;grid-template-columns:245px minmax(0,1fr);gap:14px;align-items:start;margin-top:8px}
.planner-sidebar,.planner-main{background:rgba(255,253,249,.97);border:1px solid var(--line);border-radius:20px;box-shadow:0 8px 26px rgba(74,42,34,.06)}
.planner-sidebar{padding:16px;position:sticky;top:112px}.planner-side-head h3{margin:4px 0 5px}.planner-side-head p{font-size:12px;line-height:1.45;margin:0 0 13px}.planner-sidebar label{font-size:11px}.planner-sidebar input,.planner-sidebar select{padding:9px 10px;font-size:12px}
.planner-people{display:grid;gap:7px;max-height:280px;overflow:auto;margin:10px 0 13px;padding-right:2px}.planner-person{width:100%;border:1px solid var(--line);background:#fffdfa;border-radius:13px;padding:8px;display:grid;grid-template-columns:32px 1fr;align-items:center;gap:8px;text-align:left;color:var(--ink);cursor:pointer}.planner-person strong,.planner-person small{display:block}.planner-person strong{font-size:12px}.planner-person small{font-size:10px;color:var(--muted);margin-top:2px}.planner-person.selected{outline:2px solid var(--turquoise);background:var(--turquoise-soft)}.planner-avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#f1e6dc;color:var(--brown);font-weight:900}.planner-config{display:grid;grid-template-columns:1fr 1fr;gap:8px}.planner-config label:nth-child(3),.planner-config label:nth-child(4){grid-column:1/-1}.planner-selected{margin:12px 0 9px;padding:10px;border-radius:12px;background:var(--turquoise-soft);color:#24636a;font-size:11px;line-height:1.4}.planner-selected strong,.planner-selected span{display:block}.planner-manual-btn{width:100%;font-size:11px}
.planner-main{padding:14px;min-width:0}.planner-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.planner-month-nav{display:flex;align-items:center;gap:10px}.planner-month-nav>div{display:grid}.planner-month-nav small{font-size:10px;color:var(--muted)}.planner-month-nav strong{font-size:18px;color:var(--brown)}.planner-actions{display:flex;gap:8px}.planner-tip{font-size:11px;line-height:1.45;color:#6d5d55;background:#f7efe7;border:1px solid var(--line);padding:9px 11px;border-radius:12px;margin-bottom:10px}
.admin-month-planner{display:grid;grid-template-columns:repeat(7,minmax(112px,1fr));gap:6px;overflow:auto;padding-bottom:3px}.planner-dow{text-align:center;font-size:10px;font-weight:900;color:var(--muted);padding:5px}.planner-day{min-height:145px;border:1px solid #eadfd4;border-radius:13px;background:#fffdfa;padding:6px;transition:.15s}.planner-day.today{outline:2px solid rgba(22,183,199,.32)}.planner-day.drag-over{outline:3px solid var(--turquoise);background:#eafafb}.planner-day.other{opacity:.2}.planner-day-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}.planner-day-head strong{font-size:13px;color:var(--brown)}.planner-day-head button{width:24px;height:24px;border:0;border-radius:50%;background:#f1e7dd;color:var(--brown);font-weight:900;cursor:pointer}.planner-day-head button:hover{background:var(--turquoise-soft);color:var(--turquoise-dark)}.planner-cards{display:grid;gap:4px}.planner-shift{border:0;border-radius:9px;padding:6px;text-align:left;display:grid;gap:1px;cursor:pointer;color:#3c302a;background:#eaf7f8}.planner-shift strong{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planner-shift small,.planner-shift span{font-size:8px}.planner-shift i{font-style:normal;font-size:7px;opacity:.62}.role-garzon{background:#dff7f9!important}.role-cocinero{background:#f9ded6!important}.role-mucama{background:#def2df!important}.role-mantencion{background:#fae9b8!important}.role-recepcion{background:#e9e0f7!important}.planner-shift.role-garzon{border-left:3px solid #17aebe}.planner-shift.role-cocinero{border-left:3px solid #d66747}.planner-shift.role-mucama{border-left:3px solid #5ba76a}.planner-shift.role-mantencion{border-left:3px solid #d19b23}.planner-shift.role-recepcion{border-left:3px solid #8b6fc1}.small-empty{font-size:11px;padding:10px}.legacy-week-actions{display:none!important}
.person-actions .secondary{white-space:nowrap}
@media(min-width:900px){.shell{max-width:1220px}}
@media(max-width:860px){.planner-shell{grid-template-columns:1fr}.planner-sidebar{position:static}.planner-people{grid-template-columns:repeat(2,minmax(0,1fr));max-height:190px}.planner-config{grid-template-columns:repeat(3,1fr)}.planner-config label:nth-child(3){grid-column:auto}.planner-config label:nth-child(4){grid-column:1/-1}.admin-month-planner{grid-template-columns:repeat(7,minmax(105px,1fr))}.planner-day{min-height:125px}}
@media(max-width:650px){.planner-main{padding:10px;overflow:hidden}.planner-sidebar{padding:12px}.planner-toolbar{align-items:flex-start;flex-direction:column}.planner-actions{width:100%}.planner-actions button{flex:1}.planner-people{display:flex;overflow-x:auto;overflow-y:hidden;max-height:none;padding-bottom:5px}.planner-person{min-width:165px}.planner-config{grid-template-columns:1fr 1fr}.planner-config label:nth-child(3){grid-column:1/-1}.admin-month-planner{grid-template-columns:repeat(7,minmax(94px,1fr));overflow-x:auto}.planner-day{min-height:118px}.planner-tip{font-size:10px}}
