:root{--navy:#10273d;--navy2:#173a59;--blue:#176bce;--blue2:#2f8be6;--cyan:#24b4cd;--green:#24a36a;--amber:#e59a35;--purple:#7656c6;--ink:#17212b;--muted:#657485;--line:#e3e9ef;--soft:#f1f5f8;--bg:#f5f7f9;--white:#fff;--danger:#b42318;--shadow:0 10px 28px rgba(16,39,61,.07)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font:14px "Segoe UI",Inter,Arial,sans-serif}.app-body{background:var(--bg);min-height:100vh}button,.download{font:inherit}.sidebar{position:fixed;inset:0 auto 0 0;width:252px;background:linear-gradient(180deg,var(--navy),#0c2032);color:#fff;padding:24px 18px 18px;z-index:40;display:flex;flex-direction:column;box-shadow:12px 0 35px rgba(11,31,48,.12)}.brand{height:48px;display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}.brand-mark{width:45px;height:45px;border:1px solid rgba(255,255,255,.22);border-radius:11px;background:rgba(255,255,255,.08);display:grid;place-items:center;position:relative;overflow:hidden}.brand-mark:after{content:"";position:absolute;width:24px;height:50px;background:linear-gradient(180deg,var(--cyan),var(--blue2));right:-13px;transform:rotate(24deg);opacity:.85}.brand-mark b{font-size:11px;letter-spacing:.08em;position:relative;z-index:1}.brand-mark i{position:absolute;width:6px;height:6px;background:var(--cyan);border-radius:50%;top:7px;left:7px}.brand-copy strong,.brand-copy small{display:block}.brand-copy strong{font-size:18px;letter-spacing:.01em}.brand-copy small{font-size:9px;color:#9fb2c4;text-transform:uppercase;letter-spacing:.1em;margin-top:2px}.site-label{margin:24px -2px 22px;padding:13px 12px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.07);border-radius:9px}.site-label span,.site-label b{display:block}.site-label span{font-size:8px;color:#7fd1df;text-transform:uppercase;letter-spacing:.12em}.site-label b{font-size:11px;margin-top:5px;color:#dce7ef}.side-nav{display:flex;flex-direction:column;gap:4px}.side-nav a{min-height:43px;padding:0 11px;display:flex;align-items:center;gap:11px;color:#a9bbc9;text-decoration:none;border-radius:8px;font-size:11px;position:relative}.side-nav a:hover,.side-nav a.active{color:#fff;background:rgba(41,137,218,.17)}.side-nav a.active:before{content:"";position:absolute;left:-18px;width:3px;height:24px;background:var(--cyan);border-radius:0 3px 3px 0}.nav-icon{width:24px;height:24px;display:grid;place-items:center;font-size:16px;color:#7fa5c1}.side-nav a.active .nav-icon{color:var(--cyan)}.side-nav a em{margin-left:auto;font-style:normal;background:var(--amber);color:#fff;min-width:18px;height:18px;border-radius:9px;display:grid;place-items:center;font-size:8px}.sidebar-status{margin-top:auto;display:flex;gap:10px;align-items:center;padding:12px;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}.status-dot{width:8px;height:8px;background:#46d692;border-radius:50%;box-shadow:0 0 0 4px rgba(70,214,146,.1)}.sidebar-status b,.sidebar-status small,.sidebar-user b,.sidebar-user small{display:block}.sidebar-status b{font-size:9px}.sidebar-status small{font-size:8px;color:#8197a9;margin-top:2px}.sidebar-user{display:flex;align-items:center;gap:10px;padding:16px 5px 2px}.sidebar-user .avatar{width:34px;height:34px;border-radius:9px;background:linear-gradient(145deg,var(--blue2),var(--cyan));display:grid;place-items:center;font-weight:700}.sidebar-user div{min-width:0;flex:1}.sidebar-user b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user small{font-size:8px;color:#91a6b6;margin-top:3px;text-transform:uppercase}.sidebar-user>a{color:#87a0b3;text-decoration:none;font-size:17px}.mobile-header{display:none}.content{margin-left:252px;padding:31px 34px 45px;min-height:100vh;max-width:1700px}.content-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:21px}.eyebrow,.panel-head small{font-size:8px;color:var(--blue);font-weight:800;letter-spacing:.14em}.content-head h1{font-size:28px;letter-spacing:-.025em;margin:5px 0 5px}.content-head p{margin:0;color:var(--muted);font-size:11px}.head-actions{display:flex;gap:10px;align-items:center}.date-pill{height:45px;padding:7px 14px;background:#fff;border:1px solid var(--line);border-radius:9px;min-width:142px}.date-pill small,.date-pill b{display:block}.date-pill small{font-size:7px;color:var(--muted);letter-spacing:.12em}.date-pill b{font-size:11px;margin-top:5px}.primary{border:0;border-radius:8px;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff!important;padding:11px 15px;text-decoration:none;box-shadow:0 5px 14px rgba(23,107,206,.19);cursor:pointer}.primary:hover{filter:brightness(1.04)}.message{padding:11px 14px;border-radius:8px;background:#e9f7ef;color:#1f714b;margin-bottom:15px;border:1px solid #cfeada}.message.error{background:#feeceb;color:var(--danger);border-color:#f8cecb}.operation-strip{min-height:88px;background:linear-gradient(105deg,var(--navy2),#1a5275);border-radius:12px;color:#fff;padding:17px 21px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow);position:relative;overflow:hidden}.operation-strip:after{content:"";position:absolute;width:280px;height:280px;border:55px solid rgba(62,180,206,.07);border-radius:50%;right:12%;top:-135px}.operation-strip>div:first-child{position:relative;z-index:1}.operation-strip>div:first-child small,.operation-strip>div:first-child b{display:block}.operation-strip>div:first-child small{font-size:8px;letter-spacing:.14em;color:#8fd7e4;margin-bottom:7px}.operation-strip>div:first-child b{font-size:15px}.pulse{display:inline-block;width:7px;height:7px;border-radius:50%;background:#56dfa1;margin-right:7px;box-shadow:0 0 0 5px rgba(86,223,161,.1)}.operation-meta{display:flex;position:relative;z-index:1}.operation-meta>span{padding:3px 23px;border-left:1px solid rgba(255,255,255,.13);min-width:100px}.operation-meta small,.operation-meta b{display:block}.operation-meta small{font-size:8px;color:#a7bdcc;text-transform:uppercase}.operation-meta b{font-size:16px;margin-top:5px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:15px 0}.kpis article{min-height:99px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:17px;display:flex;gap:13px;align-items:flex-start;box-shadow:0 4px 14px rgba(16,39,61,.035);position:relative}.kpi-icon,.section-icon{display:grid;place-items:center;border-radius:8px;flex:none}.kpi-icon{width:36px;height:36px;font-size:16px}.kpi-icon.blue,.section-icon.blue{background:#eaf3ff;color:var(--blue)}.kpi-icon.green,.section-icon.green{background:#e8f7f0;color:var(--green)}.kpi-icon.amber,.section-icon.amber{background:#fff3e4;color:var(--amber)}.kpi-icon.purple{background:#f1edff;color:var(--purple)}.kpis article>div{min-width:0}.kpis small,.kpis b,.kpis p{display:block}.kpis small{font-size:7px;color:var(--muted);letter-spacing:.1em;font-weight:700}.kpis b{font-size:23px;margin-top:7px;line-height:1}.kpis b i{font-size:11px;font-style:normal;color:var(--muted)}.kpis p{font-size:8px;color:#8b98a5;margin:7px 0 0}.kpis .state{font-size:15px;color:var(--amber);margin-top:10px}.kpis .state.published{color:var(--green)}.kpis form{position:absolute;right:13px;bottom:11px}.link-button{border:0;background:none;color:var(--blue);font-size:8px;cursor:pointer}.panel{background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);margin-top:15px;overflow:hidden}.panel-head{min-height:69px;padding:14px 17px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.panel-head>div:first-child{display:flex;align-items:center;gap:11px}.section-icon{width:37px;height:37px;font-size:16px}.panel-head h2{font-size:15px;margin:4px 0 0}.panel-head p{margin:4px 0 0;color:var(--muted);font-size:9px}.counter{min-width:26px;height:26px;padding:0 7px;border-radius:13px;background:#fff3e4;color:#9a5a10;display:grid;place-items:center;font-size:10px}.inbox-list{padding:0 17px}.inbox article{display:flex;gap:11px;align-items:center;border-bottom:1px solid var(--line);padding:12px 0}.inbox article:last-child{border:0}.notice{width:31px;height:31px;display:grid;place-items:center;border-radius:8px;background:#fff3e4;color:#a75d0e;font-weight:bold}.inbox article>div:nth-child(2){flex:1}.inbox b,.inbox span{display:block}.inbox span,.inbox p{font-size:9px;color:var(--muted);margin:4px 0}.actions{display:flex;gap:6px}.actions form{display:inline}.actions button{font-size:9px;padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:#fff;cursor:pointer}.actions .accept{background:var(--green);border-color:var(--green);color:#fff}.calendar-title{align-items:center}.month-controls{display:flex!important;gap:6px!important;align-items:center!important}.month-controls>a{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--line);border-radius:7px;text-decoration:none;color:var(--ink);font-size:16px}.month-controls>div{min-width:138px;text-align:center}.month-controls>div b,.month-controls>div span{display:block}.month-controls>div b{font-size:10px}.month-controls>div span{font-size:7px;color:var(--muted);margin-top:2px}.month-controls .today{width:auto;padding:0 10px;font-size:8px}.month-controls select,.payroll-actions select{padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:9px;color:var(--ink)}.calendar-wrap{overflow:auto}.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,minmax(132px,1fr));min-width:924px}.weekdays{background:#f7f9fb;border-bottom:1px solid var(--line)}.weekdays b{text-align:center;padding:9px;color:#7c8995;font-size:8px;text-transform:uppercase;letter-spacing:.06em}.day{min-height:142px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.day:nth-child(7n){border-right:0}.day.blank{background:#fafbfc}.day.active{box-shadow:inset 0 0 0 2px var(--blue);background:#fbfdff}.day.holiday{background:#fffaf3}.day>header{height:24px;display:flex;align-items:center;justify-content:space-between}.day>header b{font-size:12px}.day.active>header b{width:24px;height:24px;border-radius:7px;background:var(--blue);color:#fff;display:grid;place-items:center}.day>header em{font-style:normal;font-size:6px;color:#9a5510;background:#ffeccf;padding:3px 5px;border-radius:4px}.holiday-name{font-size:7px;color:#9a5510;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:2px 0 5px}.shift{border:1px solid #d5e5f8;border-left:3px solid var(--blue);background:#f2f7fd;border-radius:6px;padding:7px;margin:5px 0}.shift.tT{border-left-color:var(--amber);background:#fff8ee}.shift.tN{border-left-color:var(--purple);background:#f7f4ff}.shift.tX{border-left-color:var(--green);background:#f0faf5}.shift.done{opacity:.65}.shift-top{display:flex;justify-content:space-between}.shift-top span{font-size:8px;font-weight:800}.shift-top em{font-style:normal;color:var(--green)}.shift>b,.shift>small{display:block}.shift>b{font-size:9px;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shift>small{font-size:7px;color:var(--muted);margin-top:2px}.shift-actions{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:6px}.shift-actions form{grid-column:1/-1}.shift-actions button{width:100%;padding:5px;border:1px solid var(--line);background:#fff;border-radius:5px;font-size:7px;cursor:pointer}.shift-actions .confirm{background:var(--blue);color:#fff;border-color:var(--blue)}.extra{display:block;font-size:7px;color:#a45a13;margin-top:5px}.empty{text-align:center;color:#c4ccd3}.payroll-head{padding:14px 17px}.payroll-actions{display:flex!important;gap:8px!important}.download{font-size:9px;padding:9px 12px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;min-width:960px}th,td{text-align:right;padding:11px 10px;border-bottom:1px solid var(--line);font-size:9px}th{background:#f7f9fb;color:#556270;font-size:8px;text-transform:uppercase;letter-spacing:.035em}th:first-child,td:first-child{text-align:left}th small{font-size:7px;color:var(--blue)}td small{display:block;color:var(--muted);font-size:7px;margin-top:3px}.empty-row{text-align:center!important;color:var(--muted);padding:24px}.payroll footer{display:flex;justify-content:space-between;gap:10px;padding:11px 17px;background:#f7f9fb;font-size:8px;color:var(--muted)}.payroll footer a{color:var(--blue);text-decoration:none}.next-card{background:linear-gradient(115deg,var(--navy2),#1d5d81);color:#fff;border-radius:11px;padding:17px 20px;margin:14px 0;display:flex;align-items:center;gap:16px;box-shadow:var(--shadow)}.next-date{width:50px;height:55px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.12);border-radius:9px;display:grid;place-items:center}.next-date span{font-size:20px;font-weight:700;line-height:1}.next-date small{font-size:7px;color:#9ed9e2}.next-card>div:nth-child(2){flex:1}.next-card>div:nth-child(2)>small{font-size:7px;letter-spacing:.12em;color:#8ed5df}.next-card h2{margin:5px 0;font-size:18px}.next-card p{margin:0;color:#c5d8e5;font-size:10px}.type{padding:8px 12px;border-radius:7px;background:rgba(255,255,255,.1);font-size:10px;font-weight:700}.app-footer{display:flex;justify-content:space-between;padding:24px 3px 0;color:#8b98a5}.app-footer span{font-size:9px;font-weight:700}.app-footer small{font-size:8px}dialog{border:0;border-radius:13px;width:min(455px,92vw);padding:0;box-shadow:0 22px 75px #081b2d66}dialog::backdrop{background:#10273d99}dialog>form{padding:27px}dialog>form>small{font-size:8px;font-weight:800;letter-spacing:.14em;color:var(--blue)}dialog h2{font-size:23px;margin:7px 0}dialog p{color:var(--muted);font-size:10px;line-height:1.5}dialog label{display:block;font-size:9px;font-weight:700;margin:13px 0}dialog input,dialog select,dialog textarea{display:block;width:100%;margin-top:6px;border:1px solid var(--line);border-radius:7px;padding:10px;background:#fff}.row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.close{float:right;border:0;background:none;font-size:21px;padding:0;color:var(--muted);cursor:pointer}

/* Operator action center */
.operator-center{background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);margin:15px 0;padding:18px}.operator-center>header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.operator-center h2{font-size:17px;margin:5px 0}.operator-center header p{margin:0;color:var(--muted);font-size:9px}.operator-help{font-size:8px;color:var(--muted);background:#f6f8fa;border:1px solid var(--line);border-radius:15px;padding:7px 10px}.operator-actions{display:grid;grid-template-columns:1fr 1fr;gap:11px}.action-card{min-height:122px;border:1px solid var(--line);border-radius:10px;background:#fbfcfd;padding:16px;display:flex;text-align:left;gap:13px;cursor:pointer;transition:.15s}.action-card:hover{transform:translateY(-1px);border-color:#b9d4ef;box-shadow:0 8px 20px rgba(16,39,61,.07)}.action-card:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.action-card.overtime{background:linear-gradient(135deg,#f7fbff,#edf6ff)}.action-card.swap{background:linear-gradient(135deg,#fbfaff,#f3efff)}.action-icon{width:41px;height:41px;border-radius:9px;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:20px;flex:none}.action-card.swap .action-icon{background:var(--purple)}.action-card small,.action-card b,.action-card p,.action-card em{display:block}.action-card small{font-size:7px;letter-spacing:.11em;color:var(--blue);font-weight:800}.action-card.swap small{color:var(--purple)}.action-card b{font-size:14px;margin-top:5px}.action-card p{font-size:9px;line-height:1.45;color:var(--muted);margin:6px 0}.action-card em{font-style:normal;font-size:8px;color:var(--blue);font-weight:700;margin-top:9px}.action-card.swap em{color:var(--purple)}.workflow{display:grid;grid-template-columns:repeat(3,1fr);margin-top:13px;background:#f7f9fb;border-radius:8px;padding:9px}.workflow span{display:flex;align-items:center;justify-content:center;gap:7px;border-right:1px solid var(--line)}.workflow span:last-child{border:0}.workflow i{width:20px;height:20px;border-radius:50%;background:#e5edf4;color:var(--navy);display:grid;place-items:center;font-style:normal;font-size:8px;font-weight:700}.workflow b{font-size:8px;color:#5f6e7b}.my-requests{margin:15px -18px -18px;border-top:1px solid var(--line);padding:14px 18px}.my-requests h3{font-size:10px;margin:0 0 5px}.my-requests article{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.my-requests article:last-child{border:0}.request-icon{width:27px;height:27px;border-radius:7px;background:#eef4fa;color:var(--blue);display:grid;place-items:center;font-weight:700}.my-requests article>div{flex:1}.my-requests article b,.my-requests article small{display:block}.my-requests article b{font-size:9px}.my-requests article small{font-size:8px;color:var(--muted);margin-top:3px}.status{font-style:normal;font-size:7px;padding:5px 8px;border-radius:10px;background:#fff3e4;color:#985a11}.status.sA{background:#e8f7f0;color:#24724e}.status.sR,.status.sC{background:#feeceb;color:#9d2f28}.modal-note{display:flex;align-items:flex-start;gap:8px;background:#f0f6fb;color:#526677;border-radius:7px;padding:9px;margin:12px 0}.modal-note span{color:var(--blue)}.modal-note p{margin:0}.modal-submit{width:100%}.swap-arrow{text-align:center;color:var(--purple);font-size:18px;height:13px;line-height:13px}

/* Incidencias y vacaciones */
.action-card.incident{background:linear-gradient(135deg,#fffafa,#fff0ef)}.action-card.incident .action-icon{background:#c64c43}.action-card.incident small,.action-card.incident em{color:#a7352e}.action-card.vacation{background:linear-gradient(135deg,#fffdf6,#fff7dc)}.action-card.vacation .action-icon{background:#d89527}.action-card.vacation small,.action-card.vacation em{color:#9b6818}.vacation-balance{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:8px;margin-top:13px;padding:12px 14px;border:1px solid #f0dfac;background:#fffaf0;border-radius:9px}.vacation-balance>div,.vacation-balance>span{display:flex;flex-direction:column;justify-content:center}.vacation-balance>span{padding-left:13px;border-left:1px solid #ebdfc1}.vacation-balance small{font-size:7px;color:#8c7953;text-transform:uppercase;letter-spacing:.08em}.vacation-balance b{font-size:11px;margin-top:4px}.incident-icon,.incident-notice{background:#feeceb!important;color:#a7352e!important}.vacation-icon,.vacation-notice{background:#fff3d5!important;color:#9b6818!important}.cancel-link{border:0;background:none;color:var(--danger);font-size:7px;cursor:pointer}.vacation-actions form:first-child{display:flex;align-items:flex-end;gap:5px}.vacation-actions label{font-size:7px;color:var(--muted)}.vacation-actions input{display:block;width:55px;margin-top:3px;padding:6px;border:1px solid var(--line);border-radius:6px}.vacation-day{padding:5px 6px;border-radius:5px;background:#fff2c9;color:#855710;font-size:7px;font-weight:800;margin:3px 0}.shift.on-vacation{border-left-color:#d89527;background:#fffaf0;opacity:.8}.vacation-state{font-size:6px!important;color:#9b6818!important;background:#fff0bf;padding:2px 4px;border-radius:3px}.incident-state{width:17px;height:17px;display:grid;place-items:center;background:#feeceb;border-radius:50%;color:#a7352e!important}.modal-note.warning{background:#fff4f2;color:#79423d}.modal-note.warning span{color:#b42318}.shift-actions{grid-template-columns:1fr 1fr}.shift-actions form+button{grid-column:auto}

/* Visibilidad de equipo para operadores */
.calendar-legend{display:flex!important;align-items:center;gap:10px!important;min-width:auto!important;margin-right:6px}.calendar-legend span{display:flex;align-items:center;gap:5px;font-size:7px;color:var(--muted);white-space:nowrap}.calendar-legend span:before{content:"";width:8px;height:8px;border-radius:2px}.calendar-legend .legend-mine:before{background:var(--blue)}.calendar-legend .legend-team:before{background:#aeb9c3}.shift.mine{box-shadow:0 0 0 1px rgba(23,107,206,.2);border-left-width:4px}.shift.companion{background:#f7f9fb;border-color:#dfe5ea;border-left-color:#aeb9c3;color:#3e4b57}.shift.companion .shift-top span{color:#667684}.team-readonly{display:block;font-style:normal;font-size:6px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#7b8995;margin-top:5px}

/* Flujo simplificado de planificación por sala */
.room-workflow{margin-top:15px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:11px;display:flex;align-items:center;justify-content:space-between;gap:18px;box-shadow:0 4px 14px rgba(16,39,61,.035)}.room-workflow-title{display:flex;align-items:center;gap:11px;min-width:230px}.room-workflow-title small,.room-workflow-title b,.room-workflow-title p{display:block}.room-workflow-title small{font-size:7px;color:var(--blue);letter-spacing:.12em;font-weight:800}.room-workflow-title b{font-size:13px;margin-top:3px}.room-workflow-title p{font-size:8px;color:var(--muted);margin:3px 0 0}.room-workflow-steps{display:flex;gap:7px}.room-workflow-steps button{min-width:150px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#f9fbfc;display:flex;align-items:center;gap:9px;text-align:left;cursor:pointer}.room-workflow-steps button:disabled{opacity:.45;cursor:not-allowed}.room-workflow-steps button.featured{border-color:#b9d4ef;background:#eef6ff}.room-workflow-steps i{width:23px;height:23px;border-radius:50%;background:#dfe9f2;color:var(--navy);display:grid;place-items:center;font-style:normal;font-size:8px;font-weight:800}.room-workflow-steps small,.room-workflow-steps b{display:block}.room-workflow-steps small{font-size:6px;color:var(--muted);letter-spacing:.09em}.room-workflow-steps b{font-size:9px;margin-top:2px}.select-room-prompt{width:100%;display:flex;align-items:center;gap:13px}.select-room-prompt>span{width:38px;height:38px;border-radius:8px;background:#eaf3ff;color:var(--blue);display:grid;place-items:center}.select-room-prompt>div{flex:1}.select-room-prompt b{font-size:11px}.select-room-prompt p{font-size:8px;color:var(--muted);margin:4px 0 0}.select-room-prompt a{font-size:8px;color:var(--blue);text-decoration:none}.wide-dialog{width:min(820px,95vw)}.template-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.template-grid fieldset{border:1px solid var(--line);border-radius:9px;padding:11px}.template-grid legend{padding:0 6px;font-size:9px;font-weight:800;color:var(--navy)}.planner-dialog{width:min(1100px,96vw);max-width:none}.planner-dialog>form{padding:24px}.planner-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:9px 11px;background:#eef6ff;border-radius:8px;color:#516a80;font-size:8px}.planner-tools button{border:1px solid #b9d4ef;border-radius:6px;background:#fff;color:var(--blue);padding:7px 9px;cursor:pointer}.planner-table{max-height:62vh;overflow:auto;border:1px solid var(--line);border-radius:9px;margin:10px 0 14px}.planner-table table{min-width:760px}.planner-table thead{position:sticky;top:0;z-index:2}.planner-table th,.planner-table td{text-align:left}.planner-table th:first-child,.planner-table td:first-child{position:sticky;left:0;background:#f7f9fb;z-index:1;min-width:80px}.planner-table th b,.planner-table th small{display:block}.planner-table select{width:100%;min-width:160px;padding:7px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:8px}.planner-save{float:right;margin-bottom:20px}.empty-planner{padding:30px;text-align:center;background:#f7f9fb;border-radius:9px;color:var(--muted);margin:15px 0}

/* Corporate login */
.login{min-height:100vh;background:var(--soft);display:grid;place-items:center;padding:25px}.login-shell{width:min(920px,96vw);min-height:510px;background:#fff;border-radius:16px;display:grid;grid-template-columns:1.05fr .95fr;overflow:hidden;box-shadow:0 25px 70px rgba(16,39,61,.16)}.login-brand{background:linear-gradient(145deg,var(--navy),#194b6d);color:#fff;padding:46px;display:flex;flex-direction:column;position:relative;overflow:hidden}.login-brand:after{content:"";position:absolute;width:330px;height:330px;border:65px solid rgba(36,180,205,.07);border-radius:50%;right:-130px;bottom:-155px}.login-brand .brand{z-index:1}.login-brand>div:nth-child(2){margin:auto 0;z-index:1}.login-brand .eyebrow{color:#84d7e4}.login-brand h1{font-size:34px;line-height:1.13;margin:10px 0}.login-brand p{color:#b8cedc;font-size:12px;line-height:1.6;max-width:300px}.login-brand footer{font-size:8px;color:#7895aa;z-index:1}.login-form{padding:55px 48px;display:flex;flex-direction:column;justify-content:center}.login-form>small{font-size:8px;letter-spacing:.14em;color:var(--blue);font-weight:800}.login-form h2{font-size:26px;margin:8px 0}.login-form>p{font-size:10px;color:var(--muted);margin:0 0 22px}.login-form form p{margin:13px 0}.login-form label{display:block;font-size:9px;font-weight:700;color:#485664;margin-bottom:5px}.login-form input{width:100%;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd}.login-form button{width:100%;border:0;border-radius:8px;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;padding:12px;margin-top:8px;cursor:pointer}.login-form .help{font-size:8px;color:#8b98a5;margin-top:16px;text-align:center}

@media(max-width:1120px){.kpis{grid-template-columns:1fr 1fr}.calendar-title{align-items:flex-start;gap:12px}.month-controls{flex-wrap:wrap!important;justify-content:flex-end}.operation-meta>span{padding:3px 15px}}
@media(max-width:780px){.sidebar{transform:translateX(-105%);transition:transform .2s}.sidebar.open{transform:translateX(0)}.mobile-header{height:62px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 14px;position:sticky;top:0;z-index:35}.mobile-header .brand{height:44px}.mobile-header .brand-mark{width:36px;height:36px}.mobile-header .brand-copy strong{font-size:14px}.mobile-header button{border:0;background:rgba(255,255,255,.1);color:#fff;border-radius:7px;width:36px;height:36px;font-size:17px}.content{margin-left:0;padding:20px 13px 35px}.content-head{align-items:flex-start}.content-head h1{font-size:24px}.content-head p{font-size:10px}.date-pill{display:none}.operation-strip{align-items:flex-start;gap:14px;flex-direction:column}.operation-meta{width:100%}.operation-meta>span{flex:1;padding:3px 10px}.kpis{gap:8px}.kpis article{min-height:92px;padding:13px}.kpi-icon{width:31px;height:31px}.kpis b{font-size:19px}.calendar-title{display:block}.calendar-title>div:first-child{margin-bottom:13px}.month-controls{justify-content:flex-start!important}.month-controls form{width:100%}.month-controls select{width:100%}.inbox article{align-items:flex-start}.actions{flex-direction:column}.payroll-head{display:block}.payroll-actions{margin-top:13px;flex-wrap:wrap}.app-footer{flex-direction:column;gap:4px}.login-shell{grid-template-columns:1fr;min-height:0}.login-brand{padding:25px}.login-brand>div:nth-child(2),.login-brand footer{display:none}.login-form{padding:35px 26px}}
@media(max-width:500px){.head-actions .primary{font-size:0;width:38px;height:38px;padding:0}.head-actions .primary span{font-size:17px}.content-head{margin-bottom:15px}.operation-strip{padding:15px}.operation-strip>div:first-child b{font-size:12px}.operation-meta small{font-size:6px}.operation-meta b{font-size:13px}.kpis{grid-template-columns:1fr 1fr}.kpis article{display:block}.kpi-icon{margin-bottom:10px}.kpis p{display:none}.kpis form{position:static;margin-top:5px}.panel-head{padding:12px}.month-controls>div{min-width:105px}.next-card{padding:14px}.next-card h2{font-size:15px}.next-card .type{display:none}.payroll footer{flex-direction:column}.row{grid-template-columns:1fr}}
@media(max-width:780px){.operator-center>header{display:block}.operator-help{display:inline-block;margin-top:10px}.operator-actions{grid-template-columns:1fr}.workflow b{font-size:7px}}
@media(max-width:500px){.operator-center{padding:14px}.operator-actions{gap:8px}.action-card{min-height:0;padding:13px}.action-icon{width:36px;height:36px}.workflow{display:block}.workflow span{justify-content:flex-start;border:0;padding:4px}.my-requests{margin:13px -14px -14px;padding:12px 14px}}
@media(max-width:980px){.room-workflow{align-items:flex-start;flex-direction:column}.room-workflow-steps{width:100%;flex-wrap:wrap}.room-workflow-steps button{flex:1}.template-grid{grid-template-columns:1fr}.vacation-balance{grid-template-columns:1fr repeat(3,1fr)}}
@media(max-width:600px){.room-workflow-steps{display:grid;grid-template-columns:1fr}.room-workflow-steps button{width:100%}.vacation-balance{grid-template-columns:1fr 1fr}.vacation-balance>span{border-left:0;padding-left:0}.select-room-prompt{align-items:flex-start;flex-wrap:wrap}.planner-dialog>form{padding:15px}}

/* Edición directa de turnos para supervisión */
.edit-shift{width:100%;margin-top:6px;padding:5px 7px;border:1px solid #bfd5ea;border-radius:5px;background:#fff;color:var(--blue);font-size:7px;font-weight:700;cursor:pointer}.edit-shift:hover{background:#eaf3ff}
