/* Páginas públicas para clientes (cotizacion.php, factura.php). Marca Techsspty: navy #091326, acento #C2410C con texto blanco. */
:root { --navy:#091326; --acento:#C2410C; --acento-osc:#9a3412; --borde:#e2e8f0; --texto:#0f172a; --suave:#475569; --fondo:#f1f5f9; }
* { box-sizing:border-box; }
body { margin:0; background:var(--fondo); color:var(--texto); font:16px/1.55 Inter, system-ui, sans-serif; }
header { background:var(--navy); padding:14px 16px; }
header .pill { display:inline-block; background:#fff; border-radius:6px; padding:3px 8px; }
header img { height:30px; display:block; }
main { max-width:640px; margin:0 auto; padding:20px 16px 48px; }
h1 { font:700 1.6rem/1.15 'Space Grotesk', sans-serif; letter-spacing:-.02em; margin:4px 0 6px; }
h2 { font:700 1.05rem/1.2 'Space Grotesk', sans-serif; margin:0 0 10px; }
.sub { color:var(--suave); margin:0; }
.caja { background:#fff; border:1px solid var(--borde); border-radius:12px; padding:18px; margin-top:16px; }
.dato { display:flex; justify-content:space-between; gap:12px; padding:6px 0; border-bottom:1px solid #f1f5f9; font-size:.95rem; }
.dato:last-child { border-bottom:0; }
.dato span:first-child { color:var(--suave); }
.dato span:last-child { text-align:right; font-weight:500; }
.lineas { width:100%; border-collapse:collapse; font-size:.93rem; }
.lineas th { text-align:left; color:var(--suave); font-weight:500; font-size:.82rem; padding:0 0 8px; border-bottom:1px solid var(--borde); }
.lineas td { padding:10px 0; border-bottom:1px solid #f1f5f9; vertical-align:top; }
.lineas td.num, .lineas th.num { text-align:right; white-space:nowrap; padding-left:12px; }
.lineas .cant { color:var(--suave); font-size:.85rem; display:block; }
.totales { margin-top:10px; }
.totales .dato:last-child span { font:700 1.15rem 'Space Grotesk', sans-serif; color:var(--texto); }
.estado { display:inline-block; font-size:.82rem; font-weight:600; border-radius:999px; padding:3px 10px; background:#e2e8f0; color:var(--texto); }
.estado.ok { background:#dcfce7; color:#166534; }
.estado.pend { background:#ffedd5; color:#9a3412; }
.pre { white-space:pre-line; color:var(--suave); font-size:.92rem; margin:0; }
label { display:block; font-weight:600; font-size:.92rem; margin:14px 0 6px; }
.opc { font-weight:400; color:var(--suave); }
input[type=text], input[type=file], textarea { width:100%; border:1px solid #cbd5e1; border-radius:8px; padding:11px 12px; font:inherit; background:#fff; }
input:focus, textarea:focus { outline:2px solid var(--acento); outline-offset:1px; border-color:transparent; }
textarea { min-height:80px; resize:vertical; }
.boton { display:block; width:100%; margin-top:16px; background:var(--acento); color:#fff; border:0; border-radius:10px; padding:14px; font:600 1rem Inter, sans-serif; cursor:pointer; text-align:center; text-decoration:none; }
.boton:hover { background:var(--acento-osc); }
.boton:active { transform:translateY(1px); }
.boton[disabled] { opacity:.6; cursor:wait; }
.boton.sec { background:#fff; color:var(--texto); border:1px solid #cbd5e1; }
.boton.sec:hover { background:#f8fafc; }
.enlace { background:none; border:0; color:var(--acento); font:600 .92rem Inter, sans-serif; padding:10px 0 0; cursor:pointer; text-decoration:underline; display:inline-block; }
.alerta { border-radius:10px; padding:12px 14px; margin-top:16px; font-size:.95rem; }
.alerta.error { background:#fef2f2; color:#b91c1c; border:1px solid #fecaca; }
.alerta.ok { background:#f0fdf4; color:#166534; border:1px solid #bbf7d0; }
.nota { font-size:.82rem; color:var(--suave); margin-top:12px; }
.copiar { display:flex; gap:8px; align-items:center; justify-content:space-between; background:#f8fafc; border:1px solid var(--borde); border-radius:8px; padding:10px 12px; margin-top:8px; font-size:.95rem; }
.copiar button { border:1px solid #cbd5e1; background:#fff; border-radius:6px; padding:6px 10px; font:600 .82rem Inter, sans-serif; cursor:pointer; }
.oculto { display:none; }
footer { text-align:center; color:#94a3b8; font-size:.8rem; padding:0 16px 24px; }
