:root{
  --navy:#071d33;
  --navy2:#0b2d4c;
  --blue:#0c385b;
  --ink:#111827;
  --muted:#637083;
  --line:#e7edf3;
  --bg:#f4f7fa;
  --card:#ffffff;
  --orange:#f36c13;
  --orange2:#ff8a1f;
  --teal:#158f8a;
  --green:#0f8b6c;
  --charcoal:#23272d;
  --danger:#c0392b;
  --warn:#e86a15;
  --shadow:0 18px 45px rgba(7,29,51,.11);
  --shadow-soft:0 10px 25px rgba(7,29,51,.08);
  --radius:18px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);min-height:100vh}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
img{max-width:100%}

/* LOGIN */
.login-page{min-height:100vh;background:#071d33 url('img/login-bg-calafquen.jpg') center/cover no-repeat;color:#fff;position:relative;overflow:hidden}
.login-page:before{content:"";position:fixed;inset:0;background:linear-gradient(90deg,rgba(3,15,27,.82) 0%,rgba(3,15,27,.62) 47%,rgba(3,15,27,.74) 100%),radial-gradient(circle at 77% 18%,rgba(255,124,24,.18),transparent 36%);z-index:0}
.login-screen{position:relative;z-index:1;min-height:100vh;display:grid;grid-template-columns:minmax(420px,1.05fr) minmax(420px,.78fr);align-items:center;gap:56px;padding:64px clamp(28px,5vw,92px)}
.login-left{height:100%;display:flex;flex-direction:column;justify-content:center;gap:54px}
.login-left-logo{width:min(520px,80%);filter:drop-shadow(0 16px 38px rgba(0,0,0,.35))}
.login-welcome span{font-size:clamp(24px,2.6vw,38px);font-weight:300;color:rgba(255,255,255,.92)}
.login-welcome h1{font-size:clamp(48px,5vw,72px);line-height:.98;margin:10px 0 16px;letter-spacing:-.06em;color:#fff;text-shadow:0 18px 50px rgba(0,0,0,.32)}
.login-welcome i{display:block;width:92px;height:4px;background:var(--orange);border-radius:999px;margin:0 0 24px}
.login-welcome p{max-width:620px;font-size:20px;line-height:1.55;color:rgba(255,255,255,.83);margin:0}.login-welcome strong{color:#fff}
.secure-note{display:flex;gap:18px;align-items:flex-start;margin-top:auto;max-width:520px}.secure-note b{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:rgba(243,108,19,.1);border:1px solid rgba(243,108,19,.35);color:var(--orange)}
.secure-note strong{display:block;margin-bottom:6px}.secure-note span{color:rgba(255,255,255,.74);line-height:1.45}
.login-card-v2{background:linear-gradient(180deg,rgba(7,29,51,.96),rgba(5,22,39,.95));border:1px solid rgba(255,255,255,.12);border-radius:28px;padding:44px 48px;box-shadow:0 28px 80px rgba(0,0,0,.38);max-width:640px;justify-self:end;position:relative;overflow:hidden}
.login-card-v2:before{content:"";position:absolute;left:48px;right:48px;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--orange),transparent)}
.login-card-v2>img{display:block;width:300px;margin:0 auto 28px;filter:drop-shadow(0 8px 20px rgba(0,0,0,.22))}
.login-card-v2 h2{font-size:42px;letter-spacing:-.045em;text-align:center;margin:0 0 10px;color:#fff}.login-card-v2 p{margin:0 0 28px;text-align:center;color:rgba(255,255,255,.7);line-height:1.5}
.login-form{display:grid;gap:18px;border-top:1px solid rgba(255,255,255,.12);padding-top:24px}.login-form label span{display:block;font-size:14px;color:rgba(255,255,255,.78);margin-bottom:8px}
.input-shell{display:flex;align-items:center;gap:12px;height:56px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:rgba(255,255,255,.03);padding:0 15px}.input-shell b,.input-shell em{font-style:normal;color:rgba(255,255,255,.58)}
.input-shell input{width:100%;background:transparent;border:0;outline:0;color:#fff}.input-shell input::placeholder{color:rgba(255,255,255,.34)}
.form-row{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14px}.remember{display:flex!important;align-items:center;gap:8px;color:rgba(255,255,255,.84)}.remember input{accent-color:var(--orange)}.form-row a{color:var(--orange);font-weight:700}
.login-submit{border:0;border-radius:10px;height:60px;background:linear-gradient(180deg,var(--orange2),var(--orange));color:#fff;font-weight:900;font-size:18px;cursor:pointer;box-shadow:0 12px 25px rgba(243,108,19,.28);transition:.18s}.login-submit:hover{transform:translateY(-1px);filter:saturate(1.06)}
.login-support{margin-top:28px;padding-top:24px;border-top:1px solid rgba(255,255,255,.11);text-align:center}.login-support>span{display:inline-flex;padding:0 18px;position:relative;top:-36px;background:#071d33;color:rgba(255,255,255,.62)}
.login-support div{display:flex;gap:16px;text-align:left;align-items:center;margin-top:-18px}.login-support b{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,255,255,.15);font-size:24px}.login-support p{text-align:left;margin:0!important}.login-support strong{color:#fff}.login-footer{position:fixed;z-index:1;bottom:20px;left:0;right:0;text-align:center;color:rgba(255,255,255,.68);font-size:14px}

/* APP LAYOUT */
.erp-shell{display:grid;grid-template-columns:306px minmax(0,1fr);min-height:100vh}.erp-sidebar{background:linear-gradient(180deg,#061a2f,#0b2d4c 72%,#08213b);color:#fff;padding:34px 28px;display:flex;flex-direction:column;gap:26px;box-shadow:10px 0 40px rgba(7,29,51,.16);position:sticky;top:0;height:100vh;z-index:10}.erp-brand{display:block;padding:2px 0 20px;border-bottom:1px solid rgba(255,255,255,.1)}.erp-brand img{width:238px;display:block;filter:drop-shadow(0 10px 24px rgba(0,0,0,.28))}
.erp-nav{display:grid;gap:8px}.erp-nav a{height:54px;border-radius:10px;display:flex;align-items:center;gap:16px;padding:0 16px;color:rgba(255,255,255,.88);font-weight:750;position:relative;transition:.18s}.erp-nav a span{width:25px;text-align:center;font-size:22px;opacity:.95}.erp-nav a b{margin-left:auto;background:var(--orange);font-size:12px;border-radius:999px;padding:4px 8px;box-shadow:0 8px 20px rgba(243,108,19,.28)}.erp-nav a:hover{background:rgba(255,255,255,.08);transform:translateX(2px)}.erp-nav a.active{background:rgba(255,255,255,.12);box-shadow:inset 5px 0 0 var(--orange)}
.quick-access{margin-top:auto;border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:18px;background:rgba(255,255,255,.04)}.quick-access p{margin:0 0 12px;color:rgba(255,255,255,.68);font-size:12px;font-weight:900;letter-spacing:.06em}.quick-access a{display:flex;align-items:center;gap:11px;background:rgba(255,255,255,.08);padding:13px;border-radius:10px;margin-top:10px;font-weight:800;font-size:14px}.quick-access a span{font-size:18px}.quick-access a:hover{background:rgba(255,255,255,.13)}.sidebar-bottom{color:rgba(255,255,255,.66);font-weight:700;font-size:14px;display:flex;gap:10px;align-items:center}
.erp-main{min-width:0;display:flex;flex-direction:column}.erp-topbar{height:84px;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;position:sticky;top:0;z-index:8}.topbar-left{display:flex;align-items:center;gap:22px}.topbar-left strong{font-size:20px;color:var(--navy)}.menu-button{border:0;background:transparent;font-size:28px;color:var(--navy);cursor:pointer}.topbar-actions{display:flex;align-items:center;gap:16px}.icon-button{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:var(--navy);font-size:22px;position:relative}.icon-button:hover{background:#f1f5f8}.icon-button.with-badge b{position:absolute;right:1px;top:1px;background:var(--orange);color:#fff;font-size:11px;border-radius:999px;padding:2px 6px}.top-user{display:flex;align-items:center;gap:12px;padding-left:14px;border-left:1px solid var(--line)}.avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#f7aa54,#0b2d4c);color:#fff;font-weight:900}.top-user span{display:block;color:var(--muted);font-size:12px}.top-user strong{display:block;max-width:170px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-user small{display:block;color:var(--muted);font-size:11px}.logout-link{color:var(--orange);font-weight:900;font-size:14px}.erp-content{padding:0 32px 30px}.erp-content.inner-page{padding-top:32px}.erp-footer{height:54px;border-top:1px solid var(--line);background:#fff;color:#7b8794;display:flex;align-items:center;justify-content:center;gap:28px;font-size:13px;flex-wrap:wrap}

/* DASHBOARD */
.erp-hero{height:340px;margin:0 -32px;background:url('img/login-bg-calafquen.jpg') center 43%/cover no-repeat;position:relative;overflow:hidden}.erp-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,15,27,.88) 0%,rgba(3,15,27,.66) 37%,rgba(3,15,27,.04) 72%)}.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 65%,rgba(244,247,250,.98) 100%)}.hero-content{position:relative;z-index:1;padding:52px 60px;color:#fff;max-width:650px}.hero-kicker{display:inline-flex;color:#7fe1d5;font-weight:900;text-transform:uppercase;font-size:13px;letter-spacing:.08em;margin-bottom:12px}.hero-content h1{font-size:58px;line-height:.98;margin:0 0 18px;letter-spacing:-.055em}.hero-content i{display:block;width:82px;height:4px;background:var(--orange);border-radius:999px;margin-bottom:22px}.hero-content p{font-size:18px;line-height:1.5;color:rgba(255,255,255,.9);margin:0 0 22px}.hero-note{display:inline-flex;align-items:center;gap:10px;color:#fff;font-weight:800}.hero-note span{color:#49ddd1}
.stats-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;margin-top:-34px;position:relative;z-index:2}.stat-card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-soft);padding:18px;display:flex;align-items:center;gap:14px;min-height:128px}.stat-icon{width:55px;height:55px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:24px;flex:0 0 auto}.stat-icon.navy,.module-icon.navy,.activity-timeline i.navy{background:var(--navy)}.stat-icon.orange,.module-icon.orange,.activity-timeline i.orange{background:linear-gradient(180deg,var(--orange2),var(--orange))}.stat-icon.teal,.module-icon.teal,.activity-timeline i.teal{background:linear-gradient(180deg,#26b8b2,var(--teal))}.stat-icon.charcoal,.module-icon.charcoal,.activity-timeline i.charcoal{background:var(--charcoal)}.stat-card span{display:block;color:#202938;font-size:13px;font-weight:700}.stat-card strong{display:block;font-size:32px;line-height:1;margin:7px 0 9px}.stat-card small{font-weight:800;font-size:12px}.trend.up{color:var(--green)}.trend.up-warn,.trend.down-warn{color:var(--orange)}.trend.flat{color:#8d96a3}
.main-dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:24px;margin-top:24px}.dashboard-left,.dashboard-right{min-width:0}.section-title{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;margin:8px 0 16px}.section-title span{display:block;font-size:12px;font-weight:950;color:var(--navy);letter-spacing:.04em}.section-title h2{font-size:21px;margin:5px 0 0;letter-spacing:-.02em}.section-title input{width:min(320px,100%);height:44px;border:1px solid var(--line);border-radius:12px;padding:0 14px;outline:none;background:#fff}.section-title.compact{align-items:center;margin:0 0 14px}
.modules-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.module-tile{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-soft);padding:22px;display:flex;gap:18px;min-height:176px;transition:.18s}.module-tile:hover{transform:translateY(-3px);box-shadow:0 18px 44px rgba(7,29,51,.12)}.module-icon{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:28px;flex:0 0 auto}.module-body{min-width:0;display:flex;flex-direction:column;gap:9px}.module-heading{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}.module-heading h3{margin:0;font-size:20px;line-height:1.1;letter-spacing:-.025em}.module-body p{color:#505d6c;line-height:1.44;font-size:14px;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.module-tags{display:flex;gap:7px;flex-wrap:wrap}.module-tags span{background:#f4f7fa;border:1px solid var(--line);color:#647184;border-radius:999px;font-size:11px;font-weight:800;padding:5px 8px}.module-cta{margin-top:auto;font-weight:900;color:var(--navy);display:inline-flex;align-items:center;gap:8px}.module-cta.disabled{color:#9aa4b0;pointer-events:none}.module-cta span{transition:.18s}.module-cta:hover span{transform:translateX(4px)}
.dashboard-right{display:grid;gap:16px;align-content:start}.recommend-card,.activity-card,.mini-admin-card,.panel-card,.operation-flow{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-soft);padding:18px}.card-title{display:flex;align-items:center;gap:9px;color:var(--navy);font-size:13px;font-weight:900;letter-spacing:.02em;margin-bottom:12px}.card-title span{color:var(--orange);font-size:22px}.card-title a{margin-left:auto;color:#1b5f96;font-size:12px}.card-title.blue span{color:#1b75d0}.recommended-box{background:#fff0e7;border-radius:14px;padding:18px;border:1px solid #ffd7bd}.recommended-box .warn-icon{font-size:30px;color:var(--orange)}.recommended-box h3{margin:5px 0 8px;font-size:18px}.recommended-box p{color:#6d5546;line-height:1.45;font-size:14px;margin:0 0 14px}.recommended-box a{height:42px;border-radius:9px;background:linear-gradient(180deg,var(--orange2),var(--orange));color:#fff;display:inline-flex;align-items:center;gap:14px;padding:0 18px;font-weight:900}.recommend-list{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:10px}.recommend-list li{border-top:1px solid var(--line);padding-top:10px;color:#566373;font-weight:700}.recommend-list span{display:inline-grid;place-items:center;min-width:28px;height:28px;border-radius:999px;background:#fff0e7;color:var(--orange);margin-right:8px;font-weight:900}.activity-timeline{list-style:none;margin:0;padding:0;display:grid;gap:14px}.activity-timeline li{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:start}.activity-timeline i{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:#fff;font-style:normal}.activity-timeline strong{display:block;font-size:14px}.activity-timeline span{display:block;color:#677384;font-size:12px;line-height:1.35}.activity-timeline time{color:#9aa4b0;font-size:12px;white-space:nowrap}.mini-admin-card h3{margin:0 0 12px}.mini-admin-card div{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:11px 0}.mini-admin-card span{color:var(--muted);font-weight:800}.mini-admin-card strong{color:var(--navy);font-size:22px}.operation-flow{margin-top:18px}.flow-line{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.flow-line div{background:#f7fafc;border:1px solid var(--line);border-radius:12px;padding:14px;position:relative}.flow-line div:not(:last-child):after{content:"→";position:absolute;right:-11px;top:50%;transform:translateY(-50%);color:var(--orange);font-weight:900}.flow-line strong{display:block}.flow-line span{font-size:12px;color:var(--muted);font-weight:800}.admin-summary{margin-top:24px}.kpi-note{color:#7d8895;font-size:13px;text-align:center;margin:18px 0 0}

/* INNER PAGES / COMMON */
.notice{padding:14px 16px;border-radius:12px;margin-bottom:16px;background:#edf7ff;border:1px solid #bdddf5;color:#0d4778;font-weight:700}.notice.success{background:#eaf8f1;border-color:#bdebd5;color:#0c6446}.notice.danger{background:#fff1f1;border-color:#ffd0d0;color:#a42e2e}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;background:var(--navy);color:#fff;padding:12px 16px;font-weight:900;cursor:pointer;box-shadow:0 10px 22px rgba(7,29,51,.14)}.btn:hover{filter:brightness(1.05)}.btn.ghost{background:#f4f7fa;color:var(--navy);box-shadow:none;border:1px solid var(--line)}.btn.small{padding:8px 11px;border-radius:10px;font-size:12px}.btn.full{width:100%}.btn.disabled{opacity:.55;pointer-events:none}.panel-card{margin-bottom:18px}.panel-card h2,.panel-card h3{margin-top:0}.muted{color:var(--muted)}.section-head{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-soft);padding:22px;margin-bottom:18px;display:flex;justify-content:space-between;gap:18px;align-items:center}.section-head h2,.section-head h3{margin:0 0 6px;letter-spacing:-.02em}.section-head p{margin:0;color:var(--muted)}.section-head.with-tools input{height:44px;border:1px solid var(--line);border-radius:12px;padding:0 12px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.two-col.align-start{align-items:start}.form-stack,.form-grid{display:grid;gap:14px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid .full-row{grid-column:1/-1}.form-actions{display:flex;gap:10px;flex-wrap:wrap}.form-grid label,.form-stack label,.inline-form label{display:grid;gap:7px;font-weight:800;color:#243041}.form-grid input,.form-grid select,.form-grid textarea,.form-stack input,.form-stack select,.form-stack textarea,.inline-form select,.inline-form input{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;outline:none}.form-grid textarea,.form-stack textarea{resize:vertical}.check-row{display:flex!important;align-items:center;gap:9px}.check-row input{width:auto}.inline-form{margin-bottom:14px}.permission-list{display:grid;gap:10px}.permission-item{display:flex!important;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px;background:#f8fafc}.permission-item small{display:block;color:var(--muted)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}table{border-collapse:collapse;width:100%;background:#fff}th,td{text-align:left;border-bottom:1px solid var(--line);padding:14px;font-size:14px}th{background:#f7fafc;font-size:12px;text-transform:uppercase;color:#5e6c7b;letter-spacing:.04em}tr:last-child td{border-bottom:0}.truncate{max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;border:1px solid transparent;white-space:nowrap}.badge.ok{background:#e7f7ef;color:#0f7a4f;border-color:#c6ead8}.badge.warn{background:#fff3e6;color:#b75a07;border-color:#ffd9af}.badge.danger{background:#ffecec;color:#a43333;border-color:#ffc6c6}.badge.neutral{background:#eef2f6;color:#556170;border-color:#dfe7ef}.activity-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}.activity-list li{border-bottom:1px solid var(--line);padding-bottom:12px}.activity-list li:last-child{border-bottom:0}.activity-list strong,.activity-list span,.activity-list small{display:block}.activity-list span{color:var(--muted)}.activity-list small{color:#9aa4b0;margin-top:3px}

@media (max-width:1400px){.stats-row{grid-template-columns:repeat(3,1fr)}.modules-grid{grid-template-columns:repeat(2,1fr)}.main-dashboard-grid{grid-template-columns:1fr}.dashboard-right{grid-template-columns:repeat(3,1fr)}.activity-card{grid-column:span 2}}
@media (max-width:980px){.erp-shell{grid-template-columns:1fr}.erp-sidebar{position:relative;height:auto;padding:22px}.erp-brand img{width:220px}.erp-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-access,.sidebar-bottom{display:none}.erp-topbar{height:auto;gap:14px;align-items:flex-start;flex-direction:column;padding:18px}.topbar-actions{flex-wrap:wrap}.erp-content{padding:0 16px 20px}.erp-hero{height:auto;margin:0 -16px}.hero-content{padding:42px 24px}.stats-row{grid-template-columns:repeat(2,1fr)}.modules-grid{grid-template-columns:1fr}.dashboard-right{grid-template-columns:1fr}.activity-card{grid-column:auto}.login-screen{grid-template-columns:1fr;padding:34px 18px 70px}.login-left{gap:30px}.login-card-v2{justify-self:stretch;padding:30px}.login-card-v2>img{width:250px}.login-footer{position:relative;margin:20px}}
@media (max-width:620px){.erp-nav{grid-template-columns:1fr}.stats-row{grid-template-columns:1fr}.stat-card{min-height:unset}.section-title,.section-head{display:block}.section-title input{width:100%;margin-top:12px}.flow-line{grid-template-columns:1fr}.flow-line div:after{display:none}.module-tile{display:block}.module-icon{margin-bottom:14px}.form-grid,.two-col{grid-template-columns:1fr}.top-user{border-left:0;padding-left:0}.icon-button{display:none}.login-left-logo{width:290px}.login-welcome h1{font-size:44px}.login-card-v2 h2{font-size:32px}.form-row{align-items:flex-start;flex-direction:column}.login-support div{align-items:flex-start}.erp-footer{height:auto;padding:15px;gap:8px}}
@media print{.erp-sidebar,.erp-topbar,.erp-footer,.module-cta,.btn{display:none!important}.erp-shell{display:block}.erp-content{padding:0}.erp-hero{height:auto;color:#111;background:#fff!important}.erp-hero:before,.hero-overlay{display:none}.hero-content{color:#111}.panel-card,.module-tile,.stat-card{box-shadow:none;break-inside:avoid}}
@media (min-width:981px){.erp-shell.menu-collapsed{grid-template-columns:92px minmax(0,1fr)}.erp-shell.menu-collapsed .erp-sidebar{padding-left:16px;padding-right:16px}.erp-shell.menu-collapsed .erp-brand img{width:62px;height:auto;object-fit:contain;object-position:left}.erp-shell.menu-collapsed .erp-nav a{justify-content:center;padding:0}.erp-shell.menu-collapsed .erp-nav a span{font-size:24px}.erp-shell.menu-collapsed .erp-nav a:not(.active){background:transparent}.erp-shell.menu-collapsed .erp-nav a{font-size:0}.erp-shell.menu-collapsed .erp-nav a b{position:absolute;right:5px;top:8px;font-size:10px}.erp-shell.menu-collapsed .quick-access,.erp-shell.menu-collapsed .sidebar-bottom{display:none}}

/* V2.1 ajustes: dashboard más respirado + KPIs reales */
.erp-shell{grid-template-columns:292px minmax(0,1fr)}
.erp-sidebar{padding:32px 26px}
.erp-brand img{width:226px}
.erp-topbar{height:78px;padding:0 40px}
.erp-content{padding:0 42px 36px}
.erp-content.inner-page{padding-top:34px}
.erp-hero{height:310px;margin:0 -42px;border-bottom:1px solid rgba(7,29,51,.08)}
.hero-content{padding:48px 72px;max-width:720px}
.hero-content h1{font-size:clamp(44px,3.8vw,60px)}
.hero-content p{max-width:640px}
.stats-row{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;margin-top:24px;z-index:1}
.stat-card{min-height:112px;padding:18px 20px;border-radius:18px;align-items:center}
.stat-icon{width:52px;height:52px;font-size:22px}
.stat-card span{font-size:12px;line-height:1.2;text-transform:none;color:#273241}
.stat-card strong{font-size:34px;margin:5px 0 8px;letter-spacing:-.035em}
.stat-card small{display:block;line-height:1.25;max-width:145px}
.main-dashboard-grid{grid-template-columns:minmax(0,1fr) 410px;gap:28px;margin-top:34px;align-items:start}
.section-title{margin:0 0 20px}.section-title h2{font-size:24px}.section-title input{height:48px;width:min(360px,100%)}
.modules-grid{grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:20px}.module-tile{min-height:188px;padding:24px;border-radius:18px}.module-body p{-webkit-line-clamp:3}
.dashboard-right{gap:20px}.recommend-card,.activity-card,.mini-admin-card,.panel-card,.operation-flow{border-radius:20px;padding:22px}.recommended-box{padding:22px}.recommend-list li{line-height:1.35}
.kpi-note{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 16px;box-shadow:var(--shadow-soft);max-width:920px;margin:26px auto 0}.kpi-note code{background:#eef3f7;border-radius:6px;padding:2px 6px;color:var(--navy);font-weight:800}
@media (max-width:1750px){.stats-row{grid-template-columns:repeat(3,minmax(0,1fr))}.main-dashboard-grid{grid-template-columns:minmax(0,1fr) 390px}.modules-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1320px){.main-dashboard-grid{grid-template-columns:1fr}.dashboard-right{grid-template-columns:repeat(2,minmax(0,1fr))}.activity-card{grid-column:auto}.mini-admin-card{grid-column:1/-1}.stats-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:980px){.erp-shell{grid-template-columns:1fr}.erp-content{padding:0 18px 24px}.erp-hero{margin:0 -18px;height:auto}.hero-content{padding:44px 26px}.stats-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.main-dashboard-grid{margin-top:26px}.dashboard-right{grid-template-columns:1fr}.modules-grid{grid-template-columns:1fr}.erp-topbar{padding:18px}}
@media (max-width:620px){.stats-row{grid-template-columns:1fr}.stat-card{min-height:96px}.hero-content h1{font-size:40px}.hero-content p{font-size:16px}}

/* V2.2 Conexiones */
.connection-page .section-title p,
.help-text {
    margin: 8px 0 0;
    color: var(--muted);
    line-height: 1.55;
}
.connection-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-top: 22px;
}
.connection-card {
    border: 1px solid var(--border);
    border-radius: 24px;
    padding: 20px;
    background: #fff;
    box-shadow: var(--shadow-sm);
}
.connection-card.connected {
    border-color: rgba(13,148,136,.25);
    background: linear-gradient(180deg, #fff, rgba(13,148,136,.04));
}
.connection-card.offline {
    border-color: rgba(249,115,22,.18);
    background: linear-gradient(180deg, #fff, rgba(249,115,22,.035));
}
.connection-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 16px;
}
.connection-head span {
    display: block;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
    color: var(--muted);
    text-transform: uppercase;
}
.connection-head strong {
    display: block;
    margin-top: 5px;
    font-size: 20px;
    color: var(--navy);
}
.connection-head b {
    width: 42px;
    height: 42px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    background: rgba(7, 29, 51, .08);
    color: var(--navy);
}
.connection-card.connected .connection-head b {
    background: rgba(13,148,136,.13);
    color: #0f766e;
}
.connection-card dl {
    margin: 0;
    display: grid;
    gap: 8px;
}
.connection-card dl div {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    border-bottom: 1px solid rgba(15,23,42,.06);
    padding-bottom: 8px;
}
.connection-card dt {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}
.connection-card dd {
    margin: 0;
    color: var(--navy);
    font-weight: 800;
    text-align: right;
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.connection-card small {
    display: block;
    margin-top: 14px;
    color: var(--muted);
    font-size: 11px;
    word-break: break-all;
}
.code-block {
    background: #071426;
    color: #e5eef8;
    padding: 18px;
    border-radius: 18px;
    overflow: auto;
    font-size: 13px;
    line-height: 1.55;
}
@media (max-width: 1200px) {
    .connection-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
    .connection-grid { grid-template-columns: 1fr; }
}

/* V2.3 KPIs conectados: más trazabilidad sin mostrar claves */
.connection-card { border-color: var(--line); }
.metric-mini-list{
  display:grid;
  gap:6px;
  margin-top:14px;
  padding:12px;
  border-radius:14px;
  background:#f8fafc;
  border:1px solid var(--line);
  font-size:12px;
  color:var(--muted);
}
.metric-mini-list span{display:flex;justify-content:space-between;gap:10px;text-transform:capitalize;font-weight:750}
.metric-mini-list strong{color:var(--navy);font-size:15px}
.connection-card.connected .metric-mini-list{background:rgba(13,148,136,.05);border-color:rgba(13,148,136,.16)}
.erp-content{overflow:visible}
.erp-hero{min-height:310px}
@media (min-width:981px){
  .erp-shell.menu-collapsed .erp-brand{padding-top:0}
}

/* V2.4 KPIs con fuente real + login corregido */
.trend.connected{color:#0f8b6c!important;font-weight:900}
.trend.warning{color:var(--orange)!important;font-weight:900}
.trend.offline{color:#8d96a3!important;font-weight:850}
.stat-card small.trend{max-width:260px;white-space:normal;line-height:1.28}
.stat-card{gap:18px}.stat-card strong{font-size:36px}.stat-card span{font-size:13px;font-weight:900;color:#071d33}

.login-page{min-height:100svh;overflow:auto;background-position:center center}
.login-page:before{background:linear-gradient(90deg,rgba(3,15,27,.86) 0%,rgba(3,15,27,.67) 48%,rgba(3,15,27,.78) 100%),radial-gradient(circle at 79% 18%,rgba(243,108,19,.16),transparent 34%)}
.login-screen{min-height:100svh;align-items:center;gap:clamp(28px,4vw,58px);padding:clamp(28px,4vw,56px) clamp(24px,5vw,88px) clamp(60px,5vw,86px)}
.login-left{justify-content:center;gap:clamp(28px,4vw,50px);padding-bottom:26px}
.login-left-logo{width:min(430px,72%);max-height:190px;object-fit:contain;object-position:left center;filter:drop-shadow(0 18px 44px rgba(0,0,0,.42))}
.login-welcome h1{font-size:clamp(46px,4.5vw,68px);max-width:720px}.login-welcome p{font-size:clamp(17px,1.35vw,20px);max-width:680px}
.login-card-v2{max-width:620px;width:min(620px,100%);padding:clamp(30px,3vw,40px) clamp(34px,3.4vw,46px);border-radius:26px;align-self:center;margin:0;transform:translateY(-4px)}
.login-card-v2>img{width:min(280px,66%);margin-bottom:22px}.login-card-v2 h2{font-size:clamp(34px,2.8vw,42px);margin-bottom:8px}.login-card-v2 p{margin-bottom:22px}
.login-form{gap:15px;padding-top:21px}.input-shell{height:56px}.login-submit{height:58px;border-radius:12px}.login-support{margin-top:22px;padding-top:20px}.login-support>span{top:-32px}.login-support div{margin-top:-18px}
.login-footer{position:fixed;left:0;right:0;bottom:12px;z-index:2;pointer-events:none;font-size:13px;color:rgba(255,255,255,.72)}
@media (max-height:850px) and (min-width:981px){.login-screen{padding-top:28px;padding-bottom:58px}.login-left-logo{width:350px}.login-welcome span{font-size:26px}.login-welcome h1{font-size:50px}.login-card-v2{padding:26px 38px}.login-card-v2>img{width:230px;margin-bottom:16px}.login-card-v2 h2{font-size:34px}.login-card-v2 p{margin-bottom:16px}.login-form{gap:12px}.input-shell{height:52px}.login-support{display:none}.secure-note{display:none}}
@media (max-width:980px){.login-page{overflow:auto}.login-footer{position:relative;bottom:auto;margin:0;padding:0 16px 24px}.login-screen{min-height:auto}.login-left-logo{width:min(360px,80%)}.login-card-v2{transform:none}}

/* V2.5 Control central de accesos */
.access-head .eyebrow,
.eyebrow{
  display:inline-block;
  font-size:12px;
  letter-spacing:.08em;
  font-weight:950;
  color:var(--teal);
  text-transform:uppercase;
  margin-bottom:6px;
}
.access-explain{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  background:linear-gradient(135deg,#ffffff 0%,#f6fbff 100%);
}
.access-explain h3{margin:0 0 8px;color:var(--navy);font-size:22px}
.access-explain p{margin:0;color:var(--muted);max-width:760px;line-height:1.55}
.access-flow-mini{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.access-flow-mini span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 14px;
  border-radius:999px;
  background:#fff;
  border:1px solid var(--line);
  font-weight:900;
  color:var(--navy);
  box-shadow:0 10px 24px rgba(7,29,51,.06);
}
.access-flow-mini i{color:var(--orange);font-style:normal;font-weight:950}
.access-role-selector{align-items:center;justify-content:space-between;gap:18px}
.access-role-selector label{min-width:320px}
.access-role-selector p{margin:0;color:var(--muted);font-weight:700}
.access-matrix-card{padding:0;overflow:hidden}
.permission-table-wrap{border-radius:22px;box-shadow:none;border:0;margin:0}
.permission-matrix{min-width:1050px}
.permission-matrix th{font-size:12px;white-space:nowrap;background:#f8fafc;color:#39465a}
.permission-matrix td{vertical-align:middle}
.permission-module-cell{display:flex;align-items:center;gap:12px;min-width:270px}
.module-icon.mini{width:46px;height:46px;border-radius:16px;font-size:20px;flex:0 0 auto}
.permission-module-cell strong{display:block;color:var(--navy);font-size:15px}
.permission-module-cell small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.center{text-align:center}
.switch-mini{display:inline-flex;position:relative;width:48px;height:28px;cursor:pointer;vertical-align:middle}
.switch-mini input{position:absolute;opacity:0;inset:0}
.switch-mini span{position:absolute;inset:0;background:#e2e8f0;border-radius:999px;border:1px solid #d5dde8;transition:.18s ease}
.switch-mini span:before{content:"";position:absolute;width:22px;height:22px;left:2px;top:2px;border-radius:50%;background:#fff;box-shadow:0 3px 8px rgba(7,29,51,.18);transition:.18s ease}
.switch-mini input:checked + span{background:linear-gradient(135deg,var(--orange),#ff8a25);border-color:rgba(243,108,19,.45)}
.switch-mini input:checked + span:before{transform:translateX(20px)}
.switch-mini input:disabled + span{opacity:.48;cursor:not-allowed}
.sticky-actions{position:sticky;bottom:0;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:18px 22px;margin:0;z-index:5}
.role-suggestion-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.role-suggestion-grid div{padding:18px;border-radius:18px;background:#f8fafc;border:1px solid var(--line)}
.role-suggestion-grid strong{display:block;color:var(--navy);margin-bottom:6px}
.role-suggestion-grid span{display:block;color:var(--muted);font-weight:700;line-height:1.42}
.migration-page{min-height:100vh;background:#eef3f7;padding:40px;font-family:var(--font)}
.migration-card{max-width:980px;margin:0 auto;background:#fff;border-radius:24px;padding:34px;box-shadow:var(--shadow);border:1px solid var(--line)}
.migration-card h1{margin:0 0 10px;color:var(--navy)}
.migration-card p{color:var(--muted);font-weight:700}.migration-card pre{background:#071426;color:#e5eef8;padding:20px;border-radius:16px;overflow:auto;line-height:1.55}
.api-doc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.api-doc-grid .code-block{height:100%;white-space:pre-wrap}
@media(max-width:980px){.access-explain{display:block}.access-flow-mini{justify-content:flex-start;margin-top:18px}.role-suggestion-grid,.api-doc-grid{grid-template-columns:1fr}.access-role-selector{display:block}.access-role-selector label{min-width:0}.permission-matrix{min-width:980px}}


/* V2.5.3 - Menú lateral con scroll interno
   El sidebar queda fijo y solo se desplaza el contenido del menú,
   para poder llegar a Conexiones, Accesos y Mi perfil sin mover el dashboard. */
@media (min-width:981px){
  .erp-sidebar{
    position:sticky;
    top:0;
    height:100dvh;
    max-height:100dvh;
    overflow:hidden;
    padding-bottom:18px;
  }

  .sidebar-scroll-area{
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    padding-right:8px;
    margin-right:-8px;
    scroll-behavior:smooth;
    overscroll-behavior:contain;
  }

  .sidebar-scroll-area::-webkit-scrollbar{
    width:7px;
  }

  .sidebar-scroll-area::-webkit-scrollbar-track{
    background:rgba(255,255,255,.04);
    border-radius:999px;
  }

  .sidebar-scroll-area::-webkit-scrollbar-thumb{
    background:rgba(255,255,255,.22);
    border-radius:999px;
  }

  .sidebar-scroll-area::-webkit-scrollbar-thumb:hover{
    background:rgba(255,255,255,.34);
  }

  .erp-nav{
    padding-bottom:12px;
  }

  .quick-access{
    margin-top:18px;
  }

  .sidebar-bottom{
    margin-top:18px;
    padding-bottom:8px;
  }

  .erp-shell.menu-collapsed .erp-sidebar{
    overflow:hidden;
  }

  .erp-shell.menu-collapsed .sidebar-scroll-area{
    overflow-y:auto;
    padding-right:4px;
    margin-right:-4px;
  }
}

/* Mantiene el comportamiento móvil sin forzar scroll interno */
@media (max-width:980px){
  .sidebar-scroll-area{
    overflow:visible;
  }
}
