/* CASTELLANO ERP · Edición empresarial · Identidad original sin alterar los componentes de negocio. */
:root{--navy:#1d2024;--navy2:#171a1e;--deep:#111418;--teal:#c49312;--teal2:#f3b900;--accent:#ffc21b;--blue:#a97c00;--bg:#f5f6f8;--white:#fff;--text:#202630;--muted:#687280;--line:#e6e8ec;--shadow:0 8px 28px rgba(29,34,43,.055);--focus:#cf9910;--radius:16px}
body.castellano-authenticated{background:#f6f7f9;color:#22272d}
body.castellano-authenticated a:not(.nav-link):not(.btn):not(.action-card):not(.module-primary):not(.tile-action){color:#8b6510}
body.castellano-authenticated .side{width:249px;flex:0 0 249px;padding:24px 14px 15px;background:linear-gradient(150deg,#171a1e,#24282d 85%);box-shadow:2px 0 24px rgba(14,18,22,.12);border-right:1px solid #393e44;z-index:10}
.side .brand-logo{background:transparent;border-radius:0;min-height:71px;padding:0 8px;display:flex;align-items:center;justify-content:center}
.side .brand-logo img{width:100%;height:auto;max-height:67px;object-fit:contain;filter:none}
.side .brand-note{margin:4px 2px 16px;padding:10px 0 13px;border-bottom:1px solid #ffffff1f;color:#aab2bd;letter-spacing:.16em;font-size:9px}
.side .nav{display:grid;gap:3px}
.side .nav-link{min-height:43px;gap:11px;padding:11px 12px;border-radius:9px;font-size:12.5px;color:#bfc4cc;font-weight:620;border-left:3px solid transparent}
.side .nav-link .ico{width:17px;height:17px;opacity:.88}
.side .nav-link:hover{color:#fff;background:#ffffff13}
.side .nav-link.on{color:#171a1e;background:linear-gradient(110deg,#ffc624,#edab05);font-weight:800;border-color:#ffe58d;box-shadow:0 5px 15px #0003}
.side .sidebar-bottom{border-color:#ffffff1e;margin-top:auto;padding-top:15px}
.castellano-authenticated .main{max-width:none;padding:0 30px 20px;background:#f6f7f9}
.castellano-authenticated .top{background:transparent;min-height:92px;padding:18px 0;border-bottom:1px solid #e0e4e9;margin-bottom:23px}
.castellano-authenticated .top h1{color:#242932;font-size:26px;font-weight:800}
.castellano-authenticated .page-kicker{color:#8b6b20;font-weight:850;letter-spacing:.12em}
.castellano-authenticated .user-avatar{background:#24282c;color:#ffc21b;width:40px;height:40px;border-radius:11px}
.castellano-authenticated .top-user{border-radius:12px;gap:11px}
.castellano-authenticated .user-label b{color:#202328}
.castellano-authenticated .logout-btn{background:#fff!important;color:#31353a!important;border:1px solid #e2e5eb!important;min-height:41px!important}
.castellano-authenticated footer{color:#98a0aa;font-size:11px;margin:24px 0 6px}
.castellano-authenticated .panel,.castellano-authenticated .hero-stat,.castellano-authenticated .module-tile,.castellano-authenticated .action-card{border-radius:13px;border-color:#e7e9ed;box-shadow:0 5px 18px #0e182a0a}
.castellano-authenticated .module-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.castellano-authenticated .module-primary{color:#202630;min-height:90px}
.castellano-authenticated .module-primary:hover,.castellano-authenticated .action-card:hover{background:#fff9eb}
.castellano-authenticated .module-glyph{color:#e2a900;background:#fff7df;border:1px solid #ffe8aa;border-radius:12px;width:50px;height:50px}
.castellano-authenticated .module-glyph .ico{width:25px;height:25px}
.castellano-authenticated .module-copy strong{font-size:14px}
.castellano-authenticated .module-copy small{font-size:11px}
.castellano-authenticated .tile-actions{border-color:#f0f1f3}
.castellano-authenticated .tile-action{color:#4c4c4c;background:#f5f6f7;font-size:11px}
.castellano-authenticated .tile-action:hover{background:#fff1c9}
.castellano-authenticated button:not(.secondary):not(.danger),.castellano-authenticated .btn:not(.secondary):not(.danger){background:#eab40f;color:#1e2228;border-color:#e0a80a;font-weight:750}
.castellano-authenticated button:not(.secondary):not(.danger):hover,.castellano-authenticated .btn:not(.secondary):not(.danger):hover{background:#ffca25}
.castellano-authenticated .panel-heading{border-color:#eef0f3}
.castellano-authenticated .field input:focus,.castellano-authenticated .field select:focus,.castellano-authenticated .field textarea:focus{border-color:#bd920f;box-shadow:0 0 0 3px #edb52c30}
.castellano-authenticated .welcome-hero{background:linear-gradient(108deg,#202328 5%,#33383e 67%,#46423a);color:#fff;position:relative;isolation:isolate;min-height:202px;padding:30px 34px;border-radius:15px}
.castellano-authenticated .welcome-hero:after{content:'';position:absolute;right:5%;bottom:0;width:210px;height:150px;opacity:.15;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0 18px,#f7c545 19px 20px),repeating-linear-gradient(0deg,transparent 0 26px,#f7c545 27px 28px);clip-path:polygon(0 36%,30% 36%,30% 0,70% 0,70% 17%,100% 17%,100% 100%,0 100%)}
.castellano-authenticated .welcome-hero h2{color:#fff;font-size:clamp(24px,3vw,33px);margin:6px 0 7px}
.castellano-authenticated .welcome-hero p:not(.eyebrow){color:#ced2d7;max-width:720px}
.castellano-authenticated .welcome-hero .eyebrow{color:#ffcb39}
.castellano-authenticated .hero-symbol{color:#ffba08;opacity:.45;transform:scale(3);margin-right:68px}
.castellano-home-actions{display:flex;gap:12px;flex-wrap:wrap;margin:17px 0 0}
.castellano-home-actions a{border-radius:8px;padding:9px 14px;font-size:12px;font-weight:800;background:#ffc21b;color:#15181c!important}
.castellano-home-actions a.secondary{background:#ffffff1c;color:#fff!important;border:1px solid #ffffff52}
.castellano-authenticated .hero-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
.castellano-authenticated .hero-stat{padding:17px;min-height:123px}
.castellano-authenticated .hero-stat-icon{color:#c59612}
.castellano-authenticated .hero-stat strong{font-size:clamp(16px,2.2vw,25px);color:#262a31}
.castellano-authenticated .eyebrow{color:#91701b}
.castellano-authenticated .mg-banner{background:linear-gradient(110deg,#23262b,#36383c)!important;border-radius:15px}
.castellano-authenticated .mg-fill{background:#f9bc11!important}
.castellano-authenticated .mg-track{background:#eceef0}
.castellano-authenticated .mg-kpi{border-radius:13px;border-color:#e8eaf0;box-shadow:0 5px 20px #1018200a}
.castellano-authenticated .mg-kpi strong{color:#282d34}
.castellano-authenticated .module-heading{background:linear-gradient(105deg,#fff,#f8f3e7);border-color:#ebe7dd}
.castellano-authenticated .module-heading .module-glyph{width:66px;height:66px}
/* Login · sin fotos de obras ni cifras ficticias */
body.castellano-guest:has(.castellano-login-shell){background:#181c20}
.castellano-guest:has(.castellano-login-shell) .shell{display:block;min-height:100vh}
.castellano-guest:has(.castellano-login-shell) .main{padding:0;max-width:none;min-height:100vh;width:100%}
.castellano-guest:has(.castellano-login-shell) .page-content{min-height:100vh}
.castellano-guest:has(.castellano-login-shell) footer{display:none}
.castellano-login-shell{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);min-height:100vh;background:#171b20}
.castellano-login-story{position:relative;overflow:hidden;isolation:isolate;color:#fff;background:radial-gradient(circle at 4% 95%,#6b5315 0%,transparent 40%),linear-gradient(145deg,#272b30 0%,#171a1e 53%,#0f1317 100%);padding:clamp(28px,5vw,72px);display:flex;flex-direction:column;justify-content:space-between;min-height:670px}
.castellano-login-story:before{content:'';position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(0deg,transparent 0 62px,#ffffff09 63px 64px),repeating-linear-gradient(90deg,transparent 0 62px,#ffffff08 63px 64px);transform:perspective(700px) rotateX(23deg) scale(1.25);transform-origin:center bottom;opacity:.65}
.castellano-login-story:after{content:'';position:absolute;right:9%;bottom:18%;width:230px;height:360px;border:1px solid #e5af1859;z-index:-1;clip-path:polygon(0 38%,35% 38%,35% 0,73% 0,73% 21%,100% 21%,100% 100%,0 100%);background:repeating-linear-gradient(90deg,transparent 0 42px,#f3bf1b24 43px 44px),repeating-linear-gradient(0deg,transparent 0 45px,#f3bf1b25 46px 47px);opacity:.9}
.castellano-story-logo{width:min(380px,85%);height:auto;object-fit:contain}
.castellano-login-story .story-copy{max-width:650px}
.castellano-login-story .story-eyebrow{font-size:11px;font-weight:800;color:#ffc72a;letter-spacing:.19em}
.castellano-login-story h2{font-size:clamp(32px,4.2vw,65px);max-width:650px;letter-spacing:-.045em;line-height:1.05;margin:16px 0 17px;color:#fff}
.castellano-login-story .story-copy p{max-width:510px;line-height:1.7;color:#d0d2d6;font-size:15px}
.castellano-story-meta{display:flex;flex-wrap:wrap;gap:22px;border-top:1px solid #ffffff26;padding-top:18px;color:#d6d8dd;font-size:11px;font-weight:750;letter-spacing:.05em}
.castellano-story-meta span{display:inline-flex;align-items:center;gap:7px}
.castellano-story-meta span:before{content:'';height:6px;width:6px;background:#f4bb17;border-radius:50%}
.castellano-login-form-area{background:#f9fafb;display:grid;place-items:center;padding:36px clamp(20px,4vw,75px);min-width:0}
.castellano-login-form-area .login{margin:0;width:100%;max-width:440px}
.castellano-login-form-area .login-overline{color:#a47a08;text-align:left;letter-spacing:.18em;margin:0 0 13px;font-weight:850}
.castellano-login-form-area .login-logo{display:none}
.castellano-login-form-area .login .panel{border:0;box-shadow:none;background:transparent;padding:0;margin:0}
.castellano-login-form-area .login .panel-heading{padding:0;border:0;margin:0 0 12px}
.castellano-login-form-area .login .panel-heading h2{font-size:clamp(28px,3vw,39px);color:#23262c;letter-spacing:-.04em;font-weight:850}
.castellano-login-form-area .login .panel-body{padding:0}
.castellano-login-form-area .login .panel-body>p{font-size:14px;line-height:1.6;color:#6f7680;margin:0 0 30px}
.castellano-login-form-area .field label{color:#343b46;font-weight:800}
.castellano-login-form-area .field input{background:#fff;border-radius:10px;min-height:55px;border-color:#dfe2e8}
.castellano-login-form-area .field input:focus{border-color:#ba8e08;box-shadow:0 0 0 3px #ffce2c25}
.castellano-login-form-area .login .form{gap:21px}
.castellano-login-form-area .login .form button{justify-self:stretch;background:#ffbf13;color:#181c21;border:0;min-height:56px;font-weight:850;border-radius:10px}
.castellano-login-form-area .login .form button:hover{background:#ffd04b}
.castellano-login-form-area .login>p.small{font-size:12px;line-height:1.6;text-align:left;margin-top:25px;color:#818892;border-top:1px solid #e1e4e9;padding-top:18px}
.castellano-login-form-brand{display:flex;align-items:center;gap:10px;margin-bottom:37px;color:#373b42;font-weight:800;font-size:14px}
.castellano-login-form-brand .mark{display:inline-grid;place-items:center;background:#26292d;color:#ffc21b;width:32px;height:32px;border-radius:8px;font-weight:900}
@media(max-width:1160px){.castellano-authenticated .module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.castellano-authenticated .hero-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.castellano-authenticated .side{width:100%;height:auto;position:static;padding:11px 13px;display:block}.castellano-authenticated .side .brand-logo{width:180px;min-height:45px}.castellano-authenticated .side .brand-logo img{max-height:42px}.castellano-authenticated .side .brand-note{display:none}.castellano-authenticated .nav-link.on{border-left-color:#ffda6a}.castellano-authenticated .main{padding:0 18px 18px}.castellano-authenticated .top{min-height:75px}}
@media(max-width:760px){.castellano-login-shell{grid-template-columns:1fr}.castellano-login-story{min-height:245px;padding:28px 25px;gap:18px}.castellano-login-story .story-copy h2{font-size:28px;margin:6px 0}.castellano-login-story .story-copy p{display:none}.castellano-story-logo{width:220px}.castellano-story-meta{display:none}.castellano-login-form-area{padding:30px 25px 45px}.castellano-login-form-brand{margin-bottom:22px}.castellano-login-story:after{bottom:-35%;transform:scale(.6)}.castellano-authenticated .module-grid{grid-template-columns:1fr}.castellano-authenticated .hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.castellano-authenticated .welcome-hero{padding:20px}.castellano-authenticated .hero-symbol{display:none}}
@media(max-width:480px){.castellano-authenticated .hero-stats{grid-template-columns:1fr}.castellano-authenticated .main{padding:0 12px 16px}.castellano-authenticated .top-user .user-label{display:none}.castellano-authenticated .top h1{font-size:20px}.castellano-login-story{min-height:208px}.castellano-login-story .story-copy h2{font-size:24px}}
@media print{.castellano-login-story{display:none!important}.castellano-authenticated .side,.castellano-authenticated .top-user{display:none!important}.castellano-authenticated .main{padding:0!important;background:#fff!important}.castellano-authenticated .module-glyph{border:0!important}.castellano-authenticated button{display:none!important}}
@media(prefers-reduced-motion:reduce){.castellano-authenticated *, .castellano-guest *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}


/* ================================================================
   CASTELLANO R2 — SISTEMA VISUAL ÚNICO PARA LOS FORMULARIOS Y MÓDULOS.
   No afecta lógica, mensajes de error, exportaciones ni impresión.
   Se aplican reglas solo en la interfaz autenticada.
   ================================================================ */
:root{
 --navy:#252a30;--navy2:#1c2025;--deep:#14171b;
 --teal:#b48a23;--teal2:#d5a32b;--blue:#7c838d;
 --accent:#d6a72d;--bg:#f5f6f8;--white:#ffffff;
 --text:#2a3038;--muted:#6f7782;--line:#e2e5e9;
 --focus:#bd901c;--shadow:0 6px 22px rgba(22,28,34,.065);
 --surface:#fff;--soft:#f7f8fa;--border:#e1e4e8;
}
.castellano-authenticated .page-content{color:#292f37}
.castellano-authenticated .side .brand-logo{background:transparent!important;border:0;box-shadow:none}
.castellano-authenticated .side .nav-link:not(.on){color:#c9cdd3}
.castellano-authenticated .top{background:#f6f7f9}
.castellano-authenticated .top h1,.castellano-authenticated .panel-heading h2,
.castellano-authenticated .section-caption h2,.castellano-authenticated .module-heading h2{color:#262b31}
.castellano-authenticated .panel,.castellano-authenticated .stat,.castellano-authenticated .module-tile,
.castellano-authenticated .mg-filter,.castellano-authenticated .bank-account-card,
.castellano-authenticated .bank-total-box,.castellano-authenticated .receipt-preview,
.castellano-authenticated .portfolio-note{
 background:#fff;border-color:#e2e6ea;box-shadow:0 5px 20px rgba(25,31,39,.05);
}
.castellano-authenticated .panel-heading{background:#fff;padding:19px 23px}
.castellano-authenticated .panel-body{background:#fff}
.castellano-authenticated .module-heading{background:linear-gradient(115deg,#fff,#f7f5ef)}
.castellano-authenticated .module-glyph,
.castellano-authenticated .module-glyph.blue,
.castellano-authenticated .module-glyph.mint{
 color:#8d6915;background:#fff5d8;border:1px solid #f0dfad;
}
.castellano-authenticated .module-glyph svg,.castellano-authenticated .module-glyph .ico{color:#af851e}
.castellano-authenticated .tag{background:#f8f3e5;color:#756025;border:1px solid #ecdfc2}
.castellano-authenticated .tile-action{border:1px solid #e6e8eb;background:#f7f8f9;color:#424a55}
.castellano-authenticated .tile-action:hover{background:#fff4d6;border-color:#ead390;color:#6f521b}
.castellano-authenticated .action-icon,.castellano-authenticated .hero-stat-icon,
.castellano-authenticated .page-kicker{color:#b28a26}
/* Formularios: mismos controles en caja, bancos, contabilidad, proyectos y DGI. */
.castellano-authenticated .field label,
.castellano-authenticated label:not(.nav-link){color:#3d444e;font-weight:700}
.castellano-authenticated .field input:not([type=checkbox]):not([type=radio]),
.castellano-authenticated .field select,
.castellano-authenticated .field textarea,
.castellano-authenticated .form input:not([type=checkbox]):not([type=radio]),
.castellano-authenticated .form select,
.castellano-authenticated .form textarea,
.castellano-authenticated input.control,
.castellano-authenticated .tablewrap input:not([type=checkbox]):not([type=radio]),
.castellano-authenticated .tablewrap select,
.castellano-authenticated .tablewrap textarea{
 background:#fff;color:#242a32;border:1px solid #ced3da;
 border-radius:9px;box-shadow:0 1px 2px rgba(10,16,25,.025);
 min-height:43px;accent-color:#b98c1c;
}
.castellano-authenticated textarea,.castellano-authenticated .field textarea{min-height:96px;resize:vertical}
.castellano-authenticated input::placeholder,.castellano-authenticated textarea::placeholder{color:#8a929c}
.castellano-authenticated input:focus-visible,.castellano-authenticated select:focus-visible,
.castellano-authenticated textarea:focus-visible{
 border-color:#b48a23!important;outline:2px solid transparent;
 box-shadow:0 0 0 3px rgba(206,166,60,.20)!important;
}
.castellano-authenticated input[type=checkbox],.castellano-authenticated input[type=radio]{accent-color:#b58b24}
.castellano-authenticated .field input:disabled,.castellano-authenticated .field select:disabled,
.castellano-authenticated .field textarea:disabled{background:#f0f1f3;color:#858b95;cursor:not-allowed}
.castellano-authenticated fieldset{border:1px solid #e0e4e8;border-radius:12px}
.castellano-authenticated legend{color:#343b43;font-weight:750}
.castellano-authenticated .form-note,.castellano-authenticated .portfolio-note{
 background:#f9f6ed;color:#5d543d;border:1px solid #eee2c5;
}
/* Acciones: dorado solo para primarias; secundarias discretas; peligros rojos. */
.castellano-authenticated button:not(.secondary):not(.danger):not(.line-remove),
.castellano-authenticated .btn:not(.secondary):not(.danger):not(.line-remove){
 background:#e7b638;color:#22272e;border:1px solid #d5a630;
 border-radius:9px;box-shadow:none;
}
.castellano-authenticated button:not(.secondary):not(.danger):not(.line-remove):hover,
.castellano-authenticated .btn:not(.secondary):not(.danger):not(.line-remove):hover{
 background:#f1c653;border-color:#dfb63d;box-shadow:0 3px 12px rgba(186,137,29,.13)
}
.castellano-authenticated button.secondary,.castellano-authenticated .btn.secondary{
 background:#f5f6f7;color:#373e46;border:1px solid #dce0e5;border-radius:9px;
}
.castellano-authenticated button.secondary:hover,.castellano-authenticated .btn.secondary:hover{
 background:#e9ebef;color:#1f252b
}
.castellano-authenticated button.danger,.castellano-authenticated .btn.danger,
.castellano-authenticated .line-remove{background:#fff1f1!important;color:#a5303a!important;border-color:#ecc4c6!important}
.castellano-authenticated button.danger:hover,.castellano-authenticated .btn.danger:hover,
.castellano-authenticated .line-remove:hover{background:#ffe5e5!important}
/* Tablas de documentos: cabecera uniforme gris carbón, filas neutras. */
.castellano-authenticated .tablewrap{border:1px solid #e1e5e9;border-radius:11px;overflow-x:auto;box-shadow:none}
.castellano-authenticated .tablewrap table{background:#fff}
.castellano-authenticated .tablewrap thead th,
.castellano-authenticated .bank-voucher-table thead th,
.castellano-authenticated .portfolio-checks thead th{
 background:#30363d!important;color:#fff!important;border-color:#454b53!important;
 font-size:12px;letter-spacing:.015em;font-weight:700;
}
.castellano-authenticated .tablewrap tbody tr:nth-child(2n){background:#fafbfc}
.castellano-authenticated .tablewrap tbody tr:hover{background:#fcf8ee}
.castellano-authenticated .tablewrap td{border-color:#edf0f2;color:#353c45}
.castellano-authenticated .tablewrap tr td a:not(.btn){color:#82621a;text-decoration:underline;text-underline-offset:2px}
/* Gerencia y finanzas: mismos colores para todos los gráficos. */
.castellano-authenticated .mg-banner{background:linear-gradient(112deg,#202429,#3a3d41)!important}
.castellano-authenticated .mg-banner .eyebrow{color:#f4cd61}
.castellano-authenticated .mg-banner p:not(.eyebrow){color:#e0e2e4}
.castellano-authenticated .mg-kpi>span,.castellano-authenticated .mg-kpi small{color:#6b727b}
.castellano-authenticated .mg-kpi strong{color:#252b32}
.castellano-authenticated .mg-fill,.castellano-authenticated .mg-fill.amber{background:#d6a72d!important}
.castellano-authenticated .mg-fill.blue{background:#737b85!important}
.castellano-authenticated .mg-kpi>a{color:#8c691c}
.castellano-authenticated .mg-track{background:#e9eaed}
.castellano-authenticated .receipt-preview-net{background:#faf2df;border:1px solid #ead7a4}
.castellano-authenticated .receipt-preview-net strong{color:#795a1d}
.castellano-authenticated .bank-total-box{background:#f7f8f9}
.castellano-authenticated .mg-quicklinks a:hover{background:#fff9ec;border-color:#e5d5ab}
/* Mantener semántica de avisos y estados sin colores decorativos heredados. */
.castellano-authenticated .alert.success{background:#ebf7ef;color:#206342;border-color:#bfdfca}
.castellano-authenticated .alert.error,.castellano-authenticated .alert.danger{background:#fff2f2;color:#9d2f38;border-color:#f0c6c9}
.castellano-authenticated .badge.posted{background:#edf8f0;color:#24633e}
/* No invadir los comprobantes térmicos, formatos impresos ni reglas de impresión. */
@media print {
 .castellano-authenticated .tablewrap{overflow:visible!important;border:0!important;box-shadow:none!important}
 .castellano-authenticated .tablewrap thead th,.castellano-authenticated .bank-voucher-table thead th,
 .castellano-authenticated .portfolio-checks thead th{background:#f2f2f2!important;color:#111!important;border-color:#aaa!important}
 .castellano-authenticated .panel,.castellano-authenticated .panel-body{box-shadow:none!important}
 .castellano-authenticated .mg-banner{background:#fff!important;color:#111!important}
 .castellano-authenticated .mg-banner h2{color:#111!important}
}
@media (max-width:760px){
 .castellano-authenticated .panel-heading,.castellano-authenticated .panel-body{padding:16px}
 .castellano-authenticated .fields{grid-template-columns:1fr}
 .castellano-authenticated .mg-quicklinks{scrollbar-width:thin}
}

/* CASTELLANO R3: construccion como actividad principal. No altera impresiones. */
.castellano-authenticated .nav-section-caption{font-size:9px;font-weight:850;letter-spacing:.145em;color:#929aa5;padding:17px 14px 6px;border-top:1px solid rgba(255,255,255,.075);margin-top:9px;}
.castellano-authenticated .nav-section-caption:first-child{margin-top:0;border-top:0;padding-top:7px;}
.castellano-authenticated .side .nav{gap:1px;}
.castellano-authenticated .side .nav-link{min-height:41px;padding:10px 11px;font-size:12.1px;}
.castellano-authenticated .obra-workbench{margin:18px 0 23px;padding:21px 23px;background:#fff;border:1px solid #e5e8ec;border-radius:16px;box-shadow:0 5px 20px rgba(19,24,32,.035)}
.castellano-authenticated .obra-workbench-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:19px;}
.castellano-authenticated .obra-workbench-heading h2{font-size:21px;color:#252a30;margin:4px 0 4px;letter-spacing:-.025em;}
.castellano-authenticated .obra-workbench-heading p:not(.eyebrow){font-size:12px;color:#747d89;margin:0;}
.castellano-authenticated a.obra-all-link{font-size:12px;font-weight:800;white-space:nowrap;color:#8c6609;}
.castellano-authenticated .obra-workbench-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;}
.castellano-authenticated .obra-workbench-grid>a{display:flex;flex-direction:column;gap:8px;min-width:0;padding:17px 16px;border-radius:11px;text-decoration:none;background:#f8f9fb;border:1px solid #e8eaed;color:#262c32;transition:background .15s,border-color .15s,transform .15s;}
.castellano-authenticated .obra-workbench-grid>a:hover{background:#fff8e6;border-color:#edcb72;transform:translateY(-2px)}
.castellano-authenticated .obra-workbench-grid strong{font-size:13px;font-weight:850;}
.castellano-authenticated .obra-workbench-grid small{font-size:11px;color:#717985;line-height:1.4;}
.castellano-authenticated .obra-step{width:31px;height:31px;display:grid;place-items:center;border-radius:9px;background:#272b30;color:#ffcc40;font-weight:850;font-size:11px;}
@media(max-width:1130px){.castellano-authenticated .obra-workbench-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:660px){.castellano-authenticated .obra-workbench{padding:15px}.castellano-authenticated .obra-workbench-grid{grid-template-columns:1fr}.castellano-authenticated .obra-workbench-heading{display:block}.castellano-authenticated a.obra-all-link{display:inline-block;margin-top:13px;}}
@media print{.castellano-authenticated .obra-workbench{display:none!important}}

/* CASTELLANO R4 | Centro de control gerencial de una constructora.
   Exclusivo de interfaz autenticada; no altera contabilidad ni impresos. */
.castellano-authenticated .g4-executive{margin:20px 0 30px;color:#272e35}
.castellano-authenticated .g4-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 0 15px}
.castellano-authenticated .g4-title-row h2{font-size:23px;letter-spacing:-.6px;margin:3px 0 5px;color:#24292f;font-weight:800}
.castellano-authenticated .g4-title-row p{font-size:13px;color:#6a707a;margin:0}
.castellano-authenticated .g4-title-row .eyebrow{color:#b58a26;font-size:11px;font-weight:850;letter-spacing:1.3px}
.castellano-authenticated .g4-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid #e2e5e9;padding:8px 12px;border-radius:12px}
.castellano-authenticated .g4-controls label{font-size:12px;font-weight:700;white-space:nowrap}
.castellano-authenticated .g4-controls select{min-width:110px;height:35px;border:1px solid #d9dde3;border-radius:7px;padding:0 7px;color:#30353c;background:#fff}
.castellano-authenticated .g4-controls button{padding:8px 12px!important;min-height:35px!important;font-size:12px!important}
.castellano-authenticated .g4-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.castellano-authenticated .g4-sum{background:#fff;border:1px solid #e2e5e9;border-radius:13px;box-shadow:0 4px 15px #10182006;padding:17px 17px 16px;min-width:0;border-top:3px solid #d7a829}
.castellano-authenticated .g4-sum:nth-child(2),.castellano-authenticated .g4-sum:nth-child(3){border-top-color:#545b64}
.castellano-authenticated .g4-sum>span{display:block;font-size:11px;font-weight:750;letter-spacing:.025em;color:#6d737d;margin-bottom:7px}
.castellano-authenticated .g4-sum strong{display:block;color:#272d34;font-size:clamp(16px,1.8vw,24px);line-height:1.2;white-space:normal;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;letter-spacing:-.4px}
.castellano-authenticated .g4-sum small{display:block;color:#818790;font-size:11px;margin-top:7px;line-height:1.4}
.castellano-authenticated .g4-charts{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0}
.castellano-authenticated .g4-panel{background:#fff;border:1px solid #e2e5e9;border-radius:14px;padding:20px;min-width:0;box-shadow:0 5px 18px #10182006}
.castellano-authenticated .g4-panel-head{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:13px;flex-wrap:wrap}
.castellano-authenticated .g4-panel-head h3{font-size:15px;font-weight:800;color:#292f36;margin:0 0 5px}
.castellano-authenticated .g4-panel-head p{font-size:11px;color:#737a84;margin:0;line-height:1.45;max-width:380px}
.castellano-authenticated .g4-panel-head>a{font-size:12px;font-weight:750;color:#947324;text-decoration:none}
.castellano-authenticated .g4-legend{display:flex;gap:7px;align-items:center;color:#626974;font-size:11px;white-space:nowrap}
.castellano-authenticated .g4-key{width:9px;height:9px;display:inline-block;border-radius:3px}
.castellano-authenticated .g4-key.g4-a{background:#ddb037}
.castellano-authenticated .g4-key.g4-b{background:#626c77}
.castellano-authenticated .g4-plot{display:grid;grid-auto-columns:minmax(30px,1fr);grid-auto-flow:column;gap:8px;min-height:203px;align-items:end;border-bottom:1px solid #e6e8ed;padding:9px 5px 0;overflow-x:auto}
.castellano-authenticated .g4-period{display:flex;flex-direction:column;align-items:center;min-width:27px;justify-content:end;gap:8px;height:190px}
.castellano-authenticated .g4-bars{display:flex;align-items:flex-end;justify-content:center;gap:4px;height:158px;width:100%;min-width:22px}
.castellano-authenticated .g4-col{display:block;min-height:0;width:32%;max-width:22px;border-radius:4px 4px 0 0;transition:height .15s ease;cursor:help}
.castellano-authenticated .g4-col.g4-a{background:linear-gradient(#eec755,#d5a020)}
.castellano-authenticated .g4-col.g4-b{background:linear-gradient(#7e8994,#4b5561)}
.castellano-authenticated .g4-month-label{font-size:10px;font-weight:700;color:#737983;line-height:16px}
.castellano-authenticated .g4-sr{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.castellano-authenticated .g4-no-data{background:#f8f8fa;border:1px dashed #dce1e6;border-radius:10px;padding:25px 12px;color:#7b818b;font-size:12px;text-align:center;line-height:1.5}
.castellano-authenticated .g4-bottom{display:grid;grid-template-columns:1.25fr 1fr;gap:14px;margin:14px 0}
.castellano-authenticated .g4-work{border-top:1px solid #edf0f3;padding:13px 0}
.castellano-authenticated .g4-work:first-of-type{border-top:none;padding-top:0}
.castellano-authenticated .g4-work-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:12px;margin-bottom:9px}
.castellano-authenticated .g4-work-head a{font-size:12px;font-weight:800;color:#343a41;text-decoration:none}
.castellano-authenticated .g4-work-head span{font-size:10px;margin-left:9px;color:#91969e}
.castellano-authenticated .g4-work-head small{white-space:nowrap;border-radius:5px;padding:3px 5px;font-size:10px}
.castellano-authenticated .g4-neutral{background:#f8f4e9;color:#967125}
.castellano-authenticated .g4-danger{background:#fff0f1;color:#ab3d49}
.castellano-authenticated .g4-work-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.castellano-authenticated .g4-work-caption{display:flex;justify-content:space-between;gap:5px;color:#818791;font-size:10px;margin-bottom:6px}
.castellano-authenticated .g4-work-caption b{color:#4b525b}
.castellano-authenticated .g4-track{background:#eaedf0;border-radius:30px;height:7px;overflow:hidden}
.castellano-authenticated .g4-fill{height:100%;border-radius:30px;background:#66717d}
.castellano-authenticated .g4-fill.is-gold{background:#deb135}
.castellano-authenticated .g4-fill.is-late{background:#d35b66}
.castellano-authenticated .g4-aging{margin-top:9px}
.castellano-authenticated .g4-aging+.g4-aging{margin-top:22px;padding-top:17px;border-top:1px solid #ebedf0}
.castellano-authenticated .g4-aging h4{font-size:12px;font-weight:800;color:#434a52;margin:0 0 12px}
.castellano-authenticated .g4-aging-row{display:grid;grid-template-columns:78px minmax(50px,1fr) 112px;gap:10px;align-items:center;margin:9px 0}
.castellano-authenticated .g4-aging-row span{font-size:10px;color:#6d747e}
.castellano-authenticated .g4-aging-row strong{font-size:10px;text-align:right;white-space:nowrap;color:#454a53;font-variant-numeric:tabular-nums}
.castellano-authenticated .g4-alerts{margin-top:14px}
.castellano-authenticated .g4-alert-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.castellano-authenticated .g4-alert-list a{display:flex;justify-content:space-between;gap:9px;align-items:center;padding:13px 14px;border:1px solid #e7e9ec;border-radius:9px;color:#454b55;text-decoration:none;font-size:12px}
.castellano-authenticated .g4-alert-list a:hover{border-color:#dec779;background:#fff9eb}
.castellano-authenticated .g4-alert-list a span{display:flex;align-items:center;gap:8px}
.castellano-authenticated .g4-alert-list strong{font-size:12px;white-space:nowrap}
.castellano-authenticated .g4-dot{display:inline-block;flex:none;width:8px;height:8px;border-radius:50%;background:#d2a52d}
.castellano-authenticated .g4-dot.is-red{background:#c8505b}
.castellano-authenticated .g4-disclaimer{font-size:11px;color:#848a92;margin:11px 0;line-height:1.6}
@media(max-width:1120px){.castellano-authenticated .g4-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.castellano-authenticated .g4-charts,.castellano-authenticated .g4-bottom{grid-template-columns:1fr}}
@media(max-width:700px){.castellano-authenticated .g4-title-row{align-items:stretch;flex-direction:column}.castellano-authenticated .g4-summary,.castellano-authenticated .g4-alert-list{grid-template-columns:1fr}.castellano-authenticated .g4-panel{padding:15px}.castellano-authenticated .g4-work-head{flex-wrap:wrap}.castellano-authenticated .g4-aging-row{grid-template-columns:66px minmax(45px,1fr) 95px;gap:6px}.castellano-authenticated .g4-controls{justify-content:space-between}.castellano-authenticated .g4-sum strong{font-size:23px}}
@media print{.castellano-authenticated .g4-controls{display:none!important}.castellano-authenticated .g4-panel,.castellano-authenticated .g4-sum{box-shadow:none!important;border:1px solid #ccc!important}.castellano-authenticated .g4-charts,.castellano-authenticated .g4-bottom{break-inside:avoid}}
@media(prefers-reduced-motion:reduce){.castellano-authenticated .g4-col{transition:none}}
.castellano-authenticated .g4-col.is-negative{background:#ce5962!important}
.castellano-authenticated .g4-chart-note{font-size:10px;line-height:1.4;color:#9c434b;margin:8px 0 0}

/* CASTELLANO R4.1 · EXPERIENCIA MOVIL EMPRESARIAL. CSS de pantalla, no altera impresion. */
:root{--castellano-touch:#edb62b;--castellano-mobile-dark:#191d21}
.castellano-mobile-menu,.castellano-mobile-close,.castellano-mobile-backdrop,.castellano-mobile-bottomnav{display:none}
.castellano-authenticated .g4-col:focus-visible{outline:3px solid #272c33;outline-offset:3px;position:relative;z-index:2}
.castellano-authenticated .castellano-chart-selection{font-size:12px;border-radius:8px;background:#fffae9;padding:9px 12px;color:#51411e;line-height:1.5;margin:12px 0 0}
@media screen and (max-width:900px){
 html{overflow-x:clip}
 body.castellano-authenticated{overflow-x:clip;min-width:0}
 body.castellano-authenticated .shell{display:block;min-width:0}
 body.castellano-authenticated .main{width:100%;max-width:100%;min-width:0;padding:0 16px calc(100px + env(safe-area-inset-bottom,0px));margin:0}
 body.castellano-authenticated .top{position:relative;display:flex;align-items:center;gap:10px;min-height:74px;padding:12px 0;margin-bottom:16px}
 body.castellano-authenticated .top-main{flex:1;min-width:0;gap:10px}
 body.castellano-authenticated .top-main>div{min-width:0}
 body.castellano-authenticated .top h1{font-size:clamp(17px,3.5vw,24px);line-height:1.14;overflow-wrap:anywhere}
 body.castellano-authenticated .top-user{gap:5px}
 body.castellano-authenticated .top-user .user-label{display:none}
 body.castellano-authenticated .logout-btn{min-height:44px!important;padding:8px 9px!important;font-size:12px}
 body.castellano-authenticated .mobile-brand{display:none!important}
 body.castellano-authenticated .castellano-mobile-menu{display:flex;flex:none;align-items:center;justify-content:center;min-width:48px;min-height:48px;border-radius:12px;border:1px solid #e0e2e5;background:#fff!important;color:#252a2e!important;box-shadow:0 2px 9px #141a2210;padding:9px;font-size:23px;line-height:1}
 body.castellano-authenticated .side{display:flex!important;flex-direction:column!important;position:fixed!important;z-index:1200!important;top:0!important;bottom:0!important;left:0!important;right:auto!important;width:min(316px,88vw)!important;height:100dvh!important;max-height:100dvh!important;padding:16px 14px calc(20px + env(safe-area-inset-bottom,0px))!important;overflow-y:auto!important;overscroll-behavior:contain!important;transform:translateX(-104%);visibility:hidden;pointer-events:none;transition:transform .22s ease,visibility .22s;box-shadow:10px 0 40px #0005;border-right:1px solid #30343a}
 body.castellano-authenticated.castellano-mobile-open .side{transform:translateX(0);visibility:visible;pointer-events:auto}
 body.castellano-authenticated .side .brand-logo{display:flex!important;min-height:60px!important;width:100%!important;padding:6px 0}
 body.castellano-authenticated .side .brand-logo img{max-height:66px!important;max-width:230px!important}
 body.castellano-authenticated .side .brand-note{display:block!important;margin:0 0 10px;padding:3px 0 13px;font-size:9px}
 body.castellano-authenticated .side .nav{display:grid!important;grid-auto-flow:row;overflow:visible!important;gap:4px;flex:none;scrollbar-width:initial}
 body.castellano-authenticated .side .nav-section-caption{white-space:normal;margin-top:13px}
 body.castellano-authenticated .side .nav-link{width:100%;min-height:48px;white-space:normal;padding:11px 13px;font-size:13px}
 body.castellano-authenticated .side .sidebar-bottom{display:block!important;margin-top:16px}
 body.castellano-authenticated .castellano-mobile-close{display:flex;position:absolute;top:9px;right:9px;width:42px;height:42px;min-height:42px;padding:0;border:1px solid #ffffff30;border-radius:10px;background:#ffffff10!important;color:#fff!important;font-size:26px;z-index:2}
 body.castellano-authenticated .castellano-mobile-backdrop{display:block;position:fixed;inset:0;z-index:1190;background:rgba(9,12,16,.57)!important;box-shadow:none!important;border:0;border-radius:0;min-height:0;padding:0;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .2s ease,visibility .2s}
 body.castellano-authenticated.castellano-mobile-open .castellano-mobile-backdrop{visibility:visible;opacity:1;pointer-events:auto}
 body.castellano-authenticated.castellano-mobile-open{overflow:hidden;touch-action:pan-y}
 body.castellano-authenticated .castellano-mobile-bottomnav{position:fixed;bottom:0;left:0;right:0;z-index:900;display:grid;grid-template-columns:repeat(var(--castellano-nav-items,4),minmax(0,1fr));align-items:stretch;gap:2px;padding:9px max(10px,env(safe-area-inset-left,0px)) calc(9px + env(safe-area-inset-bottom,0px)) max(10px,env(safe-area-inset-right,0px));background:#1d2126;color:#f7f7f7;box-shadow:0 -8px 28px #13182127;border-top:1px solid #384047}
 body.castellano-authenticated .castellano-mobile-bottomnav a{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:48px;padding:4px 2px;color:#d4d7dc!important;font-size:10px;font-weight:740;text-align:center;border-radius:10px;line-height:1.2;overflow-wrap:anywhere}
 body.castellano-authenticated .castellano-mobile-bottomnav a .ico{width:22px;height:22px}
 body.castellano-authenticated .castellano-mobile-bottomnav a.active{background:#ffcc3830;color:#ffdb78!important}
 body.castellano-authenticated .page-content, body.castellano-authenticated .panel, body.castellano-authenticated .module-heading{min-width:0;max-width:100%}
 body.castellano-authenticated .g4-charts,body.castellano-authenticated .g4-bottom{grid-template-columns:minmax(0,1fr)}
 body.castellano-authenticated .g4-panel{min-width:0}
 body.castellano-authenticated .g4-plot{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;gap:10px}
 body.castellano-authenticated .g4-period{min-width:37px;scroll-snap-align:start}
 body.castellano-authenticated .g4-controls{display:flex;flex-wrap:wrap;align-items:stretch}
 body.castellano-authenticated .g4-controls select,body.castellano-authenticated .g4-controls button{min-height:46px}
 body.castellano-authenticated .g4-legend{white-space:normal;flex-wrap:wrap}
 body.castellano-authenticated .mg-banner{padding:19px!important;gap:10px;flex-wrap:wrap}
 body.castellano-authenticated .module-heading{padding:17px;flex-wrap:wrap}
 body.castellano-authenticated .fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 body.castellano-authenticated .grid,body.castellano-authenticated .action-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
 body.castellano-authenticated .panel-heading{padding:14px 16px;flex-wrap:wrap;gap:8px}
 body.castellano-authenticated .panel-body{padding:15px}
 body.castellano-authenticated .row{min-width:0;row-gap:10px}
 body.castellano-authenticated input:not([type=checkbox]):not([type=radio]),body.castellano-authenticated select,body.castellano-authenticated textarea{font-size:16px!important;max-width:100%}
 body.castellano-authenticated .field input,body.castellano-authenticated .field select,body.castellano-authenticated .field textarea{min-height:48px}
 body.castellano-authenticated input[type=checkbox],body.castellano-authenticated input[type=radio]{min-width:18px;min-height:18px}
 body.castellano-authenticated button,body.castellano-authenticated .btn{min-height:44px}
 body.castellano-authenticated .tablewrap{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
 body.castellano-authenticated .tablewrap table:not(.castellano-mobile-cards){min-width:max-content}
 body.castellano-authenticated .fiscal-lines,body.castellano-authenticated .bank-voucher-scroll,body.castellano-authenticated .portfolio-checks{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
 body.castellano-authenticated .form-summary{flex-wrap:wrap}
 body.castellano-authenticated .hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media screen and (max-width:620px){
 body.castellano-authenticated .main{padding:0 12px calc(91px + env(safe-area-inset-bottom,0px))}
 body.castellano-authenticated .top{gap:6px;min-height:68px}
 body.castellano-authenticated .page-kicker{font-size:9px;letter-spacing:.06em}
 body.castellano-authenticated .top h1{font-size:18px}
 body.castellano-authenticated .top-user .user-avatar{display:none}
 body.castellano-authenticated .logout-btn{font-size:0!important;padding:10px!important;min-width:44px}
 body.castellano-authenticated .logout-btn .ico{width:20px;height:20px}
 body.castellano-authenticated .welcome-hero{padding:18px;min-height:0}
 body.castellano-authenticated .hero-stats{grid-template-columns:1fr}
 body.castellano-authenticated .g4-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 body.castellano-authenticated .g4-sum{padding:12px 11px}
 body.castellano-authenticated .g4-sum strong{font-size:clamp(14px,4vw,20px);overflow-wrap:anywhere}
 body.castellano-authenticated .g4-sum>span{font-size:10px}
 body.castellano-authenticated .g4-sum small{font-size:10px}
 body.castellano-authenticated .g4-plot{gap:9px}
 body.castellano-authenticated .g4-col{min-width:10px}
 body.castellano-authenticated .g4-work-metrics{gap:9px}
 body.castellano-authenticated .g4-alert-list{grid-template-columns:1fr}
 body.castellano-authenticated .fields{grid-template-columns:minmax(0,1fr)}
 body.castellano-authenticated .cash-doc-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.castellano-authenticated .form button[type=submit]{width:100%;min-width:0}
 body.castellano-authenticated .form-summary button{width:100%}
 body.castellano-authenticated .action-card{min-height:65px}
 body.castellano-authenticated .castellano-mobile-cards{display:block!important;min-width:0!important;width:100%!important}
 body.castellano-authenticated .castellano-mobile-cards thead{display:none}
 body.castellano-authenticated .castellano-mobile-cards tbody{display:grid;gap:10px;padding:10px}
 body.castellano-authenticated .castellano-mobile-cards tr{display:block;border:1px solid #e2e5ea;border-radius:11px;padding:8px 10px;background:#fff;box-shadow:0 2px 5px #0000000a}
 body.castellano-authenticated .castellano-mobile-cards td{display:grid;grid-template-columns:minmax(85px,35%) minmax(0,1fr);gap:8px;align-items:start;width:100%;padding:8px 2px!important;white-space:normal;overflow-wrap:anywhere;border-bottom:1px solid #eceef1;text-align:right}
 body.castellano-authenticated .castellano-mobile-cards td:last-child{border-bottom:0}
 body.castellano-authenticated .castellano-mobile-cards td::before{content:attr(data-castellano-label);font-size:11px;text-align:left;font-weight:800;color:#757c84;text-transform:none}
 body.castellano-authenticated .castellano-mobile-cards td:first-child{font-weight:750}
 body.castellano-authenticated .castellano-mobile-cards tfoot{display:block;margin:7px}
 body.castellano-authenticated .castellano-mobile-cards tfoot td{display:block;text-align:left}
 body.castellano-authenticated .g4-controls>*{max-width:100%;min-width:0}
}
@media screen and (max-width:370px){
 body.castellano-authenticated .g4-summary{grid-template-columns:1fr}
 body.castellano-authenticated .castellano-mobile-bottomnav a{font-size:9px}
 body.castellano-authenticated .top h1{font-size:16px}
}
@media print{
 .castellano-mobile-menu,.castellano-mobile-close,.castellano-mobile-backdrop,.castellano-mobile-bottomnav,.castellano-chart-selection{display:none!important}
 .castellano-authenticated .side{transform:none!important;visibility:visible!important}
}
@media (prefers-reduced-motion:reduce){.castellano-mobile-backdrop,.castellano-authenticated .side{transition:none!important}}


/* R4.2 menu añadido como extensión, sin reemplazar funciones originales */
/* CASTELLANO R4.2 · Menu lateral empresarial, alineado con el prototipo R3 aprobado. */
@media screen and (min-width:901px) {
  body.castellano-authenticated .side {
    width:245px!important;flex:0 0 245px!important;
    height:100dvh!important;max-height:100dvh!important;
    overflow:hidden!important;padding:17px 14px 14px!important;
    display:flex!important;flex-direction:column!important;gap:5px!important;
    position:sticky!important;top:0!important;
  }
  body.castellano-authenticated .side .nav {
    flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;
    overflow-x:hidden!important;scrollbar-width:thin;scrollbar-color:#454b52 transparent;
    padding:0 3px 4px 0!important;margin-right:-4px!important;
  }
  body.castellano-authenticated .side .sidebar-bottom {
    flex:0 0 auto!important;margin-top:5px!important;padding-top:7px!important;
    max-height:150px;overflow:auto;scrollbar-width:thin;
  }
}
body.castellano-authenticated .side .brand-logo{
  background:transparent!important;min-height:66px!important;
  padding:2px 7px!important;border:0!important;box-shadow:none!important;
}
body.castellano-authenticated .side .brand-logo img{
  width:100%!important;max-width:208px!important;max-height:66px!important;
  height:auto!important;object-fit:contain!important;
}
body.castellano-authenticated .side .brand-note {
  text-align:center;letter-spacing:.15em!important;color:#adb3bb!important;
  font-size:9px!important;font-weight:800!important;line-height:1.5!important;
  margin:0 0 5px!important;padding:4px 3px 9px!important;
  border-bottom:1px solid rgba(255,255,255,.13);
}
body.castellano-authenticated .side .nav {
  display:block!important;align-content:start!important;
  overscroll-behavior:contain;
}
body.castellano-authenticated .side .castellano-nav-group {margin:0;padding:0 0 4px}
body.castellano-authenticated .side .castellano-nav-links{display:grid;gap:2px}
body.castellano-authenticated .side .nav-section-caption,
body.castellano-authenticated .side .castellano-admin-caption {
  display:block!important;font-size:9px!important;font-weight:850!important;
  letter-spacing:.11em!important;line-height:1.4!important;color:#919ba6!important;
  padding:10px 11px 5px!important;margin:6px 0 3px!important;
  border-top:1px solid rgba(255,255,255,.105)!important;
}
body.castellano-authenticated .side .castellano-nav-group:first-child .nav-section-caption{
  padding-top:5px!important;margin-top:0!important;border-top:0!important;
}
body.castellano-authenticated .side .nav-link{
  min-height:37px!important;padding:8px 11px!important;gap:10px!important;
  margin:0!important;font-size:12px!important;line-height:1.35!important;
  border-radius:9px!important;font-weight:650!important;
  color:#c7cbd1!important;background:transparent!important;
  border-left:2px solid transparent!important;
  box-shadow:none!important;display:flex;align-items:center;
}
body.castellano-authenticated .side .nav-link .ico{width:17px!important;height:17px!important;flex:0 0 17px}
body.castellano-authenticated .side .nav-link:hover,
body.castellano-authenticated .side .nav-link:focus-visible{
  background:rgba(255,255,255,.09)!important;color:#fff!important;
}
body.castellano-authenticated .side .nav-link.on,
body.castellano-authenticated .side .nav-link.active,
body.castellano-authenticated .side .nav-link[aria-current="page"]{
  color:#161a1e!important;background:linear-gradient(105deg,#ffc525,#f4b80c)!important;
  border-left-color:#ffdb70!important;font-weight:830!important;
  box-shadow:0 3px 10px rgba(0,0,0,.16)!important;
}
body.castellano-authenticated .side .sidebar-bottom .nav-link{font-size:11.5px!important;min-height:35px!important}
body.castellano-authenticated .side .castellano-admin-caption{margin-top:0!important;padding-top:4px!important;border:0!important}
body.castellano-authenticated .side .nav a:focus-visible,
body.castellano-authenticated .side .sidebar-bottom a:focus-visible{
  outline:2px solid #ffcf49;outline-offset:2px;
}
@media screen and (max-width:900px){
  body.castellano-authenticated .side{padding:14px 12px calc(20px + env(safe-area-inset-bottom,0px))!important}
  body.castellano-authenticated .side .nav {display:block!important;overflow:visible!important;flex:none!important}
  body.castellano-authenticated .side .nav-section-caption {margin-top:10px!important;padding:13px 11px 7px!important}
  body.castellano-authenticated .side .nav-link {min-height:45px!important;padding:11px 12px!important;font-size:13px!important}
  body.castellano-authenticated .side .brand-logo{min-height:62px!important}
  body.castellano-authenticated .side .brand-logo img{max-width:215px!important}
}
@media print{
  body.castellano-authenticated .side{display:none!important}
}


/* CASTELLANO ERP - Identidad de construccion: azul del membrete y dorado arquitectonico. */
:root{--navy:#103455;--navy2:#092943;--deep:#071d30;--teal:#b58b35;--teal2:#d8ab54;--accent:#d8ab54;--blue:#204f76;--focus:#b88d39}
body.castellano-authenticated .side{background:linear-gradient(155deg,#081e32,#103455 75%,#0f2e4a);border-right:1px solid #1d4565}
body.castellano-authenticated .nav-link.on{background:linear-gradient(120deg,#d6ae65,#efc777);color:#182636;border-left-color:#fff0be}
body.castellano-authenticated .user-avatar{background:#103455;color:#e8bb6d}
body.castellano-authenticated button:not(.secondary):not(.danger),body.castellano-authenticated .btn:not(.secondary):not(.danger){background:#c79b4a;color:#162c41;border-color:#c1984e}
body.castellano-authenticated button:not(.secondary):not(.danger):hover,body.castellano-authenticated .btn:not(.secondary):not(.danger):hover{background:#e3bb72}
body.castellano-authenticated .welcome-hero{background:linear-gradient(110deg,#092943,#164b73 75%,#235778)}
body.castellano-authenticated .welcome-hero .eyebrow{color:#f3c97d}
body.castellano-authenticated .hero-symbol{color:#e4b664}
body.castellano-authenticated .module-glyph{color:#aa7b30;background:#fff5e6;border-color:#ebd2a3}
body.castellano-authenticated .castellano-login-shell{--accent:#e3b76c}
body.castellano-guest:has(.castellano-login-shell){background:#092943}
body.castellano-authenticated .brand-logo img{max-height:73px}
@media (max-width:740px){body.castellano-authenticated .brand-logo img{max-height:60px}}

/* CASTELLANO R48 · PANEL GERENCIAL OBRAS EJECUTADAS · SOLO ESTILOS */

.cast-r48{margin:22px 0 28px;--r48-ink:#132c38;--r48-green:#06765b;--r48-gold:#a16c16}
.cast-r48 *{box-sizing:border-box}
.cast-r48 .r48-head{border-radius:18px;padding:26px 27px;background:linear-gradient(118deg,#122a35,#214451);color:#fff;display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.cast-r48 .r48-eye{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#a1d8d3;font-weight:750;margin:0 0 7px}
.cast-r48 .r48-head h2{font-size:24px;color:#fff;line-height:1.2;margin:0 0 8px}
.cast-r48 .r48-head p{color:#d4e6e8;font-size:13px;margin:0;max-width:780px}
.cast-r48 .r48-head a{background:#fff;color:#1c4550;border-radius:9px;padding:10px 12px;text-decoration:none;white-space:nowrap;font-weight:750;font-size:12px}
.cast-r48 .r48-numbers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:15px 0}
.cast-r48 .r48-num{padding:17px 15px;border:1px solid #e0e9e9;background:#fff;border-radius:13px;min-width:0}
.cast-r48 .r48-num small{font-size:11px;display:block;line-height:1.3;color:#5a747b;margin-bottom:7px}
.cast-r48 .r48-num strong{font-size:clamp(16px,1.6vw,23px);letter-spacing:-.04em;color:#173941;white-space:nowrap;display:block}
.cast-r48 .r48-num.r48-teal strong{color:#08745e}
.cast-r48 .r48-num.r48-amber strong{color:#986613}
.cast-r48 .r48-num em{display:block;font-size:10px;margin-top:5px;color:#60767c;font-style:normal}
.cast-r48 .r48-subtitle{font-size:17px;font-weight:790;color:var(--r48-ink);margin:23px 0 10px}
.cast-r48 .r48-obras{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.cast-r48 .r48-obra{padding:19px;border-radius:14px;background:white;border:1px solid #dce6e7;min-width:0}
.cast-r48 .r48-tag{display:inline-block;background:#e4f4ed;color:#136b4c;font-size:10px;font-weight:800;padding:5px 9px;border-radius:18px;margin-bottom:10px}
.cast-r48 .r48-obra h3{font-size:17px;line-height:1.25;color:#163440;margin:0 0 4px;min-height:43px}
.cast-r48 .r48-code{font-size:11px;color:#67818a;margin:0 0 14px}
.cast-r48 .r48-lines{border-top:1px solid #edf1f1;border-bottom:1px solid #edf1f1;padding:9px 0;margin:10px 0}
.cast-r48 .r48-line{display:flex;justify-content:space-between;gap:10px;padding:5px 0;font-size:12px;color:#596f75}
.cast-r48 .r48-line strong{color:#183c44;white-space:nowrap;font-size:12px}
.cast-r48 .r48-line.r48-balance strong{color:#13735d}
.cast-r48 .r48-track{background:#e6eeee;height:9px;border-radius:10px;overflow:hidden;margin-top:8px}
.cast-r48 progress.r48-track{width:100%;height:9px;border:0;appearance:none;background:#e6eeee}.cast-r48 progress.r48-track::-webkit-progress-bar{background:#e6eeee;border-radius:10px}.cast-r48 progress.r48-track::-webkit-progress-value{background:#168776;border-radius:10px}.cast-r48 progress.r48-track::-moz-progress-bar{background:#168776;border-radius:10px}
.cast-r48 .r48-mini{font-size:11px;margin:7px 0 12px;color:#648087}
.cast-r48 .r48-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}
.cast-r48 .r48-actions a{font-size:11px;color:#0b6b5d;font-weight:750;text-decoration:none;border:1px solid #bdded4;padding:7px 9px;border-radius:8px}
.cast-r48 .r48-sheet{background:#fff;border:1px solid #e0e9e9;border-radius:13px;padding:18px;margin-top:14px}
.cast-r48 .r48-sheet h3{font-size:16px;margin:0 0 6px;color:#173740}
.cast-r48 .r48-note{background:#f1f5f6;color:#45636c;border-left:3px solid #8eaab1;padding:12px 15px;border-radius:5px;font-size:12px;line-height:1.65;margin:13px 0 0}
.cast-r48 .r48-twrap{overflow-x:auto}
.cast-r48 table{width:100%;border-collapse:collapse;min-width:610px}
.cast-r48 th{font-size:11px;background:#f4f7f7;color:#4d6a72;text-align:left;padding:10px 9px}
.cast-r48 td{padding:10px 9px;font-size:12px;color:#2d4b53;border-bottom:1px solid #edf1f0;vertical-align:top}
.cast-r48 td:not(:first-child),.cast-r48 th:not(:first-child){text-align:right}
.cast-r48 td a{color:#087969;font-weight:750;text-decoration:none}
.cast-r48 .r48-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cast-r48 .r48-catline{display:grid;grid-template-columns:minmax(145px,1fr) 2fr 100px;gap:9px;align-items:center;padding:7px 0;border-bottom:1px solid #edf1ef}
.cast-r48 .r48-catline span,.cast-r48 .r48-catline strong{font-size:11px;color:#35555a}
.cast-r48 .r48-catline strong{text-align:right}
.cast-r48 .r48-catbar{background:#eaf0f0;border-radius:8px;height:7px;overflow:hidden}
.cast-r48 progress.r48-catbar{width:100%;height:7px;appearance:none;border:0;background:#eaf0f0}.cast-r48 progress.r48-catbar::-webkit-progress-bar{background:#eaf0f0;border-radius:8px}.cast-r48 progress.r48-catbar::-webkit-progress-value{background:#17a18a;border-radius:8px}.cast-r48 progress.r48-catbar::-moz-progress-bar{background:#17a18a;border-radius:8px}
.cast-r48 .r48-info{font-size:12px;color:#547179;margin:8px 0}
@media(max-width:1080px){.cast-r48 .r48-obras{grid-template-columns:repeat(2,minmax(0,1fr))}.cast-r48 .r48-numbers{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.cast-r48 .r48-obras,.cast-r48 .r48-two{grid-template-columns:1fr}.cast-r48 .r48-head{display:block;padding:19px}.cast-r48 .r48-head a{display:inline-block;margin-top:12px}.cast-r48 .r48-catline{grid-template-columns:minmax(110px,1fr) 1fr 80px}.cast-r48 .r48-obra h3{min-height:0}}
@media print{.cast-r48 .r48-head,.cast-r48 .r48-obra{-webkit-print-color-adjust:exact;print-color-adjust:exact}.cast-r48 .r48-actions{display:none}}

/* CASTELLANO-R49-EXECUTIVO-ESTILOS-UNICO */
/* Estilos encapsulados: no afectan los demás módulos ni las demás empresas. */
.cg49{--cg49-ink:#142a3a;--cg49-sub:#60748a;--cg49-border:#e3eaf0;--cg49-navy:#102a3d;--cg49-gold:#e6a92e;--cg49-blue:#2d647e;--cg49-green:#0b816d;--cg49-paper:#fff;display:block;width:100%;font-family:inherit;margin:24px 0 36px;color:var(--cg49-ink);letter-spacing:normal;line-height:1.45;isolation:isolate}
.cg49,.cg49 *{box-sizing:border-box}
.cg49 h2,.cg49 h3,.cg49 p{letter-spacing:normal;margin-top:0}
.cg49 a{text-decoration:none}
.cg49 .cg49-hero{position:relative;overflow:hidden;display:block;width:100%;border-radius:20px;background:linear-gradient(115deg,#0e2537 0%,#173e4c 58%,#1d4f58 100%);color:white;padding:26px 30px 20px;box-shadow:0 16px 30px rgba(16,40,55,.13)}
.cg49 .cg49-hero:before{content:"";position:absolute;right:-65px;top:-136px;width:390px;height:390px;border-radius:50%;border:74px solid rgba(255,255,255,.045);pointer-events:none}
.cg49 .cg49-hero:after{content:"";position:absolute;right:240px;bottom:-245px;width:370px;height:370px;background:radial-gradient(circle,rgba(45,145,155,.24),transparent 70%);pointer-events:none}
.cg49 .cg49-hero-top{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
.cg49 .cg49-hero-heading{flex:1;min-width:0}
.cg49 .cg49-eyebrow{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:10px;font-weight:800;letter-spacing:1.75px;text-transform:uppercase;color:#aacbd5}
.cg49 .cg49-eyebrow span{display:block;width:18px;height:3px;border-radius:4px;background:var(--cg49-gold)}
.cg49 .cg49-hero h2{color:#fff;font-weight:850;font-size:clamp(23px,2.5vw,34px);line-height:1.12;margin:0 0 11px;letter-spacing:-.7px}
.cg49 .cg49-hero h2 span{color:var(--cg49-gold)}
.cg49 .cg49-hero-heading>p:not(.cg49-eyebrow){color:#d0dee6;max-width:690px;margin:0;font-size:12.5px;line-height:1.65}
.cg49 a.cg49-hero-action{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:10px;flex-shrink:0;background:#f4f8fa;color:#183a4b;border-radius:9px;padding:10px 14px;font-size:11px;font-weight:800;box-shadow:0 5px 14px #081e2933;white-space:nowrap}
.cg49 .cg49-hero-action span{font-size:15px}
.cg49 .cg49-hero-bottom{position:relative;z-index:1;display:flex;align-items:center;flex-wrap:wrap;gap:15px;margin-top:25px;border-top:1px solid #ffffff2b;padding:15px 0 4px;color:#c3d5dc;font-size:11px}
.cg49 .cg49-hero-bottom>span{border-right:1px solid #ffffff27;padding-right:16px}
.cg49 .cg49-hero-bottom>span:last-child{border:0}
.cg49 .cg49-hero-bottom b{color:#fff;font-size:13px;font-weight:800;margin-right:5px}
.cg49 .cg49-hero-progress{position:relative;z-index:1;height:3px;background:#ffffff23;border-radius:9px;margin-top:10px;overflow:hidden}
.cg49 .cg49-hero-progress>span{display:block;height:100%;background:var(--cg49-gold);border-radius:9px}
.cg49 .cg49-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px;margin-bottom:25px}
.cg49 .cg49-kpi{display:block;min-width:0;background:var(--cg49-paper);border:1px solid var(--cg49-border);border-radius:14px;padding:19px 18px;min-height:119px;box-shadow:0 2px 9px rgba(20,50,65,.035)}
.cg49 .cg49-kpi-label{color:#60748a;font-size:11px;font-weight:700;margin-bottom:10px}
.cg49 .cg49-kpi-value{font-size:clamp(17px,1.75vw,25px);font-weight:850;letter-spacing:-.7px;line-height:1.2;color:#142d3c;white-space:normal;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.cg49 .cg49-kpi-note{margin-top:8px;font-size:10.5px;color:#73859a}
.cg49 .cg49-kpi-dark{border-left:3px solid #19445d}
.cg49 .cg49-kpi-highlight{border-left:3px solid var(--cg49-gold);background:#fffdf7}
.cg49 .cg49-kpi-highlight .cg49-kpi-value{color:#946211}
.cg49 .cg49-section-heading{display:flex;justify-content:space-between;align-items:end;gap:15px;margin:8px 0 14px}
.cg49 .cg49-section-kicker{color:#977123;font-size:10px;letter-spacing:1.5px;font-weight:850;margin:0 0 5px}
.cg49 .cg49-section-heading h3{font-size:20px;line-height:1.25;font-weight:850;margin:0;color:var(--cg49-ink)}
.cg49 .cg49-section-heading>span{background:#e7eef2;color:#3e5c69;padding:6px 11px;font-size:10px;font-weight:750;border-radius:30px;white-space:nowrap}
.cg49 .cg49-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.cg49 .cg49-project{position:relative;display:flex;flex-direction:column;min-width:0;overflow:hidden;background:var(--cg49-paper);border:1px solid var(--cg49-border);border-radius:16px;padding:20px 19px 17px;box-shadow:0 6px 18px rgba(18,49,65,.035)}
.cg49 .cg49-project:before{content:"";position:absolute;height:4px;left:0;top:0;right:0;background:#123b4c}
.cg49 .cg49-project-2:before{background:#d9a02e}
.cg49 .cg49-project-3:before{background:#0b907e}
.cg49 .cg49-project-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}
.cg49 .cg49-project-icon{height:32px;width:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;background:#edf3f5;color:#1b4b58;font-size:13px;font-weight:850}
.cg49 .cg49-status{font-size:10px;font-weight:800;color:#167158;background:#e7f6ee;border-radius:25px;padding:6px 9px;white-space:nowrap}
.cg49 .cg49-status i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#1b9b76;margin-right:6px;vertical-align:1px}
.cg49 .cg49-project-ref{font-size:10px;color:#768c9b;font-weight:700;margin:0 0 6px;line-height:1.35}
.cg49 .cg49-project h3{font-size:18px;line-height:1.2;font-weight:850;min-height:43px;letter-spacing:-.25px;color:#183242;margin:0 0 18px}
.cg49 .cg49-primary-metric{border-radius:12px;background:#f3f7f9;padding:12px 14px;margin:0 0 15px}
.cg49 .cg49-primary-metric>span{display:block;color:#647b8c;font-size:10px;margin-bottom:4px;font-weight:650}
.cg49 .cg49-primary-metric>strong{display:block;color:#173f50;font-size:clamp(18px,1.85vw,24px);font-weight:850;line-height:1.16;letter-spacing:-.4px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.cg49 .cg49-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.cg49 .cg49-pair span{display:block;color:#80909d;font-size:10px;margin-bottom:5px;line-height:1.4}
.cg49 .cg49-pair b{display:block;font-size:12px;line-height:1.3;color:#183a4a;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.cg49 .cg49-pair b.cg49-negative{color:#b34a48}
.cg49 .cg49-progress-label{display:flex;align-items:center;justify-content:space-between;gap:6px;color:#607789;font-size:10px;margin:1px 0 7px}
.cg49 .cg49-progress-label strong{color:#1e5869;font-size:11px}
.cg49 .cg49-progress{width:100%;height:8px;border-radius:20px;background:#e7eef1;overflow:hidden}
.cg49 .cg49-progress>span{height:100%;display:block;background:linear-gradient(90deg,#1c667a,#138c8a);border-radius:20px}
.cg49 .cg49-project-foot{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:10px;color:#708495;margin:9px 0 12px}
.cg49 .cg49-project-actions{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:auto;border-top:1px solid #edf1f3;padding-top:14px}
.cg49 a.cg49-btn{display:inline-flex;align-items:center;gap:8px;justify-content:center;background:#153f52;color:white;border-radius:9px;font-size:10.5px;font-weight:800;padding:10px 12px;white-space:nowrap}
.cg49 .cg49-btn span{font-size:13px}
.cg49 a.cg49-link{color:#1d6d7e;font-size:10px;font-weight:800;white-space:nowrap}
.cg49 .cg49-panels{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:14px;margin-top:18px}
.cg49 .cg49-panel{display:block;min-width:0;background:#fff;border:1px solid var(--cg49-border);border-radius:15px;padding:19px 20px}
.cg49 .cg49-panel-heading{display:flex;align-items:flex-start;gap:12px;margin-bottom:15px}
.cg49 .cg49-square-icon{width:32px;height:32px;border-radius:9px;background:#edf3f6;display:inline-flex;justify-content:center;align-items:center;flex-shrink:0;color:#295469;font-size:17px;font-weight:900}
.cg49 .cg49-panel-heading h3{font-size:15px;color:#173242;font-weight:850;line-height:1.3;margin:0 0 4px}
.cg49 .cg49-panel-heading p{font-size:10.5px;color:#798b97;margin:0;line-height:1.5}
.cg49 .cg49-legend{display:flex;gap:13px;justify-content:flex-end;font-size:10px;color:#637784;margin:-4px 0 15px}
.cg49 .cg49-legend span{display:inline-flex;align-items:center;gap:5px}
.cg49 .cg49-legend i{display:inline-block;height:8px;width:8px;border-radius:3px}
.cg49 .cg49-dot-budget{background:#b5cbd4}.cg49 .cg49-dot-spent{background:#18768a}
.cg49 .cg49-compare-item{border-bottom:1px solid #eef2f4;padding-bottom:16px;margin-bottom:16px}
.cg49 .cg49-compare-item:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.cg49 .cg49-compare-head{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:9px}
.cg49 .cg49-compare-head a{color:#244354;font-size:11px;font-weight:850}
.cg49 .cg49-compare-head>span{font-size:10px;font-weight:750;color:#648090}
.cg49 .cg49-compare-bars{display:grid;gap:8px}
.cg49 .cg49-compare-row{display:grid;grid-template-columns:75px minmax(0,1fr) 100px;gap:8px;align-items:center}
.cg49 .cg49-compare-row>span{font-size:10px;color:#7d8c9b}
.cg49 .cg49-compare-row>div{height:9px;background:#edf2f4;border-radius:18px;overflow:hidden}
.cg49 .cg49-compare-row i{display:block;height:100%;border-radius:18px}
.cg49 .cg49-budget-fill{background:#bacdd5}.cg49 .cg49-spent-fill{background:linear-gradient(90deg,#277b8d,#0d8a81)}
.cg49 .cg49-compare-row strong{text-align:right;font-size:10px;letter-spacing:-.1px;color:#334e5f;font-weight:800;font-variant-numeric:tabular-nums}
.cg49 .cg49-rank-list{display:grid;gap:12px}
.cg49 .cg49-rank-line{min-width:0}
.cg49 .cg49-rank-label{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:5px;font-size:10.5px;color:#607989}
.cg49 .cg49-rank-label span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%}
.cg49 .cg49-rank-label b{color:#254d5a;font-size:10px;font-weight:800;font-variant-numeric:tabular-nums}
.cg49 .cg49-rank-track{height:6px;background:#ebf1f3;border-radius:14px;overflow:hidden}
.cg49 .cg49-rank-track span{height:100%;border-radius:14px;background:#1f8294;display:block}
.cg49 .cg49-material-panel .cg49-rank-track span{background:#dfa83d}
.cg49 .cg49-full{grid-column:1/-1}
.cg49 .cg49-scroll{width:100%;overflow-x:auto}
.cg49 .cg49-table{width:100%;min-width:750px;border-collapse:collapse;font-variant-numeric:tabular-nums;table-layout:auto}
.cg49 .cg49-table th{text-align:left;background:#f1f5f7;color:#617788;font-size:10px;font-weight:800;padding:12px 10px;border-bottom:1px solid #e3ebef}
.cg49 .cg49-table th:not(:first-child),.cg49 .cg49-table td:not(:first-child){text-align:right}
.cg49 .cg49-table td{padding:14px 10px;font-size:11px;color:#334f60;border-bottom:1px solid #edf1f3;vertical-align:middle}
.cg49 .cg49-table td a{color:#155773;font-weight:800}
.cg49 .cg49-table td small{color:#8a9ba4;display:block;font-size:9px;margin-top:3px}
.cg49 .cg49-table td.cg49-positive{color:#157a68;font-weight:800}
.cg49 .cg49-table td.cg49-negative{color:#bb5348;font-weight:800}
.cg49 .cg49-row-status{font-size:9px;background:#e6f5ee;color:#15815f;border-radius:12px;padding:5px 7px;font-weight:800}
.cg49 .cg49-table tr.cg49-total{background:#edf4f5}
.cg49 .cg49-table .cg49-total td{font-weight:900;color:#1d3d4c;border-bottom:0}
.cg49 .cg49-footnote{margin:15px 0 0;padding:11px 15px;color:#607a87;background:#f1f5f7;border-radius:10px;border-left:3px solid #b7c8cf;font-size:10.5px;line-height:1.7}
.cg49 .cg49-footnote b{color:#294c5b}
.cg49 .cg49-empty{font-size:11px;color:#80919d}
.cg49 .cg49-unavailable{padding:17px;background:#fff7e8;border:1px solid #e9d4a9;border-radius:10px;color:#855621;font-size:12px}
@media (max-width:1240px){.cg49 .cg49-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.cg49 .cg49-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cg49 .cg49-panels{grid-template-columns:1fr 1fr}}
@media (max-width:800px){.cg49 .cg49-project-grid,.cg49 .cg49-panels{grid-template-columns:1fr}.cg49 .cg49-hero-top{display:block}.cg49 a.cg49-hero-action{display:inline-flex;margin-top:15px}.cg49 .cg49-hero{padding:21px 20px 17px}.cg49 .cg49-project h3{min-height:0}}
@media (max-width:560px){.cg49 .cg49-hero-bottom{gap:8px}.cg49 .cg49-hero-bottom>span{border:0;display:block;width:100%}.cg49 .cg49-kpis{grid-template-columns:1fr 1fr;gap:8px}.cg49 .cg49-kpi{padding:13px 11px;min-height:105px}.cg49 .cg49-kpi-value{font-size:16px}.cg49 .cg49-section-heading h3{font-size:17px}.cg49 .cg49-compare-row{grid-template-columns:66px 1fr 83px;gap:5px}.cg49 .cg49-panel{padding:15px}.cg49 .cg49-project{padding:16px}}
@media print{.cg49 .cg49-hero,.cg49 .cg49-project{-webkit-print-color-adjust:exact;print-color-adjust:exact}.cg49 .cg49-project-actions,.cg49 .cg49-hero-action{display:none!important}}
/* Precedencia sobre enlaces de la skin antigua (puede usar !important). */
.cg49 a.cg49-btn{color:#fff!important}
.cg49 a.cg49-hero-action{color:#173d50!important}
.cg49 a.cg49-link{color:#17687a!important}
.cg49 .cg49-compare-head a,.cg49 .cg49-table a{color:#17566f!important}
