:root{
  --petroleo:#08323C; --petroleo-hover:#0a3f4c; --petroleo-light:#1a4a56; --petroleo-suave:rgba(8,50,60,.08);
  --azul:#2563eb; --azul-bg:#dbeafe; --verde:#16a34a; --verde-bg:#dcfce7; --ambar:#d97706; --ambar-bg:#fef3c7;
  --rojo:#dc2626; --rojo-bg:#fee2e2; --violeta:#7c3aed; --violeta-bg:#ede9fe;
  --fondo:#f7f8fa; --hover:#f1f3f6; --borde:#e5e7eb; --borde-sutil:#f0f2f5;
  --gris:#6b7280; --gris-sutil:#9ca3af; --texto:#111827; --texto-medio:#374151;
  --sombra-sm:0 1px 3px rgba(16,24,40,.08),0 1px 2px rgba(16,24,40,.04);
  --sombra-lg:0 12px 32px rgba(16,24,40,.10),0 4px 8px rgba(16,24,40,.04);
  --radio-md:10px; --radio-lg:14px; --radio-xl:20px;
  --sidebar:260px;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--fondo);color:var(--texto);font-family:Inter,"Segoe UI",system-ui,-apple-system,sans-serif;font-size:15px;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
button,input,select{font:inherit;color:inherit;}
.muted{color:var(--gris);}
.small{font-size:13px;}
.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;}
.ta-right{text-align:right;}

.app{display:flex;min-height:calc(100vh - 48px);}
.sidebar{position:sticky;top:48px;flex:0 0 var(--sidebar);height:calc(100vh - 48px);overflow-y:auto;background:var(--petroleo);color:#fff;padding:24px 14px;}
.sidebar__brand{display:flex;align-items:center;gap:12px;padding:4px 10px 24px;}
.brand-mark{display:inline-flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.12);font-size:20px;}
.brand-name{font-weight:700;font-size:16px;line-height:1.15;letter-spacing:.02em;}
.sidebar__nav{display:flex;flex-direction:column;gap:2px;}
.sidebar__group{margin:18px 12px 6px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.45);}
.sidebar__nav a,.sidebar__nav button{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:none;border-radius:var(--radio-md);
  background:transparent;color:rgba(255,255,255,.78);font-size:14px;font-weight:500;text-align:left;cursor:pointer;transition:background .18s ease,color .18s ease;}
