/* KALBRAS — Portal de Acreedores. Paleta: naranja #F25C05, negro #111111, gris #555555, crema #FDEBD9 */
:root{
  --orange:#F25C05; --orange-d:#C94A03; --ink:#111111; --gray:#555555; --cream:#FDEBD9;
  --bg:#FFFFFF; --surf:#FFFFFF; --surf2:#F7F7F6; --line:#E6E4E0; --fg:#1A1A1A; --fg2:#555555; --fg3:#8A8781;
  --ok:#1F7A43; --ok-bg:#E7F3EB; --prev:#555555; --prev-bg:#EFEEEC; --warn:#B4540A; --warn-bg:#FBEEDF; --due:#B3261E; --due-bg:#FBEAE8;
  --shadow:0 1px 2px rgba(17,17,17,.05),0 8px 22px rgba(17,17,17,.06); --radius:12px;
  --font:'Segoe UI',system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font);line-height:1.55;font-size:16px}
img{max-width:100%;display:block}
a{color:var(--orange-d);text-decoration:none}
h1,h2,h3{margin:0;line-height:1.2;font-weight:800}
p{margin:0}
.wrap{max-width:1060px;margin:0 auto;padding:0 20px}
.tnum{font-variant-numeric:tabular-nums}
.muted{color:var(--fg2)}
.eyebrow{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-d);font-weight:800}
.btn{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:11px 20px;font-weight:700;font-size:.95rem;border:1px solid transparent;cursor:pointer;background:var(--orange);color:#fff}
.btn:hover{background:var(--orange-d)}
.btn.ghost{background:transparent;color:var(--fg);border-color:var(--line)}
.btn.ghost:hover{border-color:var(--orange);color:var(--orange-d)}
.btn.sm{padding:7px 13px;font-size:.85rem}
.btn.danger{background:#fff;color:var(--due);border-color:var(--due-bg)}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;padding:4px 10px;border-radius:999px}
.badge:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.b-ok{color:var(--ok);background:var(--ok-bg)} .b-prev{color:var(--prev);background:var(--prev-bg)}
.b-warn{color:var(--warn);background:var(--warn-bg)} .b-due{color:var(--due);background:var(--due-bg)}

/* ---------- PUBLIC ---------- */
.pub-top{position:sticky;top:0;z-index:30;background:var(--ink);border-bottom:3px solid var(--orange)}
.pub-top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px}
.pub-top img{height:30px}
.pub-top .nav{display:flex;gap:20px;align-items:center}
.pub-top .nav a{color:rgba(255,255,255,.85);font-weight:600;font-size:.92rem}
.pub-top .nav a:hover{color:#fff}
.pub-top .nav .pill{background:var(--orange);color:#fff;padding:8px 15px;border-radius:999px}
@media(max-width:720px){.pub-top .nav a:not(.pill){display:none}}
.hero{background:var(--ink);color:#fff;padding:70px 0 60px;position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;right:-80px;top:-60px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(242,92,5,.25),transparent 70%)}
.hero h1{font-size:clamp(2rem,5.5vw,3.2rem);font-weight:900;letter-spacing:-.02em}
.hero .lead{font-size:clamp(1.05rem,2.3vw,1.3rem);margin-top:10px;font-weight:700;color:var(--cream)}
.hero .sub{max-width:56ch;margin-top:14px;color:rgba(255,255,255,.8)}
.hero .cta{margin-top:26px;display:flex;gap:12px;flex-wrap:wrap}
.hero .btn.ghost{color:#fff;border-color:rgba(255,255,255,.4)}
section.sec{padding:52px 0}
section.alt{background:var(--surf2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sec-head{max-width:62ch;margin-bottom:26px}
.sec-head h2{font-size:clamp(1.4rem,3.4vw,1.9rem)}
.sec-head p{color:var(--fg2);margin-top:8px}
.timeline{display:flex;gap:0;position:relative}
.timeline:before{content:"";position:absolute;left:0;right:0;top:10px;height:2px;background:var(--line)}
.tl{flex:1;text-align:center;padding:0 6px;position:relative}
.tl .node{width:14px;height:14px;border-radius:50%;background:var(--orange);border:3px solid #fff;box-shadow:0 0 0 1px var(--orange);margin:3px auto 12px;position:relative;z-index:1}
.tl .yr{font-weight:900;color:var(--orange-d)}
.tl p{font-size:.84rem;color:var(--fg2);margin-top:3px}
@media(max-width:680px){.timeline{flex-direction:column}.timeline:before{left:6px;right:auto;top:0;bottom:0;width:2px;height:auto}.tl{text-align:left;display:grid;grid-template-columns:30px 1fr;gap:2px 12px;padding:0 0 20px}.tl .node{margin:0}.tl .yr,.tl p{grid-column:2}}
.grid{display:grid;gap:16px}
.cards3{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.card{background:var(--surf);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.card h3{font-size:1.05rem;margin-top:10px}
.card .short{color:var(--fg2);font-size:.92rem;margin-top:8px}
.datalist{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px}
.datalist .k{font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--fg3);font-weight:700}
.datalist .v{font-weight:700}
@media(max-width:560px){.datalist{grid-template-columns:1fr}}
.pend{color:var(--warn);font-weight:700}

/* ---------- APP (login/portal/admin) ---------- */
.topbar{background:var(--ink);border-bottom:3px solid var(--orange);display:flex;align-items:center;justify-content:space-between;padding:12px 20px;position:sticky;top:0;z-index:30}
.topbar .brand img{height:28px}
.tb-right{display:flex;align-items:center;gap:16px}
.tb-user{color:rgba(255,255,255,.75);font-size:.85rem;font-weight:600}
.tb-link{color:#fff;font-weight:700;font-size:.9rem}
.appfoot{background:var(--ink);color:rgba(255,255,255,.6);padding:22px 0;margin-top:50px;font-size:.82rem}
.appfoot .wrap{text-align:center}
.page{max-width:1000px;margin:26px auto;padding:0 20px}

/* login */
.login-wrap{min-height:calc(100vh - 54px);display:grid;place-items:center;padding:30px 16px;background:var(--surf2)}
.login-card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:34px;max-width:400px;width:100%}
.login-card .lg{height:34px;margin-bottom:18px}
.login-card h1{font-size:1.3rem}
.login-card .note{color:var(--fg2);font-size:.86rem;margin-top:4px}
label{display:block;font-weight:700;font-size:.82rem;margin:16px 0 6px;color:var(--fg)}
input[type=text],input[type=password],input[type=email],input[type=date],input[type=number],select,textarea{
  width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;font-size:1rem;font-family:inherit;background:#fff;color:var(--fg)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--orange)}
.err{background:var(--due-bg);color:var(--due);border-radius:10px;padding:10px 12px;font-size:.88rem;font-weight:600;margin-top:14px}
.okmsg{background:var(--ok-bg);color:var(--ok);border-radius:10px;padding:10px 12px;font-size:.88rem;font-weight:600;margin-top:14px}
.btn.block{width:100%;justify-content:center;margin-top:20px}

/* portal */
.credor-head{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.avatar{width:58px;height:58px;border-radius:14px;display:grid;place-items:center;font-weight:900;font-size:1.3rem;color:#fff;background:linear-gradient(135deg,var(--orange),var(--orange-d));flex:none}
.credor-head h1{font-size:1.4rem}
.credor-head .role{color:var(--fg3);font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}
.tagline{margin:18px 0;padding:14px 16px;border-left:4px solid var(--orange);background:var(--surf2);border-radius:0 10px 10px 0;font-weight:700}
.relstrip{display:flex;gap:22px;flex-wrap:wrap;color:var(--fg2);font-size:.9rem;font-weight:600;margin-bottom:18px}
.relstrip b{color:var(--fg)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.kpi{background:var(--surf);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
.kpi.accent{border-color:var(--orange)}
.kpi .lab{font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;color:var(--fg2);font-weight:800}
.kpi .val{font-size:1.7rem;font-weight:900;margin-top:6px;letter-spacing:-.02em}
.kpi .note{font-size:.78rem;color:var(--fg3);margin-top:5px}
h2.sec-t{font-size:1.2rem;margin:34px 0 14px;padding-bottom:8px;border-bottom:2px solid var(--line)}
.contract{background:var(--surf);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-bottom:16px}
.contract .ch{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap;margin-bottom:12px}
.contract h3{font-size:1.05rem}
.contract .model{color:var(--fg3);font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;margin-top:2px}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;margin-top:10px}
table{border-collapse:collapse;width:100%;min-width:360px;font-size:.9rem}
th,td{text-align:left;padding:9px 13px;border-bottom:1px solid var(--line);white-space:nowrap}
th{background:var(--surf2);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--fg2)}
tr:last-child td{border-bottom:none}
td.r,th.r{text-align:right}
.docs{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.doc{display:flex;gap:12px;align-items:center;background:var(--surf);border:1px solid var(--line);border-radius:10px;padding:13px 15px;box-shadow:var(--shadow)}
.doc .ic{font-size:1.3rem}
.doc .dn{font-weight:700;font-size:.9rem}
.doc .dm{font-size:.74rem;color:var(--fg3)}
.hist{position:relative;margin-top:8px;padding-left:24px}
.hist:before{content:"";position:absolute;left:5px;top:4px;bottom:4px;width:2px;background:var(--line)}
.hev{position:relative;padding:0 0 18px}
.hev:before{content:"";position:absolute;left:-24px;top:3px;width:11px;height:11px;border-radius:50%;background:var(--orange);border:3px solid #fff;box-shadow:0 0 0 1px var(--orange)}
.hev .date{font-weight:800;color:var(--orange-d);font-size:.88rem}
.hev p{color:var(--fg2);font-size:.92rem}
.contact-box{background:var(--surf);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);display:flex;gap:16px;align-items:center;flex-wrap:wrap}

/* admin */
.adminbar{background:var(--cream);border-bottom:1px solid var(--line)}
.adminbar .wrap{display:flex;gap:18px;padding:10px 20px;flex-wrap:wrap}
.adminbar a{color:var(--ink);font-weight:700;font-size:.88rem}
.adminbar a:hover{color:var(--orange-d)}
.panel{background:var(--surf);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-bottom:18px}
.panel h2{font-size:1.1rem;margin-bottom:12px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
@media(max-width:640px){.row2,.row3{grid-template-columns:1fr}}
.inline-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.small{font-size:.82rem;color:var(--fg2)}
