:root{--tinta: #1c2430;--tinta-suave: #5a6676;--fondo: #f5f6f8;--tarjeta: #ffffff;--borde: #d7dce3;--primario: #14532d;--primario-claro: #e7f3ec;--peligro: #9f1d1d;--peligro-claro: #fdeaea;--aviso: #92610c;--aviso-claro: #fdf3dd;--info: #1e4e79;--info-claro: #e8f1fa}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:system-ui,Segoe UI,Roboto,Arial,sans-serif;color:var(--tinta);background:var(--fondo);font-size:15px;line-height:1.45}h1,h2,h3,h4{line-height:1.2;margin:.4em 0}h1{font-size:1.35rem}h2{font-size:1.15rem}h3{font-size:1.02rem}a{color:var(--info)}.cabecera{background:var(--primario);color:#fff;padding:.5rem 1rem;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1rem}.cabecera .marca{font-weight:700;font-size:1.05rem;margin-right:auto}.cabecera nav{display:flex;flex-wrap:wrap;gap:.2rem}.cabecera nav a{color:#eaf3ee;text-decoration:none;padding:.3rem .55rem;border-radius:6px}.cabecera nav a.activo,.cabecera nav a:hover{background:#ffffff29;color:#fff}.cabecera .usuario{font-size:.85rem;opacity:.95}.contenido{max-width:1180px;margin:0 auto;padding:1rem}.tarjeta{background:var(--tarjeta);border:1px solid var(--borde);border-radius:10px;padding:1rem;margin-bottom:1rem}.tabla-envoltura{overflow-x:auto}table.tabla{border-collapse:collapse;width:100%;background:var(--tarjeta)}.tabla th,.tabla td{border:1px solid var(--borde);padding:.45rem .55rem;text-align:left;vertical-align:top}.tabla th{background:#eef1f5;font-weight:600;white-space:nowrap}.tabla tr:nth-child(2n) td{background:#fafbfc}.tabla .numero{text-align:right;white-space:nowrap}form.formulario,.formulario{display:grid;gap:.7rem;max-width:760px}.fila-campos{display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.campo{display:flex;flex-direction:column;gap:.22rem}.campo-etiqueta{font-weight:600;font-size:.9rem}.campo-error{color:var(--peligro);font-size:.85rem}input,select,textarea{font:inherit;color:inherit;padding:.45rem .5rem;border:1px solid var(--borde);border-radius:7px;background:#fff;max-width:100%}input:focus,select:focus,textarea:focus,button:focus{outline:3px solid #9ec5fe;outline-offset:1px}button{font:inherit;cursor:pointer;border-radius:7px}.boton-primario{background:var(--primario);color:#fff;border:1px solid var(--primario);padding:.5rem .9rem;font-weight:600}.boton-primario:disabled{opacity:.55;cursor:not-allowed}.boton-secundario{background:#fff;color:var(--tinta);border:1px solid var(--borde);padding:.45rem .8rem}.boton-peligro{background:#fff;color:var(--peligro);border:1px solid var(--peligro);padding:.45rem .8rem}.boton-silencioso{background:transparent;border:none;color:var(--info);padding:.25rem .4rem}.enlace{background:none;border:none;color:var(--info);text-decoration:underline;padding:0;cursor:pointer;font:inherit}.mensaje{padding:.55rem .7rem;border-radius:8px;border:1px solid}.mensaje-error{background:var(--peligro-claro);border-color:var(--peligro);color:var(--peligro)}.mensaje-exito{background:var(--primario-claro);border-color:var(--primario);color:var(--primario)}.cargando{color:var(--tinta-suave)}.texto-suave{color:var(--tinta-suave);font-size:.88rem}.insignia,.insignia-suave{display:inline-block;padding:.12rem .5rem;border-radius:999px;font-size:.8rem;font-weight:600;border:1px solid;white-space:nowrap}.insignia-suave{color:var(--tinta-suave);border-color:var(--borde);background:#fff}.etapa-borrador{background:#f0f0f0;border-color:#bbb;color:#444}.etapa-solicitado{background:var(--info-claro);border-color:var(--info);color:var(--info)}.etapa-en_cotizacion{background:#fff7e6;border-color:#b97c10;color:#8a5d0b}.etapa-cotizado{background:#fdf3dd;border-color:var(--aviso);color:var(--aviso)}.etapa-comprado{background:#eae6fb;border-color:#5b48a2;color:#4a3b85}.etapa-en_transito{background:#e6f4f9;border-color:#1272a0;color:#0f5e84}.etapa-recibido_parcial{background:#e3f2e8;border-color:#2f7d4f;color:#276a43}.etapa-recibido_total{background:var(--primario-claro);border-color:var(--primario);color:var(--primario)}.etapa-cerrado{background:#e8e8e8;border-color:#666;color:#333}.etapa-cancelado{background:var(--peligro-claro);border-color:var(--peligro);color:var(--peligro)}.aprobacion-pendiente{background:var(--aviso-claro);border-color:var(--aviso);color:var(--aviso)}.aprobacion-aprobada{background:var(--primario-claro);border-color:var(--primario);color:var(--primario)}.aprobacion-rechazada{background:var(--peligro-claro);border-color:var(--peligro);color:var(--peligro)}.aprobacion-sin_solicitar{background:#f0f0f0;border-color:#999;color:#555}.aprobacion-reemplazada{background:#eee;border-color:#888;color:#555}.atraso{color:var(--peligro);font-weight:700}.tablero{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.tablero .ficha{background:var(--tarjeta);border:1px solid var(--borde);border-radius:10px;padding:.7rem;text-align:center}.tablero .ficha b{display:block;font-size:1.5rem}.modal-fondo{position:fixed;inset:0;background:#0a0e1473;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50}.modal{background:#fff;border-radius:12px;padding:1rem;width:min(560px,100%);max-height:90vh;overflow:auto}.modal-cabecera{display:flex;justify-content:space-between;align-items:center}.modal-acciones{display:flex;gap:.6rem;justify-content:flex-end;margin-top:.8rem}.filtros{display:flex;flex-wrap:wrap;gap:.5rem;align-items:end;margin-bottom:.8rem}.filtros .campo{min-width:150px}.paginador{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.4rem;margin-top:.6rem;color:var(--tinta-suave);font-size:.9rem}.lista-adjuntos{list-style:none;padding:0;margin:.3rem 0}.lista-adjuntos li{padding:.25rem 0;border-bottom:1px dashed var(--borde)}.acceso{max-width:420px;margin:7vh auto;background:var(--tarjeta);border:1px solid var(--borde);border-radius:12px;padding:1.3rem}.acceso .marca-grande{text-align:center;font-size:1.25rem;font-weight:800;color:var(--primario)}.acciones-fila{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.separador{border:none;border-top:1px solid var(--borde);margin:.9rem 0}@media (max-width: 640px){.oculto-movil{display:none}body{font-size:14px}.contenido{padding:.6rem}}@media print{.cabecera,.filtros,button{display:none!important}}
