:root{--bg: #f4f7f5;--side: #e3f1e8;--verde: #1f7a63;--verde-osc: #145c46;--pastel: #9cc9b3;--borde: #dce6e0;--borde2: #c5d3cb;--texto: #14201c;--texto2: #4a5a53;--blanco: #ffffff;--late-bg: #fbe4e1;--late-fg: #8c1d18;--soon-bg: #fcebcb;--soon-fg: #7a4a00;--pend-bg: #e1e9f7;--pend-fg: #1d3f7a;--ok-bg: #ddf0e5;--ok-fg: #145c46;--none-bg: #e8ecea;--none-fg: #33433c;--falta-bg: #f2e9fa;--falta-fg: #4b2a73}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--texto);font-size:14px;-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}a{color:var(--verde-osc)}button,input,select,textarea{font:inherit;color:inherit}.app{display:flex;min-height:100%}.side{width:240px;flex:0 0 240px;background:var(--side);padding:24px 16px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}.marca{display:flex;align-items:center;gap:10px;padding:4px 12px 24px;font-size:16px;font-weight:700;letter-spacing:-.01em}.marca i{width:32px;height:32px;border-radius:8px;background:var(--verde);display:grid;place-items:center}.navlink{display:block;padding:10px 12px;border-radius:8px;text-decoration:none;font-weight:500;color:var(--texto)}.navlink.activo{background:var(--blanco);font-weight:600}.side .resto{flex:1}.usuario{display:flex;align-items:center;gap:10px;padding:16px 12px 0;font-size:13px;line-height:1.3}.usuario .av{width:32px;height:32px;border-radius:16px;background:var(--blanco);border:1px solid var(--pastel);display:grid;place-items:center;font-size:12px;font-weight:600;flex:0 0 auto}.usuario small{color:var(--texto2);display:block}.main{flex:1;min-width:0;padding:32px;display:flex;flex-direction:column;gap:24px}.bottomnav{display:none}.cab{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}.cab h1{font-size:28px;font-weight:700;letter-spacing:-.02em}.cab p{margin-top:4px;color:var(--texto2)}.acciones{display:flex;flex-wrap:wrap;gap:8px}.btn{min-height:44px;padding:0 16px;border-radius:8px;border:1px solid var(--pastel);background:var(--blanco);font-weight:500;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:var(--texto)}.btn:hover{background:#f1f8f4}.btn.primario{background:var(--verde);border-color:var(--verde);color:#fff;font-weight:600}.btn.primario:hover{background:var(--verde-osc)}.btn.peligro{border-color:#c98a86;color:var(--late-fg)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.chico{min-height:44px;padding:0 14px;font-size:13px;font-weight:600}.cards{display:flex;flex-wrap:wrap;gap:16px}.cifra{flex:1 1 180px;background:var(--blanco);border:1px solid var(--borde);border-radius:12px;padding:16px 20px}.cifra .t{font-size:13px;color:var(--texto2)}.cifra .n{font-size:32px;font-weight:700;letter-spacing:-.02em}.cifra .s{font-size:13px;color:var(--texto2)}.cifra .n.late{color:var(--late-fg)}.cifra .n.soon{color:var(--soon-fg)}.cifra .n.pend{color:var(--pend-fg)}.panel{background:var(--blanco);border:1px solid var(--borde);border-radius:12px;overflow:hidden}.panel>h2,.panel>.titulo{margin:0;padding:16px 24px;background:var(--side);font-size:14px;font-weight:700}.panel .cuerpo{padding:20px 24px;display:flex;flex-direction:column;gap:16px}.dos{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}.dos>*{flex:1 1 340px;min-width:0}.chip{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600;white-space:nowrap}.chip.late{background:var(--late-bg);color:var(--late-fg)}.chip.soon{background:var(--soon-bg);color:var(--soon-fg)}.chip.pend{background:var(--pend-bg);color:var(--pend-fg)}.chip.ok{background:var(--ok-bg);color:var(--ok-fg)}.chip.none{background:var(--none-bg);color:var(--none-fg)}.chip.falta{background:var(--falta-bg);color:var(--falta-fg);padding:2px 8px;font-size:11px}.banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;background:var(--soon-bg);color:#3d2600;border-radius:12px;padding:12px 20px}.banner.error{background:var(--late-bg);color:var(--late-fg)}.banner.ok{background:var(--ok-bg);color:var(--ok-fg)}.barra{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:16px 20px;border-bottom:1px solid var(--borde)}.pill{min-height:44px;padding:0 16px;border-radius:22px;border:1px solid var(--borde2);background:var(--blanco);cursor:pointer;font-weight:500;font-size:13px}.pill.on{background:var(--side);border-color:var(--verde);font-weight:600}.buscar{margin-left:auto;flex:0 1 260px;min-height:44px;padding:0 12px;border:1px solid var(--borde2);border-radius:8px;background:var(--blanco)}.scroll-x{overflow-x:auto}table.tabla{width:100%;border-collapse:collapse;min-width:820px}.tabla th{text-align:left;background:var(--side);padding:12px;font-size:12px;font-weight:600;letter-spacing:.02em}.tabla th:first-child,.tabla td:first-child{padding-left:20px}.tabla td{padding:12px;border-top:1px solid #e6ede9;vertical-align:middle}.tabla td.der{text-align:right;padding-right:20px}.tabla td b{font-weight:600}.tabla tr.fila:hover{background:#f8fbf9}.pie{padding:12px 20px;border-top:1px solid #e6ede9;font-size:13px;color:var(--texto2)}.vacio{padding:32px 20px;text-align:center;color:var(--texto2)}.lista-movil{display:none}.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form .ancho{grid-column:1 / -1}.campo{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--texto2)}.campo input,.campo select,.campo textarea{min-height:44px;padding:0 12px;border:1px solid var(--borde2);border-radius:8px;background:var(--blanco);color:var(--texto);width:100%}.campo textarea{padding:10px 12px;min-height:80px;resize:vertical}.campo input:focus,.campo select:focus,.campo textarea:focus,.buscar:focus{outline:2px solid var(--verde);outline-offset:1px}.kv{display:flex;flex-wrap:wrap;gap:16px 32px}.kv div small{display:block;font-size:12px;color:var(--texto2)}.kv div b{font-size:14px;font-weight:600}.vacio-campo{padding:2px 10px;border-radius:10px;background:var(--soon-bg);color:var(--soon-fg);font-weight:500}.tit-ficha{display:flex;align-items:center;gap:16px}.tit-ficha .circ{width:56px;height:56px;border-radius:28px;background:var(--side);border:1px solid var(--pastel);display:grid;place-items:center;font-size:18px;font-weight:700;color:var(--verde-osc)}.tit-ficha h1{font-size:26px}.fondo{position:fixed;top:0;right:0;bottom:0;left:0;background:#14201c73;display:grid;place-items:center;padding:16px;z-index:20}.ventana{background:var(--blanco);border-radius:12px;width:100%;max-width:560px;max-height:92vh;overflow:auto;padding:24px;display:flex;flex-direction:column;gap:16px}.ventana h2{font-size:18px}.ventana .pie-v{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.login{min-height:100%;display:grid;place-items:center;padding:24px}.login form{width:100%;max-width:380px;background:var(--blanco);border:1px solid var(--borde);border-radius:12px;padding:28px;display:flex;flex-direction:column;gap:16px}.login .marca{padding:0}.progreso{height:10px;border-radius:5px;background:#e3eae6;overflow:hidden}.progreso>div{height:10px;background:var(--verde);transition:width .2s}.mini{font-size:13px;color:var(--texto2)}ul.sin{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}@media (max-width: 860px){.side{display:none}.main{padding:16px 16px 88px;gap:16px}.cab h1{font-size:22px}.bottomnav{display:flex;position:fixed;left:0;right:0;bottom:0;background:var(--blanco);border-top:1px solid var(--borde);z-index:10;padding-bottom:env(safe-area-inset-bottom)}.bottomnav a{flex:1;min-height:56px;display:flex;align-items:center;justify-content:center;text-decoration:none;color:var(--texto);font-size:12px;font-weight:500;border-top:3px solid transparent}.bottomnav a.activo{font-weight:700;border-top-color:var(--verde)}.tabla-escritorio{display:none}.lista-movil{display:flex;flex-direction:column;gap:12px;padding:16px}.tarjeta{display:block;text-decoration:none;color:var(--texto);background:var(--blanco);border:1px solid var(--borde);border-radius:12px;padding:14px 16px}.tarjeta .fila1{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.tarjeta b{font-size:15px}.tarjeta .sub{font-size:13px;color:var(--texto2);margin-top:2px}.buscar{margin-left:0;flex:1 1 100%}.form{grid-template-columns:minmax(0,1fr)}.tit-ficha h1{font-size:20px}.tit-ficha .circ{width:48px;height:48px}}