.sidebar__nav a:hover,.sidebar__nav button:hover{background:var(--petroleo-hover);color:#fff;}
.sidebar__nav a.is-active{background:rgba(255,255,255,.12);color:#fff;}
.sidebar__nav button{color:rgba(255,255,255,.5);}

.main{flex:1;min-width:0;display:flex;flex-direction:column;}
.topbar{position:sticky;top:48px;z-index:20;display:flex;align-items:center;gap:16px;height:64px;padding:0 32px;background:#fff;border-bottom:1px solid var(--borde);}
.topbar__menu{display:none;width:40px;height:40px;border:1px solid var(--borde);border-radius:var(--radio-md);background:#fff;font-size:22px;cursor:pointer;}
.topbar__title{flex:1;margin:0;font-size:20px;font-weight:600;}
.topbar__user{display:flex;align-items:center;gap:10px;}
.topbar__user-info{display:flex;flex-direction:column;line-height:1.2;}
.topbar__user-info small{color:var(--gris);font-size:12px;}
.avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;border-radius:50%;background:var(--petroleo);color:#fff;font-size:13px;font-weight:600;}
.avatar--soft{background:var(--petroleo-suave);color:var(--petroleo);}

.content{padding:28px 32px 56px;outline:none;max-width:1280px;width:100%;}
.card{background:#fff;border:1px solid var(--borde);border-radius:var(--radio-lg);box-shadow:var(--sombra-sm);}
.empty{padding:28px;text-align:center;color:var(--gris);}

.greeting{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px;}
.greeting__hello{margin:0 0 4px;font-size:26px;font-weight:700;}
.greeting p{margin:0;}
.pill{padding:8px 14px;border-radius:100px;background:#fff;border:1px solid var(--borde);font-size:13px;font-weight:500;color:var(--texto-medio);}

.tip{position:relative;display:flex;align-items:center;gap:14px;margin-bottom:20px;padding:14px 52px 14px 18px;border-radius:var(--radio-lg);background:var(--azul-bg);color:#1e3a8a;}
.tip > i{font-size:20px;color:var(--ambar);}
.tip p{margin:0;line-height:1.45;}
.tip__close{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:none;border-radius:50%;background:transparent;color:inherit;cursor:pointer;}
.tip__close:hover{background:rgba(255,255,255,.6);}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.stat{display:flex;gap:14px;align-items:flex-start;padding:18px;background:#fff;border:1px solid var(--borde);border-radius:var(--radio-lg);box-shadow:var(--sombra-sm);min-width:0;}
.stat > div{min-width:0;}
.stat__icon{display:flex;align-items:center;justify-content:center;flex:none;width:42px;height:42px;border-radius:12px;font-size:19px;}
.stat__icon--primary{background:var(--petroleo-suave);color:var(--petroleo);}
.stat__icon--azul{background:var(--azul-bg);color:var(--azul);}
.stat__icon--verde{background:var(--verde-bg);color:var(--verde);}
.stat__icon--violeta{background:var(--violeta-bg);color:var(--violeta);}
.stat__label{font-size:13px;color:var(--gris);font-weight:500;}
.stat__value{margin-top:4px;font-size:24px;font-weight:700;}
.stat__text{display:block;font-size:15px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.stat__hint{margin-top:2px;font-size:12px;color:var(--gris-sutil);}

.section{margin-top:28px;}
.section__header{display:flex;justify-content:space-between;align-items:center;gap:12px;}
.section__title{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:16px;font-weight:600;}
.section__title i{color:var(--rojo);}
.section__action{margin-bottom:12px;color:var(--azul);font-weight:500;font-size:14px;}
.quicks{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.quick{display:flex;align-items:center;gap:14px;padding:16px;background:#fff;border:1px solid var(--borde);border-radius:var(--radio-lg);transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;}
.quick:hover{border-color:var(--petroleo);box-shadow:var(--sombra-lg);transform:translateY(-1px);}
.quick__icon{display:flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;border-radius:10px;background:var(--petroleo);color:#fff;font-size:18px;}
.quick__label{display:block;font-weight:600;}
.quick__desc{display:block;font-size:13px;color:var(--gris);}

.split{display:grid;grid-template-columns:1.35fr 1fr;gap:24px;align-items:start;}
.alerts{overflow:hidden;}
.alert-row{display:grid;grid-template-columns:auto 1fr auto auto auto;align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid var(--borde-sutil);}
.alert-row:last-child{border-bottom:none;}
.alert-row--severe{background:linear-gradient(90deg,rgba(220,38,38,.05),transparent 60%);}
.alert-row__main{min-width:0;}
.alert-row__name{font-weight:600;}
.alert-row__meta{font-size:13px;color:var(--gris);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.alert-row__monto{font-weight:600;}
.alert-row__dias{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:100px;font-size:12px;font-weight:600;white-space:nowrap;}
.alert-row__dias--low{background:var(--ambar-bg);color:var(--ambar);}
.alert-row__dias--mid{background:#ffedd5;color:#c2410c;}
.alert-row__dias--high{background:var(--rojo-bg);color:var(--rojo);}

.activities{list-style:none;margin:0;padding:6px 0;}
.activity{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;font-size:14px;}
.activity__icon{display:flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border-radius:9px;font-size:15px;}
.activity__icon--azul{background:var(--azul-bg);color:var(--azul);}
.activity__icon--verde{background:var(--verde-bg);color:var(--verde);}
.activity__icon--violeta{background:var(--violeta-bg);color:var(--violeta);}
.activity__main{flex:1;min-width:0;line-height:1.4;}
.activity__date{font-size:12px;color:var(--gris-sutil);}
.activity__amount{font-weight:600;white-space:nowrap;}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border-radius:var(--radio-md);border:1px solid transparent;
  font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .18s ease,border-color .18s ease;}
.btn--primary{background:var(--petroleo);color:#fff;}
.btn--primary:hover{background:var(--petroleo-hover);}
.btn--outline{background:#fff;border-color:var(--borde);color:var(--texto-medio);}
.btn--outline:hover{border-color:var(--petroleo);color:var(--petroleo);}
.btn--ghost{background:transparent;color:var(--texto-medio);}
.btn--ghost:hover{background:var(--hover);}
.btn--sm{height:32px;padding:0 12px;font-size:13px;}

.toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:14px;}
.search{display:flex;align-items:center;gap:10px;flex:1;max-width:420px;height:40px;padding:0 12px;background:#fff;border:1px solid var(--borde);border-radius:var(--radio-md);}
.search:focus-within{border-color:var(--petroleo);box-shadow:0 0 0 3px var(--petroleo-suave);}
.search i{color:var(--gris-sutil);}
.search input{flex:1;min-width:0;height:100%;border:none;outline:none;background:transparent;}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;}
.filter{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 14px;border-radius:100px;border:1px solid var(--borde);background:#fff;font-size:13px;font-weight:500;cursor:pointer;}
.filter span{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 6px;border-radius:100px;background:var(--hover);color:var(--gris);font-size:12px;}
.filter.is-active{background:var(--petroleo);border-color:var(--petroleo);color:#fff;}
.filter.is-active span{background:rgba(255,255,255,.18);color:#fff;}

.table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--borde);border-radius:var(--radio-lg);box-shadow:var(--sombra-sm);}
.table{width:100%;min-width:860px;border-collapse:collapse;font-size:14px;}
.table th{padding:11px 16px;background:#fafbfc;border-bottom:1px solid var(--borde);text-align:left;font-size:12px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--gris);}
.table th.ta-right{text-align:right;}
.table td{padding:12px 16px;border-bottom:1px solid var(--borde-sutil);vertical-align:middle;}
.table tr:last-child td{border-bottom:none;}
.table tbody tr:hover{background:#fafbfc;}
.person{display:flex;align-items:center;gap:10px;}
.person > span:last-child{display:flex;flex-direction:column;}
.person small{font-size:12px;}
.row-actions{display:inline-flex;gap:6px;justify-content:flex-end;}
.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:100px;font-size:12px;font-weight:600;white-space:nowrap;}
.badge--verde{background:var(--verde-bg);color:var(--verde);}
.badge--ambar{background:var(--ambar-bg);color:var(--ambar);}
.badge--rojo{background:var(--rojo-bg);color:var(--rojo);}
.badge--azul{background:var(--azul-bg);color:var(--azul);}
.badge--violeta{background:var(--violeta-bg);color:var(--violeta);}

.modal{width:min(560px,calc(100vw - 32px));padding:0;border:none;border-radius:var(--radio-xl);box-shadow:var(--sombra-lg);}
.modal::backdrop{background:rgba(8,50,60,.45);}
.modal__form{display:flex;flex-direction:column;gap:14px;padding:28px;}
.modal__form h2{margin:0;font-size:20px;}
.modal__form > p{margin:-6px 0 4px;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:500;color:var(--texto-medio);}
.field input,.field select{height:40px;padding:0 12px;border:1px solid var(--borde);border-radius:var(--radio-md);background:#fff;font-size:14px;outline:none;}
.field input:focus,.field select:focus{border-color:var(--petroleo);box-shadow:0 0 0 3px var(--petroleo-suave);}
.field input[readonly]{background:var(--fondo);}
.field input[aria-invalid="true"]{border-color:var(--rojo);}
.field__error{color:var(--rojo);font-weight:500;}
.summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px;border-radius:var(--radio-md);background:var(--fondo);}
.summary div{display:flex;flex-direction:column;gap:2px;font-size:14px;}
.summary span{font-size:12px;}
.check{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--texto-medio);}
.modal__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px;}

@media(max-width:1180px){
  .stats{grid-template-columns:repeat(2,1fr);}
  .split{grid-template-columns:1fr;}
}
@media(max-width:900px){
  .sidebar{position:fixed;left:0;top:48px;z-index:40;transform:translateX(-100%);visibility:hidden;
    transition:transform .25s ease,visibility 0s linear .25s;box-shadow:var(--sombra-lg);}
  .sidebar.is-open{transform:none;visibility:visible;transition:transform .25s ease;}
  .topbar__menu{display:inline-flex;align-items:center;justify-content:center;}
  .topbar{padding:0 16px;}
  .content{padding:20px 16px 48px;}
  .topbar__user-info{display:none;}
}
@media(max-width:640px){
  .stats,.quicks,.grid-2,.summary{grid-template-columns:1fr;}
  .alert-row{grid-template-columns:auto 1fr auto;}
  .alert-row__monto{display:none;}
  .alert-row .btn{grid-column:2 / -1;justify-self:start;}
  .search{max-width:none;}
}
