:root{--ink: #122033;--muted: #5c6d82;--line: #d5e0ec;--canvas: #f2f6fb;--brand: #01429e;--brand-dark: #01357e;--brand-soft: #e6eef8;color:var(--ink);background:var(--canvas);font-family:Segoe UI,sans-serif;font-size:15px;line-height:1.45}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}h1,h2,h3{margin:0;font-weight:650}.muted{color:var(--muted)}.num{font-variant-numeric:tabular-nums}.shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--line);padding:20px 12px 16px;display:flex;flex-direction:column;gap:4px}.brand{padding:0 12px 8px}.nav-divider{border:0;border-top:1px solid var(--line);margin:8px 12px;width:auto}.brand-logo{display:block;max-width:175px;height:auto;margin-bottom:8px}.brand-meta{display:flex;flex-direction:column;gap:2px}.brand-legal{font-size:13px;font-weight:600;color:#1a1e24}.brand strong{display:block;font-size:18px}.nav-label{margin:6px 12px 4px;font-size:11px;letter-spacing:.08em;color:#7b8da3}.nav-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:transparent;border-radius:8px;padding:10px 12px;color:#2c3d52}.nav-item[aria-current=page]{background:var(--brand-soft);color:var(--brand);font-weight:650}.sidebar .spacer{flex:1}.main{padding:28px 32px 48px}.page-head,.row,.doc-button strong{display:flex;justify-content:space-between;gap:12px;align-items:center}.page-head{margin-bottom:16px}.page-head h1{font-size:26px}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.stat{text-align:left;background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}.stat strong{display:block;font-size:28px;margin-top:4px}.sheet{width:100%;border-collapse:collapse}.sheet th,.sheet td{padding:12px 10px;text-align:left;border-bottom:1px solid #e8eef5}.sheet th{color:var(--muted);font-size:13px;font-weight:650}.sheet tr[role=button]{cursor:pointer}.sheet tr[role=button]:hover{background:#f4f8fc}.sheet td:last-child,.sheet th:last-child,.lines td:nth-child(n+2),.totals td:last-child{text-align:right}.badge{border-radius:999px;padding:2px 8px;font-size:12px;background:var(--brand-soft);color:var(--brand)}.badge.anulada,.badge.rechazada{background:#fdecec;color:#9b2c2c}.badge.facturada{background:#eef2f6;color:var(--muted)}.struck{text-decoration:line-through}.btn,.link{border:1px solid #c5d3e4;background:#fff;border-radius:8px;padding:8px 14px}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-dark);border-color:var(--brand-dark)}.btn:disabled{cursor:progress;opacity:.72}.btn.danger{color:#9b2c2c}.btn.block{width:100%;margin-top:18px}.link{border:0;background:transparent;color:var(--brand);padding:0 0 12px}.row-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:6px}.row-actions .btn{padding:4px 10px}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.head-actions{margin-top:0}a.btn{text-decoration:none}label{display:block;margin-top:12px;font-size:14px}label.check{display:flex;align-items:center;gap:8px}label.check input{width:auto;margin-top:0}.ncf-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}input,textarea,select{width:100%;margin-top:4px;border:1px solid #c5d3e4;background:#fff;border-radius:8px;padding:10px 12px}.contact-row{display:flex;align-items:end;gap:8px}.contact-row>label{flex:1}.contact-list{list-style:none;margin:12px 0;padding:0}.contact-list li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid #e8eef5}.grid{display:grid;grid-template-columns:1.4fr 90px 130px 36px;gap:8px;align-items:end}.discount-row{display:grid;grid-template-columns:1fr 160px;gap:8px;align-items:end;margin-top:8px}.lines,.totals{width:100%;border-collapse:collapse;margin-top:16px}.lines th,.lines td,.totals td{padding:8px 4px}.lines th{text-align:left;color:var(--brand);font-size:13px}.totals{margin-left:auto;width:240px}.alert{background:#fdecec;color:#9b2c2c;border-radius:8px;padding:10px 12px;margin:12px 0}.status{margin:0 0 12px;color:var(--brand);font-weight:600}.main.busy{cursor:progress}label:has(:user-invalid),label.invalid{color:#9b2c2c}label:has(:user-invalid):after,label.invalid:after{content:"Requerido";display:block;margin-top:4px;font-size:12px;font-weight:400}input:user-invalid,select:user-invalid,textarea:user-invalid,label.invalid input,label.invalid select,label.invalid textarea{border-color:#c24545;background:#fff6f6}.empty{padding:28px 8px}.modal{border:0;border-radius:12px;padding:22px;width:min(420px,calc(100% - 32px));box-shadow:0 16px 50px #1418212e}.modal::backdrop{background:#14182173}.modal h2{margin-bottom:4px}.gate{min-height:100vh;display:grid;grid-template-columns:minmax(280px,1.15fr) minmax(340px,.85fr)}.gate.plain{grid-template-columns:1fr;place-items:center;padding:24px;background:var(--canvas)}.gate-hero{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:22px;padding:56px 48px;color:#fff;background:radial-gradient(circle at 18% 18%,rgb(255 255 255 / 18%),transparent 28%),radial-gradient(circle at 82% 78%,rgb(120 176 255 / 28%),transparent 36%),linear-gradient(155deg,#0160d6,#01429e 46%,#012a66)}.gate-circuit{position:absolute;left:-12px;top:12%;width:min(560px,108%);height:auto;color:#ffffff57}.gate-copy{position:relative}.gate-copy p{margin:0;letter-spacing:.18em;font-size:13px;font-weight:650}.gate-copy h2{margin:10px 0 8px;font-size:56px;line-height:.95;letter-spacing:-.03em}.gate-site{display:inline-flex;margin-top:8px;padding:6px 14px;border:1px solid rgb(255 255 255 / 55%);border-radius:999px;background:#ffffff24;color:#fff;font-size:14px;font-weight:650;letter-spacing:.02em;text-decoration:none}.gate-site:hover{background:#ffffff3d}.gate-panel{display:grid;place-items:center;padding:32px 24px;background:radial-gradient(circle at 50% 0%,rgb(1 66 158 / 8%),transparent 42%),var(--canvas)}.gate-card{width:min(400px,100%);background:#fff;border:0;border-radius:20px;padding:32px 28px 26px;box-shadow:0 22px 50px #01429e24}.gate-card h1{color:var(--brand);font-size:28px}.gate-card .btn.block{padding:12px 16px;font-weight:650}.gate-logo{display:block;max-width:250px;height:auto;margin:0 auto 20px}.mark{width:42px;height:42px;display:grid;place-items:center;border-radius:10px;background:var(--brand);color:#fff;font-weight:700;margin-bottom:14px}.detail-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid #e8eef5}.detail-logo{max-width:175px;height:auto}.detail-heading{text-align:right}.detail-heading .row{justify-content:flex-end}.detail-ncf{margin-top:4px}.quote-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.9fr);gap:16px;align-items:start}.ai-box{display:grid;gap:8px;margin:14px 0;padding:12px;border:1px solid #c5d6ee;border-radius:10px;background:#f4f8fd}.ai-title{display:flex;align-items:center;gap:8px}.ai-logo{width:22px;height:22px;flex:none}.paper{position:sticky;top:16px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}.paper-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid #e8eef5}.paper-logo{width:140px;height:auto}.paper-meta{text-align:right}.paper-label{margin-top:14px;font-size:15px}.deliverables{margin:8px 0 0;padding-left:18px}.paper-rate{white-space:pre-line;margin-top:12px}.party{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin:8px 0}.party h3{margin:0 0 4px}.party-contact{text-align:right}.party-lines{white-space:pre-line}@media(max-width:800px){.shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line)}.nav-label,.nav-divider,.sidebar .spacer{display:none}.sidebar{flex-direction:row;overflow:auto;align-items:center}.brand-logo{max-width:130px;margin-bottom:0}.detail-top{flex-direction:column;align-items:flex-start}.detail-heading{text-align:left}.detail-heading .row{justify-content:flex-start}.gate{grid-template-columns:1fr}.gate-hero{min-height:210px;padding:28px 24px}.gate-copy h2{font-size:40px}.gate-circuit{top:8%;width:420px}.quote-layout,.party{grid-template-columns:1fr}.paper{position:static}.stats,.grid,.ncf-nums{grid-template-columns:1fr}.main{padding:18px 14px 32px}}
