/* Fuentes locales del sistema: sin dependencias externas ni rastreo de terceros. */
:root{--bg:#f2f6f9;--navy:#081c31;--navy2:#102b47;--ink:#132841;--muted:#738397;--green:#25be91;--line:#e5edf2;--white:#fff;--amber:#d88e29}
*{box-sizing:border-box}body{margin:0;font-family:Manrope,'DM Sans',Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:14px}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}
.layout{display:flex;min-height:100vh}.sidebar{background:#0b2239;color:#dae9f2;width:260px;min-width:260px;display:flex;flex-direction:column;padding:31px 17px;position:sticky;top:0;height:100vh}.brand,.auth-brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:800;letter-spacing:-.7px;padding:3px 13px}.brand-icon{height:36px;width:36px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:#144d59;color:#59dfb7;font-size:23px}.brand small{display:block;font-size:10px;color:#8fabc1;font-weight:700;letter-spacing:2.4px;margin-top:2px}.brand-lime{color:#54d8b1}.sidebar-caption{font-size:10px;letter-spacing:1.55px;color:#6e8aa2;margin:49px 12px 18px;font-weight:800}.nav{display:flex;flex-direction:column;gap:5px}.nav a{padding:15px 14px;border-radius:11px;color:#aac0d0;font-size:13px;display:flex;align-items:center;gap:14px;font-weight:600}.nav a:hover{background:#173650;color:#fff}.nav a:first-child{background:#173e4c;color:#8df3d6}.nav a span{display:inline-block}.side-bottom{margin-top:auto;border-top:1px solid #1b3b53;padding:21px 12px 0;color:#d3e1ea;font-size:12px;line-height:2}.side-bottom small{color:#7995ac}.status-pulse{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(37,190,145,.13);margin-right:8px}.main{flex:1;min-width:0}.topbar{background:white;border-bottom:1px solid var(--line);padding:26px 42px;display:flex;justify-content:space-between;align-items:center;gap:20px}.eyebrow,.small-label{font-size:10px;letter-spacing:1.5px;font-weight:800;color:#2a9278}.eyebrow{color:#6a8192}.dotsep{color:#c2ced6;padding:0 10px}.topbar h1{font-size:23px;margin:6px 0 0;letter-spacing:-.8px}.userbox{display:flex;align-items:center;gap:11px}.avatar{width:38px;height:38px;border-radius:11px;background:#e8f5f1;color:#0a896d;display:grid;place-items:center;font-weight:800}.userbox b,.userbox small{display:block}.userbox small{font-size:11px;color:var(--muted);margin-top:3px}.signout,.text-button{border:0;background:transparent;color:#517487;font-size:12px;font-weight:800;padding:10px}.content{padding:34px 42px;max-width:1500px;margin:auto}.welcome{background:linear-gradient(111deg,#102e48,#102e46 50%,#175365);color:#fff;border-radius:18px;padding:31px 34px;display:flex;justify-content:space-between;align-items:center;gap:24px;box-shadow:0 17px 33px rgba(14,49,74,.07)}.welcome .small-label{color:#8bedcc}.welcome h2{font-size:26px;letter-spacing:-1px;margin:10px 0}.welcome p{max-width:680px;line-height:1.8;color:#b9d1de;margin:0}.stage{white-space:nowrap;border:1px solid rgba(112,235,192,.32);border-radius:20px;padding:10px 14px;color:#8bedcc;font-size:10px;font-weight:800;letter-spacing:.7px}.amber-stage{color:#f3d7a2}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:23px 0}.metric,.card{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 4px 13px rgba(31,73,102,.025)}.metric{padding:24px 25px}.metric-label{font-size:12px;font-weight:700;color:#65798b;display:flex;justify-content:space-between}.metric-label span{color:#27ad8c;font-size:18px}.metric-value{font-size:32px;letter-spacing:-1px;font-weight:800;margin:12px 0 7px}.metric-value.money{font-size:25px}.metric small{font-size:11px;color:#95a4b2}.columns{display:grid;grid-template-columns:1fr 1fr;gap:19px;margin:0 0 19px}.card{padding:26px;margin-bottom:19px}.columns .card{margin-bottom:0}.card-header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:22px}.card h3{font-size:18px;letter-spacing:-.7px;margin:7px 0 0}.actions{display:grid;grid-template-columns:1fr 1fr;gap:11px}.action{border:1px solid #e9eff3;border-radius:12px;padding:17px 16px;display:flex;flex-direction:column;gap:5px;transition:.2s}.action:hover{background:#f6fcf9;border-color:#a9e8d4}.action>span{color:#149a7b;font-size:25px}.action b{font-size:12px}.action small{font-size:11px;color:var(--muted)}.integration{display:flex;align-items:center;padding:15px 0;border-bottom:1px solid #edf1f5;gap:13px}.integration:last-child{border-bottom:0}.integration>div{flex:1}.integration b,.integration small{display:block}.integration b{font-size:12px}.integration small{font-size:10px;color:var(--muted);margin-top:4px}.int-icon{display:grid;place-items:center;background:#edf8f5;width:34px;height:34px;border-radius:9px;color:#119a7b}.tag{display:inline-block;border-radius:8px;background:#eef4f7;color:#506d7f;font-weight:700;font-size:10px;padding:7px 9px;white-space:nowrap}.tag.green{background:#e5f8f1;color:#189274}.tag.amber{background:#fff4e5;color:#b97b24}.count{font-size:12px;background:#eaf4f2;border-radius:10px;padding:5px 9px;margin-left:6px;color:#159477}.btn{border:1px solid transparent;border-radius:9px;padding:11px 17px;font-size:12px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:16px}.btn.primary{background:#16a787;color:#fff;box-shadow:0 5px 12px rgba(22,167,135,.11)}.btn.primary:hover{background:#0d8f73}.btn.ghost{background:#f3f8f9;color:#2e6476}.btn.wide{width:100%;margin-top:22px}.empty{text-align:center;padding:48px 18px 51px}.empty-icon{width:61px;height:61px;border-radius:17px;background:#e9f7f2;color:#28ad8d;display:grid;place-items:center;font-size:27px;margin:0 auto 14px}.empty h3{font-size:16px;margin:0 0 7px}.empty p{color:#748a9b;max-width:485px;margin:0 auto 18px;line-height:1.8}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;color:#7990a0;font-size:10px;letter-spacing:.5px;text-transform:uppercase;padding:14px 12px;border-bottom:1px solid #e6edf1}td{padding:16px 12px;border-bottom:1px solid #edf1f3}td small{display:block;color:#899ba9;font-size:10px;margin-top:4px}td code{background:#edf4f7;border-radius:5px;padding:5px}.searchbar{display:flex;gap:11px;margin-bottom:18px}.searchbar input{flex:1;min-width:0;padding:12px 15px;border:1px solid #dce7ed;border-radius:9px}.alert{background:#e8f6f0;border:1px solid #c8efde;color:#247a61;padding:13px 16px;border-radius:9px;margin-bottom:18px;font-size:12px}.alert.error{background:#fff0ef;color:#aa3a35;border-color:#fad5d1}.alert.warning{background:#fff7e7;color:#926011;border-color:#f5e3ba}.footer{padding:6px 42px 27px;font-size:11px;color:#9caab7}.form-container{max-width:870px;margin:auto}.form-note{color:#6e8596;font-size:12px;line-height:1.8;margin-bottom:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-field label{display:block;font-size:12px;font-weight:750;margin-bottom:8px}.control,.form-field input,.form-field select{width:100%;padding:12px 13px;border:1px solid #dce7ec;border-radius:9px;background:#fff}.form-field input[type=checkbox]{width:auto}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:28px}.field-error{color:#bd4740;display:block;margin-top:5px}.hint{font-size:11px;color:#7d90a1;line-height:1.7}.auth-bg{min-height:100vh;background:#eaf2f4}.auth-grid{min-height:100vh;display:grid;grid-template-columns:1.07fr .93fr}.hero{padding:50px 65px;background:radial-gradient(circle at 85% 22%,#1a5e67 0,transparent 35%),linear-gradient(145deg,#0b233b,#0b3047 75%,#0d4750);color:#fff;display:flex;flex-direction:column;justify-content:space-between}.auth-brand{padding:0;font-size:24px}.auth-brand .brand-icon{width:44px;height:44px}.hero-center{max-width:610px}.pill{display:inline-block;border:1px solid rgba(118,232,200,.36);color:#83ebd1;border-radius:35px;padding:10px 15px;font-size:10px;letter-spacing:1.3px;font-weight:800}.hero h1{font-size:clamp(38px,4.4vw,68px);letter-spacing:-3px;line-height:1.1;font-weight:800;margin:27px 0}.hero h1 em{color:#69dfba;font-style:normal}.hero p{font-size:15px;line-height:1.9;color:#b5cfda;max-width:540px}.hero-points{display:flex;gap:16px;flex-wrap:wrap;color:#b5d7d5;font-size:11px;font-weight:700;margin-top:43px}.hero-bottom{border-top:1px solid #31576b;padding-top:27px;display:flex;justify-content:space-between;font-size:10px;letter-spacing:1.2px;color:#86a5b8}.login-section{display:grid;place-items:center;padding:42px}.login-panel{background:#fff;border:1px solid #e0eaf0;border-radius:22px;padding:53px 55px;width:min(100%,505px);box-shadow:0 25px 65px rgba(15,47,73,.08)}.login-panel h2,.mfa-card h2{font-size:30px;letter-spacing:-1.4px;margin:16px 0 8px}.login-panel p,.mfa-card p{color:#718597;font-size:13px;line-height:1.8}.login-panel form{margin-top:30px}.login-panel label,.mfa-card label{display:block;font-size:12px;font-weight:800;margin:18px 0 8px}.login-panel input,.mfa-card input{width:100%;padding:15px 14px;background:#f8fafb;border:1px solid #dbe7ec;border-radius:10px;outline-color:#28b995}.login-foot{border-top:1px solid #eaf0f3;padding-top:22px;margin-top:30px;display:flex;flex-direction:column;gap:10px;color:#90a3ad;font-size:11px}.mfa-card{max-width:550px;margin:9vh auto;background:#fff;border-radius:18px;padding:44px;box-shadow:0 24px 70px rgba(12,35,59,.08)}.mfa-key{background:#eaf4f2;border:1px dashed #1b9d82;border-radius:10px;padding:15px 9px;text-align:center;letter-spacing:2px;word-break:break-all;font-size:13px;font-weight:800;color:#0d806a}.mfa-card form{margin-top:18px}
@media(max-width:1180px){.metrics{grid-template-columns:repeat(2,1fr)}.columns{grid-template-columns:1fr}.topbar{padding:24px}.content{padding:25px}.hero{padding:40px}}@media(max-width:790px){.sidebar{width:70px;min-width:70px;padding:25px 9px}.brand{padding:0;justify-content:center}.brand>span:last-child,.sidebar-caption,.nav a span,.side-bottom{display:none}.nav{margin-top:55px}.nav a{justify-content:center;font-size:19px}.topbar{flex-direction:column;align-items:flex-start}.auth-grid{grid-template-columns:1fr}.hero{min-height:320px}.hero-center h1{font-size:34px;letter-spacing:-1px;margin:16px 0}.hero-points,.hero-bottom{display:none}.login-section{padding:25px}}@media(max-width:570px){.topbar{padding:20px}.content{padding:14px}.metrics{grid-template-columns:1fr}.welcome{padding:23px;flex-direction:column;align-items:flex-start}.welcome h2{font-size:22px}.card{padding:20px}.actions{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-actions{flex-direction:column}.form-actions .btn{width:100%}.hero{padding:25px}.login-panel{padding:30px 24px}.mfa-card{margin:15px;padding:27px}}

/* Identidad corporativa oficial INGICOM SAS 360. Se usa el PNG original,
   sin alterar el logotipo y con recorte exclusivamente de espacio blanco en pantalla. */
.brand--official{display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:0 3px;text-align:center;width:100%;letter-spacing:normal}
.brand-logo-shell{display:block;position:relative;overflow:hidden;flex:none;width:100%;aspect-ratio:2.25/1;background:#fff;border-radius:13px;box-shadow:0 4px 18px rgba(0,0,0,.11)}
.brand-logo-shell img{display:block;position:absolute;left:0;top:50%;height:auto;width:100%;max-width:none;transform:translateY(-50%)}
.brand-note{display:block;color:#aee8de;text-align:center;font-size:10px;font-weight:800;letter-spacing:2px;line-height:1.5}
.sidebar .sidebar-caption{margin-top:30px}
.auth-brand--official{display:flex;flex-direction:column;align-items:flex-start;gap:14px;max-width:340px;width:100%;padding:0}
.auth-brand--official .brand-logo-shell{border-radius:16px;box-shadow:0 14px 32px rgba(0,0,0,.15)}
.auth-brand--official .brand-note{color:#b9d9e8;letter-spacing:1.8px;padding-left:6px}
.mfa-company-logo{width:min(100%,300px);aspect-ratio:2.25/1;position:relative;margin:0 auto 22px;overflow:hidden;border-radius:12px;background:#fff;box-shadow:0 2px 10px rgba(20,55,78,.1)}
.mfa-company-logo img{position:absolute;left:0;top:50%;transform:translateY(-50%);width:100%;height:auto;max-width:none}
@media(max-width:790px){.sidebar .brand--official{padding:0;align-items:center}.sidebar .brand-logo-shell{width:54px;height:52px;aspect-ratio:auto;border-radius:9px}.sidebar .brand-logo-shell img{width:auto;height:100%;left:50%;top:50%;transform:translate(-50%,-50%)}.sidebar .brand-note{display:none}.auth-brand--official{width:min(320px,100%)}}
@media(max-width:570px){.auth-brand--official{max-width:290px}.brand-note{font-size:9px}}

/* INGICOM360 Operator Suite | componentes propios, no copia de interfaces externas */
.metrics-five{grid-template-columns:repeat(5,minmax(0,1fr))}
.metrics-five .metric{padding:20px}
.metrics-five .metric-value{font-size:27px}
.op-topgap{margin-top:22px}
.compact-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:14px 0}
.compact-metrics>div{border:1px solid #e6edf1;border-radius:11px;background:#f8fbfb;padding:16px;text-align:center}
.compact-metrics b{display:block;font-size:22px;color:#102b47;letter-spacing:-.5px}
.compact-metrics small{display:block;color:#748a9b;font-size:11px;margin-top:5px}
.metric-simple{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:13px;border-bottom:1px solid #e8eff2}
.subhead{margin:24px 0 8px;font-size:15px;color:#102b47}
.flex-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.table-link{color:#0b9880;font-weight:800}
.table-link:hover{text-decoration:underline}
.status-filter{max-width:195px;flex:none}
.text-danger{color:#b84a3c!important}
.card-header .btn{white-space:nowrap}
@media(max-width:1260px){.metrics-five{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:850px){.metrics-five{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.status-filter{max-width:145px}.card-header{flex-wrap:wrap}}
@media(max-width:550px){.metrics-five,.compact-metrics{grid-template-columns:1fr 1fr}.searchbar{flex-wrap:wrap}.searchbar input{width:100%;flex:none}.status-filter{max-width:none;flex:1}.card-header{align-items:flex-start}}
