:root{
 --bg:#f4f7f5;--surface:#fff;--surface-2:#edf3ef;--text:#17221d;--muted:#66736d;
 --line:#dfe7e2;--green:#1f704d;--green-2:#2f925f;--deep:#102f26;--danger:#b64a4a;
 --shadow:0 12px 35px rgba(21,50,39,.08);--radius:18px
}
html[data-theme="dark"]{
 --bg:#0e1713;--surface:#17231e;--surface-2:#1d2d26;--text:#edf5f1;--muted:#a9b9b1;
 --line:#2a3b33;--green:#42a873;--green-2:#55bd84;--deep:#0a211a;--danger:#dc7474;
 --shadow:0 12px 35px rgba(0,0,0,.25)
}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text)}
a{color:inherit}.app-shell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:22px 16px;background:linear-gradient(180deg,#0e3026,#123b2e 65%,#0d2a22);color:#fff;overflow-y:auto;z-index:50}
.brand-block{display:flex;align-items:center;gap:12px;padding:5px 7px 22px;border-bottom:1px solid rgba(255,255,255,.11)}
.brand-icon{width:58px;height:58px;object-fit:cover;border-radius:14px;background:#fff;padding:3px}.brand-copy{display:flex;flex-direction:column;line-height:1.05}.brand-copy strong{font-size:20px}.brand-copy span{font-size:12px;letter-spacing:2.1px;color:#8edaab;margin-top:5px}.brand-copy small{font-size:9px;color:#bdd0c7;margin-top:7px}
.main-nav{display:flex;flex-direction:column;gap:4px;padding:17px 0;flex:1}.main-nav a,.sidebar-footer a{display:flex;align-items:center;gap:11px;text-decoration:none;color:#e7f2ed;padding:11px 12px;border-radius:11px;font-size:14px;transition:.18s}.main-nav a:hover,.sidebar-footer a:hover{background:rgba(255,255,255,.1);transform:translateX(2px)}
.sidebar-footer{padding-top:14px;border-top:1px solid rgba(255,255,255,.11)}
.content-column{min-width:0}.topbar{height:88px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 30px;background:color-mix(in srgb,var(--surface) 94%,transparent);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30;backdrop-filter:blur(14px)}
.page-heading h1{font-size:24px;margin:0}.page-heading p{margin:5px 0 0;color:var(--muted);font-size:13px}.top-actions{display:flex;align-items:center;gap:11px}.live-clock{color:var(--muted);font-size:13px}.icon-button{width:40px;height:40px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:12px;cursor:pointer;font-size:18px;margin:0;padding:0}.mobile-menu{display:none}.user-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--green),var(--green-2));color:white;font-weight:800}
.page-content{padding:28px;max-width:1650px;margin:0 auto}.hero-panel{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:28px;border-radius:22px;background:linear-gradient(125deg,#123b2e,#1f704d);color:#fff;box-shadow:var(--shadow);margin-bottom:20px}.hero-panel h2{font-size:29px;margin:7px 0}.hero-panel p{margin:0;color:#d3e7dd}.eyebrow{text-transform:uppercase;letter-spacing:1.6px;font-size:10px;font-weight:800;color:var(--green-2)}.hero-panel .eyebrow{color:#95deb3}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.action-button,.button-link{display:inline-flex;align-items:center;justify-content:center;padding:12px 16px;border-radius:11px;text-decoration:none;font-weight:750;font-size:13px}.action-button.income{background:#fff;color:#15583c}.action-button.expense{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);color:#fff}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:15px;margin-bottom:20px}.metric,.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.metric{padding:19px;position:relative;overflow:hidden}.metric.primary{background:linear-gradient(135deg,var(--deep),var(--green));color:#fff;border:none}.metric span{font-size:13px;color:var(--muted)}.metric.primary span,.metric.primary small{color:#cce1d7}.metric strong{display:block;font-size:27px;margin:10px 0 7px;letter-spacing:-.6px}.metric small{color:var(--muted);font-size:11px}
.grid2{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px}.panel{padding:20px}.chart-panel{min-height:410px}.chart-panel canvas{height:320px!important}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:14px}.panel-heading h3,.panel h3{margin:5px 0 0}.text-link{color:var(--green);text-decoration:none;font-size:13px;font-weight:750}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.wide{grid-column:1/-1}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px}label{font-size:12px;font-weight:750;color:var(--muted)}
input,select,textarea,button,.button-link{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;font-size:14px;margin-top:6px;background:var(--surface);color:var(--text)}textarea{min-height:92px;resize:vertical}button,.button-link,.primary-button{background:var(--green);color:#fff;border:none;font-weight:750;cursor:pointer}button:hover,.button-link:hover{filter:brightness(1.06)}
.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:11px 9px;border-bottom:1px solid var(--line);text-align:left;font-size:13px;white-space:nowrap}th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.5px}.money{font-weight:800}.badge{display:inline-flex;padding:5px 8px;border-radius:20px;font-size:11px;font-weight:750}.ingreso{background:#dff5e8;color:#176240}.egreso{background:#ffe4e4;color:#9e3434}.empty-state{text-align:center!important;color:var(--muted);padding:30px!important}
.inline{display:inline}.inline button{width:auto;margin:0}.danger-btn{background:var(--danger);padding:7px 9px}.link{color:var(--green);font-weight:750;text-decoration:none;margin-right:8px}.alert{padding:12px 14px;border-radius:11px;margin-bottom:16px}.success{background:#dff5e8;color:#176240}.danger{background:#ffe1e1;color:#952f2f}.permissions{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;padding:15px;background:var(--surface-2);border-radius:12px}.check{display:flex;align-items:center;gap:8px}.check input{width:auto;margin:0}.otro-box{background:#fff8df;padding:10px;border-radius:9px}.nested{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:#0d2b23;position:relative;overflow:hidden}.login-backdrop{position:absolute;inset:0;background:radial-gradient(circle at 15% 20%,rgba(68,171,112,.35),transparent 35%),radial-gradient(circle at 85% 80%,rgba(103,193,98,.23),transparent 37%),linear-gradient(135deg,#092118,#153e30)}
.login-card{position:relative;width:min(440px,94vw);background:#fff;padding:27px;border-radius:24px;box-shadow:0 30px 85px rgba(0,0,0,.35);color:#17221d}.login-logo{display:block;width:min(315px,85%);max-height:245px;object-fit:contain;margin:0 auto 8px;border-radius:16px}.login-intro{text-align:center;margin-bottom:19px}.login-intro h1{font-size:23px;margin:0 0 7px}.login-intro p{font-size:13px;color:#69756f;margin:0}.login-card label{display:block;color:#3e4a44;margin-top:12px}.login-card input{background:#f8faf9;color:#17221d}.password-wrap{position:relative}.password-wrap input{padding-right:48px}.show-password{position:absolute;right:7px;top:6px;width:38px;height:38px;background:transparent;color:#52615a;margin:0;padding:0}.primary-button{margin-top:19px;padding:13px}.security-note{text-align:center;color:#758078;font-size:11px;margin:15px 0 0}
@media(max-width:1100px){.grid2{grid-template-columns:1fr}.live-clock{display:none}}
@media(max-width:900px){
 .app-shell{display:block}.sidebar{position:fixed;left:-290px;width:280px;transition:left .25s;box-shadow:20px 0 50px rgba(0,0,0,.3)}.sidebar.open{left:0}.mobile-menu{display:block}.topbar{height:76px;padding:12px 15px}.page-heading h1{font-size:19px}.page-content{padding:15px}.hero-panel{align-items:flex-start;flex-direction:column;padding:22px}.hero-panel h2{font-size:24px}.hero-actions{width:100%}.action-button{flex:1}.top-actions{gap:7px}.user-avatar{width:38px;height:38px}
}
@media(max-width:550px){
 .cards{grid-template-columns:1fr 1fr;gap:10px}.metric{padding:14px}.metric strong{font-size:20px}.metric span{font-size:11px}.metric small{display:none}.panel{padding:14px}.page-heading p{display:none}.topbar{gap:9px}.hero-actions{flex-direction:column}.action-button{width:100%}.nested{grid-column:1/-1;grid-template-columns:1fr}.login-card{padding:20px}.login-logo{max-height:210px}
}
.nav-section{margin-top:18px;padding-top:15px;border-top:1px solid rgba(255,255,255,.14)}
.rh-brand-mini{display:flex;align-items:center;gap:9px;padding:8px;margin-bottom:7px;background:rgba(255,255,255,.07);border-radius:11px}
.rh-brand-mini img{width:43px;height:43px;object-fit:cover;border-radius:9px;background:#fff}
.rh-brand-mini div{display:flex;flex-direction:column}.rh-brand-mini strong{font-size:12px}.rh-brand-mini small{font-size:8px;letter-spacing:1.3px;color:#f0cf7b;margin-top:4px}
.rh-hero{display:flex;align-items:center;gap:24px;padding:24px;margin-bottom:20px;border-radius:22px;background:linear-gradient(135deg,#111820,#303b45);color:#fff;box-shadow:var(--shadow);border-bottom:4px solid #b51f27}
.rh-hero img{width:150px;height:150px;object-fit:contain;background:#fff;border-radius:18px;padding:6px}.rh-hero h2{font-size:28px;margin:7px 0}.rh-hero p{color:#d8dde1;margin:0}
.rh-primary{background:linear-gradient(135deg,#171d23,#384650);color:#fff;border-bottom:4px solid #b51f27}.rh-primary span,.rh-primary small{color:#d9dfe3}
.rh-panel{border-top:4px solid #b51f27}.rh-module-heading{display:flex;align-items:center;gap:12px;margin-bottom:18px}.rh-module-heading img{width:62px;height:62px;object-fit:cover;border-radius:12px}.rh-module-heading span{font-size:10px;color:#b51f27;font-weight:800;letter-spacing:1.5px}.rh-module-heading h3{margin:4px 0 0}
@media(max-width:650px){.rh-hero{flex-direction:column;text-align:center}.rh-hero img{width:120px;height:120px}.rh-hero h2{font-size:23px}}

.portal-page{min-height:100vh;margin:0;background:radial-gradient(circle at 20% 10%,rgba(47,146,95,.18),transparent 35%),linear-gradient(135deg,#edf5f0,#f7f9f8);display:grid;place-items:center;padding:28px}
.portal-wrap{width:min(1080px,100%)}.portal-header{text-align:center;margin-bottom:30px}.portal-header span{font-size:11px;letter-spacing:2.4px;font-weight:800;color:#24724e}.portal-header h1{font-size:38px;margin:9px 0}.portal-header p{color:#66736d;margin:0}
.system-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.system-card{position:relative;display:flex;flex-direction:column;min-height:460px;background:#fff;border-radius:26px;text-decoration:none;color:#17221d;overflow:hidden;box-shadow:0 24px 70px rgba(20,50,40,.13);border:1px solid #dde8e2;transition:.22s}.system-card:hover{transform:translateY(-7px);box-shadow:0 32px 80px rgba(20,50,40,.19)}
.system-logo{height:245px;display:grid;place-items:center;background:#fff;padding:18px}.system-logo img{max-width:88%;max-height:220px;object-fit:contain}.system-copy{padding:24px 27px 18px;flex:1}.system-copy span{font-size:10px;letter-spacing:1.8px;font-weight:800;color:#24724e}.hr-card .system-copy span{color:#aa2028}.system-copy h2{font-size:27px;margin:8px 0}.system-copy p{color:#68746e;line-height:1.5}.system-enter{padding:17px 27px;color:white;font-weight:800}.finance-card .system-enter{background:linear-gradient(90deg,#174f39,#2b8d5d)}.hr-card .system-enter{background:linear-gradient(90deg,#222b32,#a51e27)}
.portal-wrap footer{text-align:center;color:#7b8781;font-size:12px;margin-top:24px}
.back-portal{display:block;text-align:center;margin-top:14px;color:#5d6b64;text-decoration:none;font-size:12px}
.rh-login-page{background:radial-gradient(circle at 20% 20%,rgba(174,31,40,.25),transparent 35%),linear-gradient(135deg,#111820,#394650)}.rh-login-card{border-top:5px solid #ad2028}.rh-button{background:#a92029}
.rh-sidebar{background:linear-gradient(180deg,#171e24,#303a43 70%,#151b20)}.rh-sidebar-brand{display:flex;gap:12px;align-items:center;padding:4px 6px 21px;border-bottom:1px solid rgba(255,255,255,.13)}.rh-sidebar-brand img{width:62px;height:62px;object-fit:cover;border-radius:12px;background:#fff}.rh-sidebar-brand div{display:flex;flex-direction:column}.rh-sidebar-brand strong{font-size:17px}.rh-sidebar-brand span{font-size:9px;color:#efc4c7;letter-spacing:1.5px;margin-top:6px}.rh-topbar{border-bottom:3px solid #a92029}.rh-avatar{background:linear-gradient(135deg,#333f48,#ad2028)}
@media(max-width:760px){.system-grid{grid-template-columns:1fr}.portal-header h1{font-size:29px}.system-card{min-height:390px}.system-logo{height:205px}}

.system-card{min-height:360px}.system-logo{height:150px;padding:16px}.system-logo img{max-width:165px;max-height:125px}.system-copy{padding:18px 24px}.system-copy h2{font-size:24px}.system-enter{padding:14px 24px}
@media print{.sidebar,.topbar,button{display:none!important}.app-shell{display:block}.page-content{padding:0}.panel{box-shadow:none;border:none}.printable{padding:0}}


/* FERRO PLATFORM 3.4.1 - PORTADA PROFESIONAL */
.portal-v341{
  min-height:100vh;
  margin:0;
  background:
    radial-gradient(circle at 50% -10%, rgba(39,113,77,.10), transparent 34%),
    linear-gradient(180deg,#eef4f1 0%,#f7f9f8 58%,#edf3f0 100%);
  color:#17211d;
  display:block;
  padding:0;
}
.portal-v341-shell{
  width:min(1040px,calc(100% - 34px));
  min-height:100vh;
  margin:0 auto;
  padding:52px 0 32px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.portal-v341-header{
  text-align:center;
  margin-bottom:34px;
}
.portal-v341-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  letter-spacing:3px;
  font-weight:850;
  color:#246b4b;
  margin-bottom:12px;
}
.portal-v341-kicker:before,
.portal-v341-kicker:after{
  content:"";
  width:34px;
  height:1px;
  background:#83aa96;
}
.portal-v341-header h1{
  margin:0;
  font-size:clamp(31px,4vw,45px);
  line-height:1.05;
  letter-spacing:-1.4px;
  color:#14201b;
}
.portal-v341-header p{
  margin:12px 0 0;
  font-size:15px;
  color:#718078;
}
.portal-v341-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;
}
.portal-v341-card{
  min-height:430px;
  display:flex;
  flex-direction:column;
  align-items:center;
  background:#fff;
  border:1px solid #dde7e1;
  border-radius:28px;
  overflow:hidden;
  text-align:center;
  text-decoration:none;
  color:#18221e;
  box-shadow:0 20px 55px rgba(24,61,46,.10);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.portal-v341-card:hover{
  transform:translateY(-7px);
  box-shadow:0 30px 75px rgba(24,61,46,.17);
  border-color:#cbdcd2;
}
.portal-v341-logo{
  width:100%;
  height:190px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:22px 24px 8px;
  background:#fff;
}
.portal-v341-logo img{
  width:auto;
  max-width:185px;
  max-height:150px;
  object-fit:contain;
  display:block;
}
.portal-v341-content{
  width:100%;
  padding:4px 34px 25px;
  flex:1;
}
.portal-v341-content span{
  display:block;
  font-size:10px;
  line-height:1.2;
  letter-spacing:2px;
  font-weight:900;
  color:#2b7754;
  margin-bottom:11px;
}
.rh-v341 .portal-v341-content span{
  color:#a9252d;
}
.portal-v341-content h2{
  margin:0 0 13px;
  font-size:27px;
  line-height:1.15;
  letter-spacing:-.5px;
}
.portal-v341-content p{
  max-width:330px;
  margin:0 auto;
  color:#6e7b75;
  font-size:14px;
  line-height:1.6;
}
.portal-v341-button{
  width:calc(100% - 64px);
  margin:0 32px 30px;
  padding:14px 18px;
  border-radius:13px;
  color:#fff;
  font-size:13px;
  letter-spacing:.8px;
  font-weight:900;
  box-shadow:0 10px 22px rgba(22,75,51,.18);
}
.finance-v341 .portal-v341-button{
  background:linear-gradient(90deg,#185039,#2f8b5d);
}
.rh-v341 .portal-v341-button{
  background:linear-gradient(90deg,#202830,#a8242c);
  box-shadow:0 10px 22px rgba(130,31,37,.18);
}
.portal-v341-footer{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:29px;
  color:#75827c;
  font-size:12px;
}
.portal-lock{
  color:#27724f;
  font-size:13px;
}
@media(max-width:760px){
  .portal-v341-shell{
    width:min(540px,calc(100% - 28px));
    padding:34px 0 25px;
  }
  .portal-v341-header{
    margin-bottom:25px;
  }
  .portal-v341-grid{
    grid-template-columns:1fr;
    gap:18px;
  }
  .portal-v341-card{
    min-height:350px;
  }
  .portal-v341-logo{
    height:145px;
    padding-top:18px;
  }
  .portal-v341-logo img{
    max-width:145px;
    max-height:115px;
  }
  .portal-v341-content{
    padding:3px 25px 20px;
  }
  .portal-v341-content h2{
    font-size:23px;
  }
  .portal-v341-button{
    width:calc(100% - 46px);
    margin:0 23px 23px;
  }
}
