:root{--navy:#0e3b28;--navy2:#155239;--teal:#00a15d;--teal-d:#007a46;--mint:#8fe9bc;--light:#f4f9f6;--card:#fff;--grey:#5a6b62;--ink:#1b2b22;--line:#e2eee7;--coral:#e07a5f;--amber:#e8a93c;--red:#d9534f;--green:#3fa66a;--sidebar-w:232px;--radius:12px;--shadow:0 1px 3px #0e3b2812, 0 6px 18px #0e3b280d;--pad-x:26px;--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);--safe-b:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--light);color:var(--ink);-webkit-font-smoothing:antialiased;overflow-wrap:break-word;font-family:Segoe UI,system-ui,-apple-system,Roboto,Arial,sans-serif;line-height:1.55}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.shell{min-height:100dvh;display:flex}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:var(--navy);color:#fff;height:100dvh;padding-left:var(--safe-l);flex-direction:column;display:flex;position:sticky;top:0}.brand{border-bottom:1px solid #ffffff17;align-items:flex-start;gap:10px;padding:20px 20px 16px;display:flex}.brand .n{letter-spacing:.2px;font-size:16px;font-weight:700}.brand .s{opacity:.6;margin-top:1px;font-size:11.5px}.nav{flex-direction:column;flex:1;gap:2px;padding:12px 10px;display:flex;overflow-y:auto}.nav a{color:#ffffffbd;border-radius:9px;align-items:center;gap:11px;padding:9px 12px;font-size:14px;transition:background .12s,color .12s;display:flex}.nav a:hover{color:#fff;background:#ffffff12}.nav a.on{background:var(--teal);color:#fff;font-weight:600}.nav a svg{flex:0 0 17px;width:17px;height:17px}.nav .count{background:var(--coral);color:#fff;border-radius:10px;margin-left:auto;padding:1px 7px;font-size:10px;font-weight:700}.nav a.on .count{background:#00000040}.sidebar .foot{opacity:.5;padding:14px 20px;padding-bottom:calc(14px + var(--safe-b));border-top:1px solid #ffffff17;font-size:11px}.cerrar-menu{color:#ffffffb3;background:0 0;border:0;border-radius:9px;flex:0 0 36px;width:36px;height:36px;margin-left:auto;font-size:22px;line-height:1;display:none}.cerrar-menu:hover{color:#fff;background:#ffffff1a}.velo{display:none}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--card);border-bottom:1px solid var(--line);padding:14px var(--pad-x);z-index:30;align-items:center;gap:16px;display:flex;position:sticky;top:0}.topbar h1{font-size:19px;font-weight:700;line-height:1.25}.topbar .sub{color:var(--grey);font-size:13px}.topbar .who{color:var(--grey);align-items:center;gap:9px;margin-left:auto;font-size:13px;display:flex}.topbar .who .quien{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.topbar .who .av{background:var(--mint);width:30px;height:30px;color:var(--navy);border-radius:50%;flex:0 0 30px;justify-content:center;align-items:center;font-size:12.5px;font-weight:700;display:flex}.abrir-menu{border:1px solid var(--line);width:40px;height:40px;color:var(--ink);background:0 0;border-radius:9px;flex:0 0 40px;justify-content:center;align-items:center;display:none;position:relative}.abrir-menu:hover{background:var(--light)}.abrir-menu svg{width:20px;height:20px}.abrir-menu .punto{background:var(--coral);border:2px solid var(--card);border-radius:50%;width:10px;height:10px;position:absolute;top:-4px;right:-4px}.content{padding:22px var(--pad-x) 46px;padding-left:max(var(--pad-x), var(--safe-l));padding-right:max(var(--pad-x), var(--safe-r));padding-bottom:calc(46px + var(--safe-b))}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card>.head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:14px 18px;display:flex}.card>.head h2{font-size:15.5px;font-weight:700}.card>.head .day{color:var(--grey);margin-left:auto;font-size:12.5px}.card>.body{padding:18px}.kpis{grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:14px;margin-bottom:20px;display:grid}.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:15px 17px}.kpi .lbl{text-transform:uppercase;letter-spacing:.7px;color:var(--grey);font-size:11.5px;font-weight:600}.kpi .val{margin-top:5px;font-size:27px;font-weight:700;line-height:1.15}.kpi .hint{color:var(--grey);margin-top:2px;font-size:12.5px}.kpi.alert .val{color:var(--coral)}table{border-collapse:collapse;width:100%;font-size:13.5px}th{text-align:left;text-transform:uppercase;letter-spacing:.6px;color:var(--grey);background:var(--light);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 14px;font-size:11px;font-weight:700}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:11px 14px}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafdfb}.tbl-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.pt-name{color:var(--ink);font-weight:600}.pill{white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:11.5px;font-weight:700;display:inline-block}.pill.ok{color:var(--teal-d);background:#e6f6ec}.pill.wait{color:#9a6b14;background:#fdf3e0}.pill.done{color:#2b6cb0;background:#eaf1fa}.pill.bad{color:var(--red);background:#fbeae9}.pill.neutral{color:var(--grey);background:#eef3f0}.btn{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:9px;padding:7px 14px;font-size:13px;font-weight:600;transition:background .12s,border-color .12s}.btn:hover{background:var(--light)}.btn.primary{background:var(--teal);border-color:var(--teal);color:#fff}.btn.primary:hover{background:var(--teal-d);border-color:var(--teal-d)}.btn.ghost{color:var(--teal-d);background:0 0;border-color:#0000;padding:5px 8px}.btn.ghost:hover{background:var(--light)}.btn.sm{padding:4px 10px;font-size:12.5px}.btn:disabled{opacity:.5;cursor:not-allowed}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spacer{margin-left:auto}.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;display:grid}.field{margin-bottom:14px}.field label{text-transform:uppercase;letter-spacing:.6px;color:var(--grey);margin-bottom:4px;font-size:11.5px;font-weight:700;display:block}.field .v{font-size:14.5px}.field .v.empty{color:var(--grey);font-style:italic}.empty-state{text-align:center;color:var(--grey);padding:44px 20px;font-size:14px}.note{border-left:4px solid var(--teal);color:#14503a;background:#edf8f2;border-radius:0 10px 10px 0;padding:12px 16px;font-size:13.5px}.note.warn{border-left-color:var(--amber);color:#6e4e12;background:#fdf6e7}.mock-banner{color:#6e4e12;padding:8px var(--pad-x);background:#fdf6e7;border-bottom:1px solid #f0dcaf;flex-wrap:wrap;align-items:center;gap:8px;font-size:12.5px;display:flex}.week{grid-template-columns:repeat(5,1fr);gap:12px;display:grid}.week .col{background:var(--light);border:1px solid var(--line);border-radius:10px;min-width:0;padding:10px}.week .col h3{text-transform:uppercase;letter-spacing:.6px;color:var(--grey);margin-bottom:9px;font-size:12.5px}.slot{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--teal);border-radius:8px;margin-bottom:7px;padding:7px 9px;font-size:12.5px}.slot .h{color:var(--teal-d);font-size:12px;font-weight:700}.slot .n{color:var(--ink);overflow-wrap:anywhere}.slot.wait{border-left-color:var(--amber)}.slot.free{border-left-color:var(--line);color:var(--grey);text-align:center;font-style:italic}@media (width<=1100px){:root{--pad-x:20px}.week{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:6px;display:flex;overflow-x:auto}.week .col{scroll-snap-align:start;flex:0 0 clamp(210px,40%,260px)}}@media (width<=900px){.sidebar{z-index:60;max-width:86vw;height:100dvh;transition:transform .22s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:0 0 40px #0000004d}.sidebar.abierta{transform:none}.cerrar-menu{display:block}.velo{z-index:55;opacity:0;pointer-events:none;background:#091e1580;transition:opacity .22s;display:block;position:fixed;inset:0}.velo.on{opacity:1;pointer-events:auto}.abrir-menu{display:inline-flex}.topbar{gap:12px;padding-top:10px;padding-bottom:10px}.topbar h1{font-size:17px}.topbar .who .quien{max-width:130px}.week .col{flex:0 0 min(78vw,250px)}}@media (width<=760px){:root{--pad-x:14px}.content{padding-top:16px}.card>.body{padding:14px}.card>.head{padding:12px 14px}.card>.head .day{flex-basis:100%;margin-left:0}.kpis{gap:10px;margin-bottom:16px}.kpi{padding:13px 14px}.kpi .val{font-size:24px}.grid-2{grid-template-columns:1fr}.empty-state{padding:30px 16px}input,select,textarea{font-size:16px!important}.tbl-scroll.cards{overflow-x:visible}.tbl-scroll.cards table,.tbl-scroll.cards tbody,.tbl-scroll.cards tfoot,.tbl-scroll.cards tr,.tbl-scroll.cards td{width:auto;display:block}.tbl-scroll.cards thead{display:none}.tbl-scroll.cards tbody{padding:14px}.tbl-scroll.cards tbody tr{background:var(--card);border:1px solid var(--line);border-radius:10px;flex-direction:column;margin-bottom:10px;padding:12px 14px;display:flex}.tbl-scroll.cards tbody tr:last-child{margin-bottom:0}.tbl-scroll.cards tbody tr:hover{background:var(--card)}.tbl-scroll.cards td{border:0;justify-content:space-between;align-items:baseline;gap:14px;padding:4px 0;font-size:13.5px;display:flex}.tbl-scroll.cards td:before{content:attr(data-l);text-transform:uppercase;letter-spacing:.6px;color:var(--grey);flex:none;font-size:11px;font-weight:700}.tbl-scroll.cards td>*{min-width:0}.tbl-scroll.cards td.celda-larga{display:block;max-width:none!important}.tbl-scroll.cards td.celda-larga:before{margin-bottom:2px;display:block}.tbl-scroll.cards td.pt-name{border-bottom:1px solid var(--line);order:-1;margin-bottom:7px;padding:0 0 9px;font-size:15px;font-weight:700;display:block}.tbl-scroll.cards td.pt-name:before{content:none}.tbl-scroll.cards td.celda-acciones{border-top:1px solid var(--line);order:1;margin-top:7px;padding:11px 0 0;display:block}.tbl-scroll.cards td.celda-acciones:before{content:none}.tbl-scroll.cards td.celda-acciones .row .btn{flex:auto}.tbl-scroll.cards td.celda-acciones>.btn{width:100%}.tbl-scroll.cards tbody tr.fila-vacia{background:0 0;border:0;margin:0;padding:0}.tbl-scroll.cards tr.fila-vacia td{display:block}.tbl-scroll.cards tr.fila-vacia td:before{content:none}.note .tbl-scroll.cards tbody{padding:0}.tbl-scroll.cards tfoot{padding:0 14px 14px}.tbl-scroll.cards tfoot tr{background:var(--light);border:1px solid var(--line);border-radius:10px;justify-content:space-between;gap:14px;padding:11px 14px;display:flex}.tbl-scroll.cards tfoot td{border:0;padding:0;text-align:left!important}.tbl-scroll.cards tfoot td:before{content:none}}@media (width<=520px){.topbar .sub,.topbar .who .quien{display:none}.note{padding:11px 13px;font-size:13px}.kpis{grid-template-columns:1fr 1fr}.kpi .lbl{letter-spacing:.5px;font-size:10.5px}}@media (pointer:coarse){.btn{min-height:42px;padding:9px 16px}.btn.sm{min-height:38px;padding:8px 13px}.btn.ghost{min-width:38px;min-height:38px;padding:8px 11px}.nav a{padding:12px}input,select{min-height:42px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
