:root{--bg: #f2f6f5;--surface: #ffffff;--surface2: #e8efed;--ink: #1b2928;--muted: #586968;--line: #d5dfdc;--lanz: #6e3f86;--relz: #1f7b75;--rest: #5e7a2a;--camp: #b8456a;--evt: #9a6f14;--prog: #3b5b93;--display: "Italiana", "Didot", "Bodoni 72", Georgia, serif;--sans: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--radius-card: 18px;--radius-pill: 999px;--max-width: 1320px;--gutter: clamp(16px, 3vw, 36px)}@media (prefers-color-scheme: dark){:root{--bg: #0e1514;--surface: #162020;--surface2: #1e2a29;--ink: #e3ecea;--muted: #96a8a5;--line: #2a3735;--lanz: #b78fd3;--relz: #55c2b8;--rest: #a9c66b;--camp: #ec86a4;--evt: #ddb55e;--prog: #8aa9e0}}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 var(--sans)}.app{max-width:var(--max-width);margin:0 auto;padding:0 var(--gutter)}h1{font-family:var(--display);font-weight:400}:focus-visible{outline:2px solid var(--prog);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.app{padding-top:clamp(20px,4vw,44px);padding-bottom:48px}button,select,input{font:inherit;color:inherit}button{cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.vacio,.apagado{color:var(--muted)}.hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:28px;align-items:end;margin-bottom:28px}.hero h1{font-size:clamp(34px,5vw,58px);line-height:1.05;margin:0 0 12px}.hero-sub{color:var(--muted);margin:0;max-width:56ch}.hero-tarjetas{display:grid;grid-template-columns:1fr 1fr;gap:14px}.hero-tarjeta{display:flex;flex-direction:column;gap:4px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);padding:16px 18px}button.hero-tarjeta:hover{border-color:var(--muted)}.hero-etiqueta{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.hero-dias{font-family:var(--display);font-size:30px;line-height:1.1}.hero-texto{font-weight:600}.hero-meta{font-size:13px;color:var(--muted)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.tabs-vista,.tabs-mes{display:flex;gap:6px;flex-wrap:wrap}.pildora{display:inline-flex;align-items:center;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-pill);padding:6px 14px;text-decoration:none;color:var(--ink);font-size:14px;text-transform:none}.pildora:hover{border-color:var(--muted)}.pildora.active,.pildora[aria-current=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}.tabs-mes .pildora{text-transform:capitalize}.chips-tipo{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:6px;border-radius:var(--radius-pill);padding:5px 12px;font-size:13px;border:1px solid var(--line);background:var(--surface);color:var(--muted)}.chip[aria-pressed=true]{border-color:var(--c);background:color-mix(in srgb,var(--c) 15%,var(--surface));color:var(--ink)}.chip-punto{width:9px;height:9px;border-radius:50%;border:2px solid var(--c)}.chip[aria-pressed=true] .chip-punto{background:var(--c)}.toolbar-fin{display:flex;gap:8px;margin-left:auto}.select-resp select,.estado select{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-pill);padding:6px 12px}.sync{min-height:1.5em;margin:6px 0 14px;font-size:13px;color:var(--muted)}.sync-sin-conexion{color:var(--camp)}.miniatura{display:inline-grid;place-items:center;flex:none;overflow:hidden;color:var(--c);background:color-mix(in srgb,var(--c) 15%,var(--surface));border-radius:12px}.miniatura img{width:100%;height:100%;object-fit:cover}.miniatura svg{width:62%;height:62%}.num-hito{display:inline-grid;place-items:center;flex-shrink:0;min-width:28px;height:22px;padding:0 6px;margin-right:6px;border-radius:var(--radius-pill);font-size:12px;font-weight:700;color:var(--surface);background:var(--c, var(--ink))}.num-hito:empty{visibility:hidden}.etiqueta{display:inline-block;border-radius:var(--radius-pill);padding:3px 12px;font-size:13px;background:var(--surface2)}.etiquetas{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0}.gantt-scroll{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);--col: 300px}.gantt{min-width:max(1000px,calc(var(--col) + var(--meses, 6) * 70px))}.gantt-cabecera,.gantt-fila{display:grid;grid-template-columns:var(--col) minmax(0,1fr);padding-right:12px}.gantt-col-fija{position:sticky;left:0;z-index:2;background:var(--surface);border-right:1px solid var(--line)}.gantt-meses{position:relative;min-height:46px}.gantt-mes{position:absolute;top:0;bottom:0;display:flex;align-items:center;padding:0 8px;font-family:var(--display);font-size:18px;text-transform:capitalize;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:1px solid var(--line)}.gantt-mes:first-child{border-left:0}.gantt-mes.par,.gantt-franja{background:color-mix(in srgb,var(--ink) 3%,transparent)}.gantt-franja{position:absolute;top:0;bottom:0;pointer-events:none}.gantt-fila{border-top:1px solid var(--line)}.gantt-fila:hover .gantt-etiqueta,.gantt-fila:hover .gantt-pista{background:color-mix(in srgb,var(--c) 6%,var(--surface))}.gantt-etiqueta{display:flex;align-items:center;gap:8px;text-align:left;border:0;border-right:1px solid var(--line);padding:8px 12px;min-height:58px}.gantt-mini{width:36px;height:36px}.gantt-textos{display:flex;flex-direction:column;min-width:0}.gantt-titulo{font-weight:600;line-height:1.25}.gantt-resp{font-size:12px;color:var(--muted)}.gantt-pista{position:relative;cursor:pointer;min-height:58px}.gantt-linea-mes{position:absolute;top:0;bottom:0;border-left:1px solid var(--line)}.gantt-hoy{position:absolute;top:0;bottom:0;border-left:2px dashed var(--camp);z-index:1}.gantt-barra{position:absolute;top:50%;height:22px;transform:translateY(-50%);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--c) 18%,var(--surface));border:1.5px solid var(--c)}.gantt-barra.cortada{border-right:0;border-radius:var(--radius-pill) 0 0 var(--radius-pill);background:linear-gradient(to right,color-mix(in srgb,var(--c) 18%,var(--surface)) 70%,color-mix(in srgb,var(--c) 4%,var(--surface)))}.gantt-hasta{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:11px;white-space:nowrap;color:var(--ink)}.rombo{position:absolute;top:50%;width:12px;height:12px;padding:0;transform:translate(-50%,-50%) rotate(45deg);border:2px solid var(--c);background:var(--surface);z-index:2}.rombo.confirmado{background:var(--c)}.rombo.grande{width:18px;height:18px;top:40%}.gantt-fecha-evento{position:absolute;top:calc(40% + 14px);transform:translate(-50%);font-size:11px;white-space:nowrap;color:var(--muted);pointer-events:none}.gantt-fecha-evento.izq{transform:translate(-12px)}.gantt-fecha-evento.der{transform:translate(calc(-100% + 12px))}.leyenda{display:flex;flex-wrap:wrap;gap:18px;list-style:none;padding:0;margin:12px 0 0;font-size:13px;color:var(--muted)}.leyenda li{display:flex;align-items:center;gap:8px}.rombo-leyenda{display:inline-block;width:10px;height:10px;transform:rotate(45deg);border:2px solid var(--c, var(--ink));background:var(--surface);flex:none}.rombo-leyenda.confirmado,.confirmado>.rombo-leyenda{background:var(--c, var(--ink))}.pildoras-activas{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0}.pildora-accion{border:1px solid var(--c);background:color-mix(in srgb,var(--c) 15%,var(--surface));border-radius:var(--radius-pill);padding:4px 12px;font-size:13px}.calendario{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden}.cal-fila,.cal-cuerpo{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cal-dia-semana{padding:8px;font-size:12px;font-weight:600;color:var(--muted);text-align:center}.cal-celda{min-height:110px;padding:6px;border-top:1px solid var(--line);border-left:1px solid var(--line);display:flex;flex-direction:column;gap:4px}.cal-celda:nth-child(7n+1){border-left:0}.cal-celda.finde{background:color-mix(in srgb,var(--surface2) 60%,var(--surface))}.cal-celda.finde .cal-num{color:var(--muted)}.cal-num{font-size:13px;font-weight:600;width:26px;height:26px;display:grid;place-items:center;border-radius:50%}.cal-celda.hoy{box-shadow:inset 0 0 0 2px var(--camp)}.cal-celda.hoy .cal-num{background:var(--camp);color:var(--surface)}.evento{display:block;width:100%;text-align:left;font-size:12px;line-height:1.3;border-radius:8px;padding:3px 6px;border:1.5px solid var(--c);background:color-mix(in srgb,var(--c) 15%,var(--surface))}.evento.confirmado{background:var(--c);color:var(--surface)}.evento.propuesto{border-style:dashed}.evento.entrega{border-style:dotted;background:var(--surface)}.evento-tipo{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.agenda{display:none;list-style:none;padding:0;margin:0}.agenda>li{padding:12px 0;border-top:1px solid var(--line)}.agenda>li.hoy .agenda-fecha{color:var(--camp)}.agenda-fecha{display:block;font-weight:600;margin-bottom:6px}.agenda-eventos{display:flex;flex-direction:column;gap:4px}.fichas{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.tarjeta{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden}.tarjeta-imagen{width:100%;height:150px;border-radius:0}.tarjeta-imagen svg{width:72px;height:72px}.tarjeta-cuerpo{display:flex;flex-direction:column;gap:4px;padding:14px 16px 16px;flex:1}.tarjeta-tipo,.panel-tipo{display:flex;align-items:center;margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--c);font-weight:600}.tarjeta h3{margin:2px 0 4px;font-size:17px;line-height:1.3}.tarjeta-meta{margin:0;font-size:13px;color:var(--muted)}.tarjeta-materiales{margin:8px 0 4px;font-size:13px}.progreso{height:6px;border-radius:var(--radius-pill);background:var(--surface2);overflow:hidden}.progreso>span{display:block;height:100%;background:var(--c)}.tarjeta-pie{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:12px}.panel-fondo{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:color-mix(in srgb,var(--ink) 35%,transparent);display:flex;justify-content:flex-end;animation:aparecer .15s ease-out}.panel{position:relative;width:min(520px,100%);height:100%;overflow-y:auto;background:var(--surface);padding:24px 24px 40px;box-shadow:-8px 0 30px color-mix(in srgb,var(--ink) 20%,transparent);animation:deslizar .2s ease-out}.panel h2{font-family:var(--display);font-weight:400;font-size:32px;line-height:1.1;margin:6px 0}.panel h3{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px}.panel-cerrar{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--surface);font-size:22px;line-height:1}.panel-imagen{width:100%;height:180px;margin-bottom:14px}.panel-imagen svg{width:80px;height:80px}.panel-meta{color:var(--muted);margin:0 0 8px}.panel-bloque{padding:14px 0;border-top:1px solid var(--line)}.panel-bloque p{margin:0}.panel-dos{display:grid;grid-template-columns:1fr 1fr;gap:12px}.hitos,.materiales{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.hitos{gap:0}.hitos li{display:grid;grid-template-columns:76px minmax(0,1fr) auto;align-items:start;gap:4px 12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.5}.hitos li:first-child{padding-top:0}.hito-fecha{font-weight:600}.hito-estado{padding:1px 9px;border-radius:var(--radius-pill);font-size:12px;white-space:nowrap}.confirmado>.hito-estado{background:color-mix(in srgb,var(--relz) 14%,var(--surface));color:var(--relz)}.propuesto>.hito-estado{border:1px dashed var(--muted);color:var(--muted)}.materiales label{display:flex;gap:8px;align-items:flex-start;font-size:14px}.materiales input{margin-top:3px;accent-color:var(--c)}.materiales .listo span{text-decoration:line-through;color:var(--muted)}body.con-panel{overflow:hidden}@keyframes aparecer{0%{opacity:0}}@keyframes deslizar{0%{transform:translate(40px);opacity:0}}@media (max-width: 860px){.hero{grid-template-columns:1fr}.toolbar-fin{margin-left:0}}@media (max-width: 640px){.hero-tarjetas{grid-template-columns:1fr}.gantt-scroll{--col: 200px}.gantt-mini,.calendario{display:none}.agenda{display:block}.panel{width:100%}}@media print{@page{size:A4 landscape;margin:10mm}body{background:#fff;font-size:11px}.app{max-width:none;padding:0}.toolbar,.sync,.panel-fondo,.tarjeta-pie,.tabs-mes{display:none!important}.hero{margin-bottom:12px}.gantt-scroll{overflow:visible;border:0;--col: 210px}.gantt{min-width:0}.gantt-col-fija{position:static}.gantt-fila,.tarjeta{break-inside:avoid}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.campo{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-pill);padding:6px 12px;max-width:100%}.panel-dos .campo{width:100%}.panel-anadir{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.panel-anadir .campo{flex:1 1 180px}.campo-error{flex-basis:100%;margin:0;font-size:13px;color:var(--camp)}.etiqueta{display:inline-flex;align-items:center;gap:4px}.etiqueta-quitar,.material-quitar{border:0;background:none;padding:0 4px;font-size:16px;line-height:1;color:var(--muted)}.etiqueta-quitar:hover,.material-quitar:hover{color:var(--camp)}.materiales li{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.materiales input:not(:disabled){cursor:pointer}.estado select:not(:disabled){cursor:pointer}.avisos{position:fixed;right:16px;bottom:16px;z-index:20;display:flex;flex-direction:column;gap:8px;max-width:min(420px,calc(100vw - 32px))}.aviso{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:12px;background:var(--ink);color:var(--bg);box-shadow:0 6px 24px color-mix(in srgb,var(--ink) 30%,transparent);font-size:14px;animation:aparecer .15s ease-out}.aviso button{border:0;background:none;color:inherit;font-size:18px;line-height:1;padding:0}@media print{.avisos,.panel-anadir,.etiqueta-quitar,.material-quitar{display:none!important}}.panel-imagen-acciones{display:flex;gap:6px;margin:-6px 0 14px}@media print{.panel-imagen-acciones{display:none!important}}.barra-usuario{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin:-12px 0 8px;font-size:13px;color:var(--muted)}.enlace{border:0;background:none;padding:0;color:var(--ink);text-decoration:underline;text-underline-offset:3px}@media print{.barra-usuario{display:none!important}}.entrada{max-width:460px;margin:clamp(40px,12vh,120px) auto 40px;padding:0 var(--gutter)}.entrada h1{font-size:clamp(30px,6vw,42px);line-height:1.1;margin:0 0 24px}.entrada-caja{display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);padding:22px 24px 24px}.entrada-caja h2{margin:0;font-size:20px}.entrada-caja p{margin:0}.entrada-campo{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.entrada-campo .campo{font-size:15px;padding:10px 14px}.entrada-aviso{padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--evt) 15%,var(--surface))}.boton-principal{justify-content:center;background:var(--ink);border-color:var(--ink);color:var(--bg);padding:10px 18px;font-weight:600}.boton-principal:hover{border-color:var(--ink);opacity:.9}.boton-principal:disabled{opacity:.6;cursor:default}.barra-usuario a{color:var(--ink)}.usuarios h2{font-family:var(--display);font-weight:400;font-size:34px;margin:8px 0}.usuarios-alta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:18px 0 24px;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card)}.usuarios-alta .campo[type=email]{flex:1 1 240px}.usuarios-check{display:flex;align-items:center;gap:6px;font-size:14px}.usuarios-tabla{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden;font-size:14px}.usuarios-tabla th,.usuarios-tabla td{text-align:left;padding:8px 12px;border-top:1px solid var(--line)}.usuarios-tabla th{font-size:12px;color:var(--muted);font-weight:600;border-top:0}.usuarios-tabla tr.inactivo td{color:var(--muted)}.usuarios-tabla tr.inactivo td:first-child{text-decoration:line-through}@media (max-width: 860px){.usuarios-tabla{display:block;overflow-x:auto}}.hero-periodo select{font-family:var(--display);font-size:22px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);padding:4px 14px;margin:0 0 10px}.hero-periodo select:disabled{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-color:transparent;background:transparent;padding-left:0;color:var(--muted)}.panel-formulario,.campos-accion{display:flex;flex-direction:column;gap:10px}.campos-fila{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.campo-etiqueta{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.campo-etiqueta .campo{font-size:14px;color:var(--ink);width:100%}textarea.campo{border-radius:12px;resize:vertical;font:inherit;font-size:14px}.panel-botones{display:flex;gap:8px}.panel-editar{margin:0 0 12px}.panel-modo{display:flex;gap:8px;margin:0 0 12px}.hitos-editables li,.hito-anadir{display:grid;grid-template-columns:150px 1fr auto;grid-template-areas:"fecha check accion" "texto texto texto";align-items:center;gap:6px 10px}.hitos-editables input[type=date],.hito-anadir input[type=date]{grid-area:fecha}.hitos-editables .hito-check,.hito-anadir .hito-check{grid-area:check}.hitos-editables .material-quitar,.hito-anadir button[type=submit]{grid-area:accion;justify-self:end}.hito-texto-campo{grid-area:texto;width:100%;resize:none;overflow:hidden;font:inherit;line-height:1.5}.hito-check{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);white-space:nowrap}.panel-peligro{border-top:1px solid var(--line)}.boton-peligro{border-color:var(--camp);color:var(--camp)}.boton-peligro:hover{background:color-mix(in srgb,var(--camp) 10%,var(--surface))}.usuarios section+section{margin-top:36px}@media (max-width: 640px){.campos-fila{grid-template-columns:1fr}.hitos-editables li,.hito-anadir{grid-template-columns:1fr auto auto}}@media print{.hero-periodo select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0}.panel-editar,.panel-modo,.panel-peligro,.toolbar-fin .boton-principal{display:none!important}}
