:root{--ink:#1b2430;--muted:#5b6675;--line:#d5dae1;--bg:#f3f5f8;--card:#fff;--accent:#1f5fd1;--warn-bg:#fff4d6;--warn-fg:#4d3300;--err-bg:#fbe1e1;--err-fg:#7a1d1d}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font:14px/1.4 IBM Plex Sans,system-ui,sans-serif}header{background:var(--card);border-bottom:1px solid var(--line)}header .in,main{max-width:1440px;margin:0 auto;padding:0 32px}header .in{flex-wrap:wrap;align-items:center;gap:28px;min-height:52px;display:flex}header strong{font-weight:600}main{flex-direction:column;gap:20px;padding-top:24px;padding-bottom:48px;display:flex}h1{letter-spacing:-.01em;margin:0;font-size:28px;font-weight:600}p.sub{color:var(--muted);margin:4px 0 0}.fila{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}button,.btn{min-height:44px;font:inherit;cursor:pointer;color:var(--ink);background:#fff;border:1px solid #c6ccd5;border-radius:8px;padding:0 16px;font-weight:500}button.primario{background:var(--accent);border-color:var(--accent);color:#fff}button:disabled{opacity:.6;cursor:default}.tabla{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:760px}th{text-align:left;border-bottom:1px solid var(--line);color:var(--muted);background:#f8f9fb;padding:10px 16px;font-size:12px;font-weight:500}td{border-bottom:1px solid #eef1f5;padding:12px 16px}.cod{background:#eef1f5;border-radius:6px;padding:1px 8px;font-size:12px;font-weight:500}.aviso{border-radius:10px;padding:12px 16px}.aviso.warn{background:var(--warn-bg);color:var(--warn-fg);border:1px solid #e3c06a}.aviso.err{background:var(--err-bg);color:var(--err-fg)}.aviso.ok{color:#14502d;background:#ddf3e5}.vacio{text-align:center;color:var(--muted);padding:32px}form{background:var(--card);border:1px solid var(--line);border-radius:12px;gap:16px;max-width:720px;padding:20px;display:grid}label{flex-direction:column;gap:6px;font-weight:500;display:flex}input,select{min-height:44px;font:inherit;background:#fff;border:1px solid #c6ccd5;border-radius:8px;padding:0 12px}.dos{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=640px){header .in,main{padding-left:16px;padding-right:16px}.dos{grid-template-columns:1fr}}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}h2{margin:0;font-size:20px;font-weight:600}button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.gantt{flex-direction:column;gap:12px;display:flex}.gantt-caja{padding:0}.gantt-int{position:relative}.gantt-fila{border-bottom:1px solid #eef1f5;min-height:52px;display:flex}.gantt-cab{border-bottom:1px solid var(--line);background:#f8f9fb;min-height:32px}.gantt-nombre{background:var(--card);z-index:2;border-right:1px solid var(--line);flex-direction:column;flex:0 0 220px;justify-content:center;padding:8px 16px;display:flex;position:sticky;left:0}.gantt-cab .gantt-nombre{background:#f8f9fb}.gantt-nombre .sub{margin:0;font-size:12px}.gantt-tarde{color:var(--err-fg)}.gantt-carril{flex:1;position:relative}.gantt-sem{color:var(--muted);border-left:1px solid var(--line);padding-left:4px;font-size:11px;position:absolute;top:8px}.gantt-hoy{border-left:2px dashed var(--accent);z-index:1;position:absolute;top:0;bottom:0}.gantt-barra{background:var(--accent);border:2px solid var(--accent);border-radius:4px;height:16px;position:absolute;top:18px}.gantt-barra.base{background:#dce5f7;border-color:#9db4e4}.gantt-barra.pendiente{background:#fff;border-style:dashed}.gantt-barra.hecha{opacity:.75;background:#4c6a9e;border-color:#4c6a9e}.gantt-hito{color:var(--ink);z-index:1;font-size:18px;line-height:24px;position:absolute;top:14px;transform:translate(-50%)}.gantt-hito.pendiente{opacity:.55}.gantt-hito.entrega{color:var(--ink)}.gantt-hito.entrega.tarde{color:var(--err-fg)}.gantt-leyenda{margin:0;font-size:12px}button.enlace{min-height:44px;color:var(--accent);text-align:left;background:0 0;border:0;padding:0;text-decoration:underline}textarea{font:inherit;resize:vertical;background:#fff;border:1px solid #c6ccd5;border-radius:8px;padding:10px 12px}fieldset{border:1px solid var(--line);border-radius:10px;gap:12px;padding:12px;display:grid}legend{padding:0 6px;font-weight:500}.docs{background:var(--card);border:1px solid var(--line);border-radius:12px;gap:16px;max-width:720px;padding:20px;display:grid}.sugerencia{background:#eef3fc;border:1px solid #c9d8f3;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;font-size:13px;font-weight:400;display:flex}.sugerencia button{flex:none;min-height:36px}.hoja{background:var(--card);border:1px solid var(--line);border-radius:12px;gap:8px;padding:20px;display:grid}.hoja h3{margin:12px 0 0;font-size:15px}.hoja p,.hoja ul{margin:4px 0}.datos{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:0;display:grid}.datos dt{color:var(--muted);font-size:12px}.datos dd{margin:0;font-weight:500}@media print{header,button,.no-imprimir,.gantt,form{display:none!important}body{background:#fff}main{padding:0}.hoja{border:0}}
