/* Portal de clientes (Carlos, 2026-11-05): página propia en clientes.cmgnexus.es, sin la SPA interna.
   Misma paleta que el ERP y que el enlace del presupuesto (quote-portal.css). */
:root{--navy:#111714;--blue:#159c84;--blue-dark:#087562;--text:#171c19;--muted:#5e6862;--line:#d2d9d4;--line-control:#aeb8b2;--soft:#e6f6f2;--red:#a72b22;--red-soft:#fef0ef;--turquoise:#61c8b7;--bg:#f1f5f3;font-family:Arial,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-height:100vh;display:flex;flex-direction:column}
button,input{font:inherit}button,a,input{touch-action:manipulation}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.portal-top{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px clamp(16px,4vw,40px);background:#fff;border-bottom:4px solid var(--turquoise)}
.portal-brand{display:flex;align-items:center;gap:14px;color:var(--muted);text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.portal-brand img{width:150px;height:auto}
.portal-who{display:flex;align-items:center;gap:14px;text-align:right}
.portal-who strong,.portal-who small{display:block}.portal-who small{color:var(--muted);font-size:12px}
.portal-link{border:0;background:none;color:var(--blue-dark);font-weight:700;cursor:pointer;padding:6px 0}
main{flex:1;width:min(100%,1040px);margin:0 auto;padding:clamp(18px,3vw,36px) clamp(14px,3vw,24px)}
.portal-auth{display:grid;place-items:center;min-height:60vh}
.portal-card{width:min(100%,460px);background:#fff;border-top:5px solid var(--blue-dark);padding:clamp(22px,4vw,38px)}
.portal-form{display:grid;gap:16px}
.portal-kicker{margin:0;color:var(--blue-dark);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.16em}
.portal-form h1{margin:0;font-size:28px;letter-spacing:-.02em}
.portal-help{margin:0;color:var(--muted);font-size:14px;line-height:1.5}
.portal-form label{display:grid;gap:6px;font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.portal-form input{width:100%;min-height:50px;padding:0 13px;border:1px solid var(--line-control);border-radius:4px;background:#fbfcfb;color:var(--text);text-transform:none;letter-spacing:normal}
.portal-form input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(21,156,132,.13);outline:0}
.portal-button{min-height:50px;border:0;border-radius:4px;background:var(--blue-dark);color:#fff;font-weight:700;cursor:pointer;padding:0 20px}
.portal-button:disabled{opacity:.55;cursor:wait}
.portal-error{margin:0;padding:11px 13px;border-left:3px solid var(--red);background:var(--red-soft);color:var(--red);font-size:13px}
.portal-foot{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.portal-foot a,.portal-footer a,.portal-panel-head a{color:var(--blue-dark)}
.portal-tabs{display:flex;gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:18px}
.portal-tabs button{flex:1;min-height:56px;border:0;background:#fff;color:var(--text);font-weight:700;cursor:pointer}
.portal-tabs button.active{background:var(--soft);color:var(--blue-dark);box-shadow:inset 0 -3px 0 var(--turquoise)}
.portal-panel{background:#fff;border:1px solid var(--line);padding:clamp(16px,3vw,28px)}
.portal-panel-head h2{margin:0 0 6px;font-size:22px}.portal-panel-head p{margin:0 0 18px;color:var(--muted);font-size:14px;line-height:1.5}
.portal-empty{margin:0;padding:28px;text-align:center;color:var(--muted)}
.portal-list{display:grid;gap:8px}
.portal-row{display:grid;grid-template-columns:150px minmax(0,1fr) 150px 130px;gap:14px;align-items:center;width:100%;min-height:68px;padding:12px 14px;border:1px solid var(--line);border-left:3px solid var(--blue);background:#fff;color:var(--text);text-align:left}
button.portal-row{cursor:pointer}button.portal-row:hover{background:#f4faf8}
.portal-row.cancelled{border-left-color:#9aa7a1;opacity:.7}
.portal-row>span{display:block}.portal-row strong,.portal-row small{display:block}
.portal-row small{color:var(--muted);font-size:12px;margin-top:3px;overflow-wrap:anywhere}
.portal-row .portal-number{font-weight:850;color:var(--blue-dark);letter-spacing:.03em}
.portal-row .portal-amount{text-align:right;font-variant-numeric:tabular-nums;font-weight:750}
.portal-badge{display:inline-block;padding:5px 9px;background:var(--soft);color:var(--blue-dark);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.portal-badge.warn{background:#fff6dc;color:#8a6400}.portal-badge.off{background:#eef1ef;color:#59645f}.portal-badge.ok{background:#e6f6f2;color:#087562}
.portal-more{margin-top:14px;display:flex;justify-content:center}
.portal-detail{background:#fff;border:1px solid var(--line);padding:clamp(16px,3vw,28px)}
.portal-order-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start;padding:14px 0 18px;border-bottom:1px solid var(--line)}
.portal-order-head h2{margin:4px 0;font-size:24px}.portal-order-head p{margin:4px 0;color:var(--muted);font-size:14px}
.portal-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:18px 0}
.portal-facts div{padding:12px;background:#f7faf9;border:1px solid var(--line)}
.portal-facts dt{margin:0;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.portal-facts dd{margin:4px 0 0;overflow-wrap:anywhere}
.portal-lines{display:grid;gap:6px}
.portal-line{display:grid;grid-template-columns:minmax(0,1fr) 150px 130px;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);background:#fff}
.portal-line h3{margin:0;font-size:15px;overflow-wrap:anywhere}.portal-line p{margin:4px 0 0;color:var(--muted);font-size:13px}
.portal-line .portal-amount{text-align:right;font-variant-numeric:tabular-nums;font-weight:750}
.portal-totals{max-width:360px;margin:20px 0 0 auto}.portal-totals p{display:flex;justify-content:space-between;gap:16px;margin:6px 0}
.portal-totals .grand{border-top:2px solid var(--blue-dark);padding-top:12px;font-size:20px;font-weight:750}
.portal-multiline{white-space:pre-wrap;overflow-wrap:anywhere}
.portal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.portal-button.secondary{background:#fff;color:var(--text);border:1px solid #bac3ce}
.portal-status{margin:14px 0 0;padding:11px 13px;border-left:3px solid var(--blue);background:var(--soft);color:var(--blue-dark);font-size:13px}
.portal-status.error{border-left-color:var(--red);background:var(--red-soft);color:var(--red)}
.portal-footer{padding:20px clamp(16px,4vw,40px);color:var(--muted);font-size:13px;text-align:center}
@media(max-width:720px){.portal-top{flex-wrap:wrap}.portal-who{text-align:left}.portal-row{grid-template-columns:1fr auto}.portal-row .portal-amount{grid-column:2;grid-row:1}.portal-row>span:nth-child(2){grid-column:1/-1}.portal-row>span:nth-child(3){grid-column:1}.portal-line{grid-template-columns:1fr}.portal-line .portal-amount{text-align:left}.portal-order-head{grid-template-columns:1fr}.portal-button{width:100%}.portal-totals{max-width:none}}
