:root{--ink:#21162d;--lila:#4b245d;--lila2:#6f3b83;--gold:#c9a45a;--bg:#f6f3f8;--card:#fff;--line:#e7deeb;--muted:#786f7d;--danger:#9b2c2c;--success:#256a43}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink)}a{color:var(--lila2);text-decoration:none}a:hover{text-decoration:underline}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#fff 0,#f5eff7 45%,#eadfea 100%)}.auth-card{width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:22px;padding:34px;box-shadow:0 20px 60px rgba(50,25,62,.12)}.auth-card.wide{width:min(760px,100%)}.brand{font-weight:900;letter-spacing:.12em;font-size:26px;color:var(--lila)}.brand-sub{color:var(--gold);font-weight:700;margin-top:2px}.auth-card h1{font-size:28px;margin:24px 0 8px}.muted{color:var(--muted)}label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700;margin-bottom:14px}input,select,textarea{width:100%;border:1px solid #d9cedd;border-radius:10px;padding:11px 12px;font:inherit;background:#fff;color:var(--ink)}textarea{min-height:88px;resize:vertical}.btn{display:inline-flex;justify-content:center;align-items:center;border:1px solid #d7cadb;border-radius:10px;padding:10px 14px;background:#fff;color:var(--ink);font-weight:800;cursor:pointer;text-decoration:none}.btn:hover{text-decoration:none;filter:brightness(.98)}.btn.primary{background:var(--lila);border-color:var(--lila);color:#fff}.btn.full{width:100%}.smallbtn{padding:7px 10px;font-size:12px}.auth-links{display:flex;justify-content:space-between;gap:16px;margin-top:18px;font-size:13px}.alert{padding:12px 14px;border-radius:10px;margin:14px 0}.alert.error{background:#fff0f0;color:var(--danger);border:1px solid #f0cccc}.alert.success{background:#eef9f2;color:var(--success);border:1px solid #cce6d5}.topbar{position:sticky;top:0;z-index:20;background:#26172f;color:#fff;display:flex;justify-content:space-between;gap:20px;padding:16px max(20px,calc((100vw - 1180px)/2));align-items:center}.topbar b{letter-spacing:.1em}.topbar span{opacity:.72;margin-left:8px}.topbar nav{display:flex;gap:16px;align-items:center}.topbar a{color:#fff}.container{max-width:1180px;margin:0 auto;padding:28px 20px 60px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.page-head h1{margin:0}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;margin:18px 0;box-shadow:0 8px 30px rgba(50,25,62,.04)}.card h2{margin:0 0 14px;font-size:20px}.grid2,.grid3,.grid4{display:grid;gap:14px}.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid4{grid-template-columns:repeat(4,minmax(0,1fr))}.span2{grid-column:span 2}.span3{grid-column:span 3}.span4{grid-column:span 4}.check{flex-direction:row;align-items:center}.check input{width:auto}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.small{font-size:12px}.pill{display:inline-flex;padding:5px 9px;border-radius:999px;background:#f0e7f3;font-size:12px;font-weight:800}.search{display:flex;gap:10px;margin:14px 0}.search input{max-width:440px}.tabs-note{padding:12px 16px;background:#fff8e9;border:1px solid #ecd9aa;border-radius:12px}.cards-mini{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.mini{border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:6px}.timeline{position:relative}.timeline-item{border-left:3px solid #d9cedd;padding:2px 0 18px 16px;margin-left:6px}.timeline-item.active{border-left-color:var(--gold)}.timeline-item p{margin:6px 0}.hero{background:linear-gradient(135deg,#2d1739,#5f2f72);color:#fff;border-radius:20px;padding:26px;display:flex;justify-content:space-between;gap:20px;align-items:end}.hero h1{margin:6px 0}.eyebrow{font-size:12px;letter-spacing:.12em;color:#e9ce98;font-weight:900}.hero-meta{display:flex;flex-direction:column;text-align:right}.hero-meta span{opacity:.75;font-size:12px}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}.stat span,.read-grid span{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.doc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.doc{display:flex;flex-direction:column;gap:7px;border:1px solid var(--line);padding:15px;border-radius:12px;color:var(--ink)}.doc:hover{text-decoration:none;border-color:#b89ac3}.doc-type{font-size:11px;font-weight:900;color:var(--lila2);text-transform:uppercase}.doc small{color:var(--muted)}.read-grid div{padding:10px 0}.report-bg{background:#e9e4ec;padding:30px}.report{max-width:850px;margin:0 auto;background:#fff;padding:40px;border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,.08)}.report-head{display:flex;justify-content:space-between;gap:20px}.report-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;background:#f8f5f9;padding:18px;border-radius:12px}.report-meta span{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}.report-section{border-top:1px solid var(--line);padding:18px 0}.report-section h2{font-size:16px;margin:0 0 8px}.next-date{background:#fff7e6;border:1px solid #ecd9aa;padding:14px;border-radius:10px}.next-date span{display:block;font-size:12px;color:var(--muted)}@media(max-width:800px){.grid2,.grid3,.grid4,.summary-grid,.doc-grid,.cards-mini,.report-meta{grid-template-columns:1fr}.span2,.span3,.span4{grid-column:auto}.topbar{align-items:flex-start;flex-direction:column}.topbar nav{flex-wrap:wrap}.page-head,.hero{align-items:flex-start;flex-direction:column}.hero-meta{text-align:left}.auth-links{flex-direction:column}.report-bg{padding:0}.report{border-radius:0;padding:24px}.search{flex-direction:column}.search input{max-width:none}}
.inline-form{display:flex;gap:6px;align-items:center;min-width:360px}.inline-form select,.inline-form input{padding:7px 8px;margin:0}

.payment-overview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:16px 0 22px}.payment-overview .stat{margin:0}.payment-overview small{display:block;color:var(--muted);margin-top:6px}.stat.highlight{border:2px solid var(--gold);background:#fffaf0}.success-stat{border:2px solid #b8ddc7;background:#f2fbf5}.initial-payment{background:#faf7fb}.next-payment-row{background:#fff9ec}.next-label{font-size:10px;font-weight:900;color:#7a5a14;margin-top:5px;letter-spacing:.05em}.fee-summary-form{padding-bottom:8px;border-bottom:1px solid var(--line);margin-bottom:16px}@media(max-width:900px){.payment-overview{grid-template-columns:1fr 1fr}}@media(max-width:560px){.payment-overview{grid-template-columns:1fr}}

/* ===== SOLFINOC PORTAL 2026 ===== */
:root{--purple:#6423b7;--purple2:#8b4de0;--yellow:#f4bc19;--navy:#17152c;--soft:#faf9fd;--softpurple:#f2ebff;--softyellow:#fff7d8}
.logo-img{display:block;max-width:250px;width:100%;height:auto}.brand-logo{height:44px;width:auto;object-fit:contain;background:#fff;border-radius:8px}.portal-body{background:#f7f8fb;color:#15162b}.client-topbar{position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid #ececf2;min-height:76px;padding:10px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;box-shadow:0 3px 14px rgba(28,20,48,.05)}.client-brand img{height:55px;width:auto;max-width:315px;object-fit:contain}.client-user{display:flex;align-items:center;gap:18px;font-size:13px}.client-user a{color:#4d4c64}.portal-shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:calc(100vh - 76px)}.client-sidebar{background:#fff;border-right:1px solid #ececf2;padding:22px 14px;display:flex;flex-direction:column;gap:7px;position:sticky;top:76px;height:calc(100vh - 76px)}.client-sidebar a{display:flex;align-items:center;gap:13px;padding:12px 14px;border-radius:12px;color:#4b4962;font-weight:700}.client-sidebar a:hover,.client-sidebar a.active{background:var(--softpurple);color:var(--purple);text-decoration:none}.client-main{max-width:1420px;width:100%;padding:22px 28px 70px;margin:0 auto}.welcome-hero{min-height:320px;border-radius:22px;overflow:hidden;background:linear-gradient(135deg,#fff 0%,#fcfbff 50%,#f3edff 100%);border:1px solid #ece7f5;display:grid;grid-template-columns:1.1fr .9fr;margin-bottom:18px;box-shadow:0 12px 30px rgba(40,25,72,.06)}.welcome-copy{padding:32px 42px;align-self:center}.welcome-copy h1{font-size:38px;line-height:1.08;margin:6px 0 10px;color:#161422}.welcome-copy>p{font-size:17px;color:#55556b;max-width:650px}.hero-logo{width:270px;max-width:100%;height:auto;display:block;margin-bottom:18px}.hero-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.hero-tags span{background:#f2ebff;color:#6528ad;border:1px solid #decdf5;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:800}.welcome-photo{position:relative;min-height:310px;background:#ede8f1}.welcome-photo>img{width:100%;height:100%;object-fit:cover;object-position:center}.welcome-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.28),transparent 32%,rgba(30,16,49,.10))}.photo-caption{position:absolute;z-index:2;left:20px;right:20px;bottom:18px;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.8);border-radius:14px;padding:13px 15px;display:flex;flex-direction:column;box-shadow:0 8px 24px rgba(0,0,0,.09)}.photo-caption span{font-size:12px;color:#676476;margin-top:3px}.dashboard-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.dash-card{background:#fff;border:1px solid #ebe9f0;border-radius:16px;padding:16px;display:flex;gap:12px;min-height:105px;box-shadow:0 7px 18px rgba(34,25,58,.04)}.dash-card>div{display:flex;flex-direction:column;gap:3px;min-width:0}.dash-card small{color:#77748a}.dash-card b{font-size:17px}.dash-card span:not(.dash-icon){font-size:12px;color:#77748a}.dash-icon{width:42px;height:42px;flex:0 0 42px;border-radius:12px;background:#efe7ff;color:#6c2fc6;display:grid;place-items:center;font-size:20px;font-weight:900}.dash-icon.gold{background:#fff2c5;color:#b67a00}.section-title{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:14px}.section-title h2{margin:0}.section-title .eyebrow{color:#6f37be}.status-badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:#edf2f7;font-size:12px;font-weight:800}.status-programada{background:#e9f5ff;color:#176291}.status-realizada{background:#e7f7ed;color:#1d7140}.status-suspendida,.status-aplazada{background:#fff1dc;color:#925800}.status-cancelada{background:#fdeaea;color:#a02d2d}.warning-box{padding:12px 14px;border-radius:10px;background:#fff6df;border:1px solid #f0d890;margin:8px 0}.notice-box{padding:13px 15px;border-radius:12px;background:#f6f0ff;border:1px solid #e1d3f5;margin:12px 0;color:#463357}.action-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.doc-icon{width:38px;height:38px;border-radius:10px;background:#fbe9e9;color:#bd2c2c;display:grid;place-items:center;font-weight:900;font-size:11px}.doc-open{font-size:12px;color:var(--purple);font-weight:800;margin-top:3px}.btn.accent{background:var(--yellow);border-color:var(--yellow);color:#2c2305;margin:6px 0 8px}.fee-summary-form small,label small{font-weight:500;color:#827c88}.topbar .brand-logo{vertical-align:middle;margin-right:10px}.topbar-logo-wrap{display:flex;align-items:center;gap:10px}.topbar-logo-wrap span{margin:0!important}
.auth-shell.solfinoc-auth{background:linear-gradient(135deg,#fff 0,#f6f1ff 62%,#fff2bd 100%);padding:30px}.auth-layout{width:min(1020px,100%);background:#fff;border:1px solid #ebe6f0;border-radius:24px;overflow:hidden;display:grid;grid-template-columns:.9fr 1.1fr;box-shadow:0 28px 70px rgba(45,25,75,.13)}.auth-panel{padding:44px}.auth-panel .auth-logo{width:290px;max-width:100%;height:auto;margin-bottom:24px}.auth-panel h1{font-size:34px;margin:12px 0 8px}.auth-visual{position:relative;min-height:580px}.auth-visual img{width:100%;height:100%;object-fit:cover}.auth-visual-copy{position:absolute;left:25px;right:25px;bottom:25px;background:rgba(255,255,255,.94);border-radius:16px;padding:18px}.auth-visual-copy b{display:block;font-size:20px;color:#332149}.auth-visual-copy span{font-size:13px;color:#6f6676}.form-help{font-size:12px;color:#7b7582;margin-top:-5px;margin-bottom:15px}
@media(max-width:1100px){.dashboard-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.welcome-hero{grid-template-columns:1fr}.welcome-photo{min-height:280px}.portal-shell{grid-template-columns:190px minmax(0,1fr)}.client-sidebar a{padding:11px}}
@media(max-width:780px){.portal-shell{display:block}.client-sidebar{position:sticky;top:75px;height:auto;z-index:30;flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid #ececf2;padding:8px;background:#fff}.client-sidebar a{white-space:nowrap;padding:9px 11px}.client-main{padding:14px}.client-topbar{padding:10px 14px}.client-user span{display:none}.client-brand img{height:44px;max-width:220px}.welcome-copy{padding:25px}.welcome-copy h1{font-size:30px}.dashboard-cards{grid-template-columns:1fr}.auth-layout{grid-template-columns:1fr}.auth-visual{display:none}.auth-panel{padding:30px 24px}.section-title{flex-direction:column}.payment-overview{grid-template-columns:1fr}.portal-shell .card{border-radius:14px}}

.login-help{background:#f7f1ff;border:1px solid #e6d8ff;border-radius:14px;padding:12px 14px;margin:14px 0;color:#46345f;font-size:.92rem;line-height:1.45}.login-help b{color:#2f1555}

/* Acciones de documentos del portal cliente */
.doc-actions{display:flex;gap:.55rem;flex-wrap:wrap;margin-top:.8rem}.btn.secondary{background:#fff;color:#4b236b;border:1px solid #d9c9e7}.btn.secondary:hover{background:#f7f1fb}.doc .action-links a{text-decoration:none}

.quick-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:12px}.btn.disabled{opacity:.55;pointer-events:none;cursor:not-allowed}.section-title{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.eyebrow{font-size:.78rem;letter-spacing:.08em;font-weight:700;margin:0 0 4px}
