:root{--navy:#0a2747;--navy-2:#123d68;--blue:#1769aa;--blue-soft:#eaf3fb;--red:#c93d48;--bg:#f3f6fa;--card:#fff;--line:#dfe7ef;--text:#172536;--muted:#6f8092;--green:#15845d;--amber:#b56c11;--shadow:0 10px 30px rgba(16,42,70,.08);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg)}button,input,select{font:inherit}.hidden{display:none!important}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}.sidebar{background:linear-gradient(180deg,var(--navy),#071d35);color:#dce8f4;min-height:100vh;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;z-index:20}.brandbox{padding:22px 20px 18px;border-bottom:1px solid rgba(255,255,255,.1)}.brandmark{width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,#2c75b7,#d23f4a);display:grid;place-items:center;color:#fff;font-weight:900;letter-spacing:.5px;box-shadow:0 10px 24px rgba(0,0,0,.22)}.brandtitle{margin-top:13px;font-size:17px;font-weight:800;color:#fff}.brandsub{font-size:11px;color:#98b3cd;margin-top:3px;letter-spacing:.08em;text-transform:uppercase}.navgroup{padding:15px 10px;overflow:auto}.navlabel{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#7898b7;padding:10px 12px 7px}.navitem{width:100%;display:flex;align-items:center;gap:12px;padding:11px 12px;border:0;border-radius:10px;color:#cfe0ef;background:transparent;cursor:pointer;text-align:left;margin-bottom:3px}.navitem:hover{background:rgba(255,255,255,.08);color:#fff}.navitem.active{background:#fff;color:var(--navy);font-weight:800;box-shadow:0 6px 18px rgba(0,0,0,.13)}.navicon{width:24px;height:24px;border-radius:7px;background:rgba(255,255,255,.09);display:grid;place-items:center;font-size:12px}.navitem.active .navicon{background:var(--blue-soft);color:var(--blue)}.sidefoot{margin-top:auto;padding:14px 16px;border-top:1px solid rgba(255,255,255,.1);font-size:11px;color:#7898b7}.workspace{min-width:0}.topbar{height:68px;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:15}.top-left{display:flex;align-items:center;gap:12px}.menu-toggle{display:none;border:0;background:#eef3f8;width:38px;height:38px;border-radius:10px;cursor:pointer}.crumb{font-size:12px;color:var(--muted)}.page-name{font-weight:800;color:var(--navy);font-size:16px}.top-actions{display:flex;align-items:center;gap:10px}.userchip{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--line);border-radius:12px;background:#fff}.avatar{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--blue),var(--red));display:grid;place-items:center;color:white;font-weight:800}.username{font-size:12px;font-weight:800}.userrole{font-size:10px;color:var(--muted)}.content{padding:24px;max-width:1600px;margin:0 auto}.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:18px}.hero h1{font-size:27px;margin:0;color:var(--navy);letter-spacing:-.02em}.hero p{margin:5px 0 0;color:var(--muted);font-size:13px}.actions{display:flex;gap:8px;flex-wrap:wrap}.btn{border:0;border-radius:10px;padding:10px 14px;font-weight:800;cursor:pointer;transition:.15s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--blue);color:white}.btn.secondary{background:#eaf1f7;color:#244461}.btn.danger{background:#feecee;color:#a72c36}.btn.small{padding:7px 10px;font-size:12px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.metric{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:17px;box-shadow:var(--shadow);position:relative;overflow:hidden}.metric:after{content:"";position:absolute;right:-25px;top:-25px;width:88px;height:88px;border-radius:50%;background:var(--blue-soft)}.metric-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}.metric-value{font-size:29px;color:var(--navy);font-weight:900;margin-top:8px}.metric-foot{font-size:11px;color:var(--muted);margin-top:5px}.dashboard-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px}.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.panel-head{padding:16px 18px;border-bottom:1px solid #e8edf3;display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-head h2{margin:0;font-size:16px;color:var(--navy)}.panel-sub{font-size:11px;color:var(--muted);margin-top:3px}.panel-body{padding:16px 18px}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.quick{border:1px solid var(--line);border-radius:12px;padding:13px;background:#fbfcfe;cursor:pointer}.quick:hover{border-color:#a9c9e5;background:#f5faff}.quick strong{display:block;color:var(--navy);font-size:13px}.quick span{font-size:11px;color:var(--muted)}.yearbars{display:grid;gap:12px}.yearrow{display:grid;grid-template-columns:55px 1fr 34px;align-items:center;gap:10px;font-size:12px}.track{height:9px;border-radius:999px;background:#e8eef4;overflow:hidden}.fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),#54a1dd)}.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.field,.select{border:1px solid #cfdbe7;border-radius:10px;padding:10px 12px;background:#fff;color:var(--text);outline:none}.field:focus,.select:focus{border-color:#6da9d6;box-shadow:0 0 0 3px rgba(23,105,170,.1)}.search{min-width:280px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:840px}.table th,.table td{padding:13px 15px;border-bottom:1px solid #edf1f5;text-align:left;font-size:12px}.table th{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#6c7c8f;background:#f8fafc;position:sticky;top:0}.table tbody tr:hover{background:#f7fbff}.table strong{color:#173754}.tag{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:800;background:#e8f2fb;color:#155f9e}.tag.red{background:#feecee;color:#a92c37}.tag.green{background:#e9f8f2;color:#0b7a54}.tag.amber{background:#fff3df;color:#9a5a06}.tag.gray{background:#eef2f5;color:#5e6d7c}.link{border:0;background:transparent;color:var(--blue);font-weight:800;cursor:pointer}.empty,.loading,.error{padding:40px;text-align:center;color:var(--muted)}.error{color:#ad2e38}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.login-visual{background:radial-gradient(circle at 20% 20%,#174c7b 0,#0b2d50 37%,#061a30 100%);color:#fff;padding:70px;display:flex;justify-content:center;flex-direction:column;position:relative;overflow:hidden}.login-visual:before,.login-visual:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.08)}.login-visual:before{width:420px;height:420px;right:-120px;top:-130px}.login-visual:after{width:540px;height:540px;left:-280px;bottom:-300px}.login-visual h1{font-size:44px;line-height:1.05;margin:20px 0 12px}.login-visual p{color:#bad0e4;max-width:590px;line-height:1.55}.login-meta{display:flex;gap:18px;margin-top:28px;font-size:11px;color:#9fb8cf}.login-form-wrap{display:grid;place-items:center;padding:28px;background:#f5f7fa}.login-card{width:min(440px,100%);background:white;border:1px solid var(--line);border-radius:20px;padding:34px;box-shadow:0 24px 70px rgba(12,39,67,.14)}.login-card h2{margin:0;color:var(--navy)}.login-card p{color:var(--muted);font-size:13px}.login-card label{display:block;font-size:11px;font-weight:800;margin:15px 0 6px}.login-card .field{width:100%}.login-card .btn{width:100%;margin-top:18px}.drawer-bg{position:fixed;inset:0;background:rgba(5,18,32,.62);display:flex;justify-content:flex-end;z-index:50}.drawer{height:100%;width:min(1040px,98vw);background:var(--bg);overflow:auto;box-shadow:-16px 0 60px rgba(0,0,0,.18)}.drawer-head{position:sticky;top:0;background:#fff;padding:18px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start;z-index:3}.drawer-title h2{margin:0;font-size:20px;color:var(--navy)}.drawer-title p{margin:4px 0 0;font-size:11px;color:var(--muted)}.drawer-body{padding:18px}.tabs{display:flex;gap:6px;overflow:auto;margin-bottom:14px;background:#e9eff5;padding:5px;border-radius:11px}.tabs button{border:0;background:transparent;padding:9px 12px;border-radius:8px;cursor:pointer;white-space:nowrap;font-size:12px;font-weight:800;color:#52677b}.tabs button.active{background:#fff;color:var(--blue);box-shadow:0 2px 8px rgba(20,50,80,.1)}.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.info{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px}.info small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;font-weight:800;letter-spacing:.06em}.info strong{display:block;margin-top:5px;font-size:13px}.list{display:grid;gap:8px}.rowcard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;justify-content:space-between;align-items:center;gap:14px}.rowcard .muted{font-size:11px;color:var(--muted);margin-top:4px}.section h3{font-size:14px;color:var(--navy)}.raw{white-space:pre-wrap;padding:14px;font-size:11px;max-height:65vh;overflow:auto}.notice{padding:12px 14px;border-radius:11px;background:#fff8e7;color:#7c5600;font-size:12px;border:1px solid #f3ddb1}.toast{position:fixed;right:22px;bottom:22px;background:#102c49;color:#fff;padding:12px 15px;border-radius:11px;z-index:100;box-shadow:var(--shadow);font-size:12px}.mobile-overlay{display:none}.skeleton{height:14px;background:linear-gradient(90deg,#eef2f6,#f8fafc,#eef2f6);background-size:200% 100%;animation:pulse 1.2s infinite;border-radius:7px}@keyframes pulse{0%{background-position:200% 0}100%{background-position:-200% 0}}@media(max-width:1100px){.cards{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.info-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:820px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-280px;width:260px;transition:.2s}.sidebar.open{left:0}.menu-toggle{display:block}.mobile-overlay.show{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:19}.content{padding:16px}.topbar{padding:0 14px}.userchip .usertext{display:none}.hero{align-items:flex-start;flex-direction:column}.search{min-width:0;width:100%}.toolbar{width:100%}}@media(max-width:560px){.cards{grid-template-columns:1fr}.quick-grid{grid-template-columns:1fr}.info-grid{grid-template-columns:1fr}.login{grid-template-columns:1fr}.login-visual{display:none}.login-form-wrap{min-height:100vh}.panel-head{align-items:flex-start;flex-direction:column}.actions{width:100%}.actions .btn{flex:1}.content{padding:12px}.metric-value{font-size:25px}}

/* V3.1 - creación controlada de contratos */
.compact-drawer{max-width:680px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.form-field{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700;color:#243c59}
.form-field.full{grid-column:1/-1}
.form-field .field,.form-field .select{width:100%}
.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid #e4ebf3}
.form-error{margin-top:14px;padding:11px 13px;border-radius:10px;background:#fff0f0;color:#b42318;font-weight:700}
@media(max-width:640px){.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}.form-actions{flex-direction:column-reverse}.form-actions .btn{width:100%}}

/* V3.2 - edición de contratos */
.summary-actions{display:flex;justify-content:flex-end;margin-bottom:12px}
.success-note{background:#eefaf5;border-color:#bfe8d5;color:#176747}
.edit-drawer{width:min(720px,98vw)}
.modal-layer{z-index:70}
@media(max-width:640px){.summary-actions .btn{width:100%}}

/* V3.3 - gestión transaccional de partidas */
.section-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.section-toolbar h3{margin:0 0 4px}
.partidas-drawer{width:min(1450px,99vw)}
.partidas-top{display:flex;align-items:center;justify-content:space-between;gap:18px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px 16px;margin-bottom:14px}
.partidas-table{min-width:1120px;overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#fff}
.partidas-head,.partida-edit-row{display:grid;grid-template-columns:58px 130px minmax(260px,1fr) 90px 120px 145px 135px 42px;gap:8px;align-items:center;padding:9px 10px}
.partidas-head{background:#f3f7fa;border-bottom:1px solid var(--line);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800}
.partida-edit-row{border-bottom:1px solid #edf1f5}
.partida-edit-row:last-child{border-bottom:0}
.partida-edit-row .field{min-width:0;width:100%;padding:9px 8px}
.partida-order{text-align:center;font-weight:800;color:var(--muted)}
.partida-subtotal{text-align:right;color:var(--navy);font-size:12px}
.icon-danger{width:34px;height:34px;border:0;border-radius:9px;background:#feecee;color:#a72c36;font-size:20px;line-height:1;cursor:pointer}
.icon-danger:hover{background:#ffd9dc}
.partidas-footer{position:sticky;bottom:0;z-index:2;margin-top:14px;background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:13px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:18px;box-shadow:0 -7px 25px rgba(12,39,67,.08)}
.partidas-footer small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;font-weight:800}
.partidas-footer strong{display:block;margin-top:3px;color:var(--navy);font-size:19px}
.form-actions.no-border{margin:0;padding:0;border:0}
.partidas-empty{background:#fff;border:1px dashed #bfcddd;border-radius:13px}
@media(max-width:900px){.section-toolbar,.partidas-top,.partidas-footer{align-items:stretch;flex-direction:column}.section-toolbar .btn,.partidas-top .btn{width:100%}.partidas-footer .form-actions{width:100%}.partidas-footer .form-actions .btn{flex:1}.partidas-table{overflow:auto}.partidas-head,.partida-edit-row{grid-template-columns:50px 110px 260px 80px 105px 125px 120px 40px}}


/* V3.4 - importador de presupuestos XLSX/PDF */
.budget-drawer{width:min(1500px,99vw)}.budget-drop{display:flex;align-items:center;gap:16px;background:#fff;border:1px dashed #a8bfd3;border-radius:14px;padding:18px;margin-bottom:14px}.budget-mini{padding:8px 0}.budget-history{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:14px}.budget-history>strong{display:block;margin-bottom:8px}.budget-history-row{display:grid;grid-template-columns:minmax(220px,1fr) 90px 90px 130px 70px;gap:10px;align-items:center;border-top:1px solid #edf1f5;padding:8px 0;font-size:11px}.budget-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}.budget-kpis>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px}.budget-kpis small{display:block;color:var(--muted);text-transform:uppercase;font-weight:800;font-size:9px}.budget-kpis strong{display:block;margin-top:5px;color:var(--navy);font-size:18px}.budget-actions{display:flex;justify-content:flex-end;gap:10px;margin-bottom:10px}.budget-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff;max-height:58vh}.budget-table{border-collapse:collapse;width:100%;min-width:1160px}.budget-table th,.budget-table td{border-bottom:1px solid #edf1f5;padding:8px;font-size:11px;text-align:left}.budget-table th{position:sticky;top:0;background:#f3f7fa;z-index:1;text-transform:uppercase;font-size:9px;color:var(--muted)}.budget-table .field{width:100%;padding:7px}.budget-chapter{background:#eaf1f7;color:var(--navy);font-weight:800}.budget-chapter td{padding:9px}.numeric{text-align:right}@media(max-width:700px){.budget-drop,.budget-actions{align-items:stretch;flex-direction:column}.budget-kpis{grid-template-columns:1fr}.budget-history-row{grid-template-columns:1fr 1fr}}

/* V3.5 Estados de pago */
.payment-kpis,.payment-editor-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.payment-kpis>div,.payment-editor-summary>div{background:#f7fafe;border:1px solid #dce7f2;border-radius:12px;padding:12px}.payment-kpis small,.payment-editor-summary small{display:block;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-size:10px;font-weight:800;margin-bottom:5px}.payment-kpis strong,.payment-editor-summary strong{font-size:17px;color:#0c2947}.payment-row{width:100%;border:1px solid #dce5ef;background:#fff;text-align:left;cursor:pointer}.payment-row:hover{border-color:#80b7e3;background:#f8fbff}.payment-row-right{display:flex;align-items:flex-end;gap:7px;flex-direction:column}.payment-drawer{width:min(1180px,94vw)}.payment-meta{padding-bottom:8px}.textarea{min-height:74px;resize:vertical}.payment-table-wrap{overflow:auto;border:1px solid #dce5ef;border-radius:12px;margin-top:14px;max-height:52vh}.payment-table{border-collapse:collapse;width:100%;min-width:900px;background:#fff}.payment-table th{position:sticky;top:0;background:#edf3f8;z-index:1;color:#52677d;font-size:11px;text-transform:uppercase;letter-spacing:.04em;text-align:left;padding:10px;border-bottom:1px solid #dce5ef}.payment-table td{padding:10px;border-bottom:1px solid #e7edf4;vertical-align:middle}.payment-table td:first-child{min-width:310px}.payment-table td small{display:block;color:#6b7e91;margin-top:4px}.pay-advance{width:100px}.sticky-actions{position:sticky;bottom:0;background:#fff;padding:12px 0 4px;margin-top:8px}.tag.blue{background:#e5f2ff;color:#075a9c}
@media(max-width:900px){.payment-kpis,.payment-editor-summary{grid-template-columns:repeat(2,1fr)}.payment-drawer{width:100vw}}
.payment-client-row{display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left}.payment-main{min-width:0;flex:1}.payment-client-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap;margin-top:7px}.payment-client-actions .btn{white-space:nowrap}@media(max-width:800px){.payment-client-row{align-items:flex-start;flex-direction:column}.payment-row-right{width:100%;align-items:flex-start!important}.payment-client-actions{justify-content:flex-start}}
/* V3.7 branding y documentos */
.login-logo{width:min(290px,72%);max-height:150px;object-fit:contain;object-position:left center;margin-bottom:24px;filter:drop-shadow(0 8px 24px rgba(0,0,0,.14))}.sidebar-logo{width:142px;max-height:78px;object-fit:contain;object-position:left center;margin:2px 0 8px}.brandbox .brandtitle{margin-top:4px}.document-grid{display:grid;gap:12px}.document-card{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid #d8e3ed;border-radius:14px;padding:14px;background:#fff}.doc-type{width:52px;height:52px;border-radius:12px;background:#e7f1fa;color:#0059a4;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px}.doc-content{min-width:0}.doc-content strong{display:block;margin:7px 0 3px;overflow-wrap:anywhere}.doc-content p{margin:4px 0;color:#526b80}.doc-head{display:flex;gap:6px;align-items:center}.doc-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.btn.danger{background:#fff1f0;color:#862017;border:1px solid #e5bbb7}.tag.blue{background:#e7f1fa;color:#0059a4}@media(max-width:900px){.document-card{grid-template-columns:48px minmax(0,1fr)}.doc-actions{grid-column:1/-1;justify-content:flex-start}.sidebar-logo{width:118px}.login-logo{width:230px}}


/* V3.8 Outlook Microsoft 365 */
.outlook-drawer{width:min(820px,96vw)}.mail-body{min-height:220px}.mail-attachment{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #cfe0ed;background:#f4f9fd;border-radius:12px;padding:13px 15px;color:#173a5b}.mail-attachment span{color:#60788d;font-size:12px}.note{padding:13px;border:1px solid #bfe8d5;border-radius:12px}.outlook-drawer .form-actions{flex-wrap:wrap}@media(max-width:640px){.mail-attachment{align-items:flex-start;flex-direction:column}.outlook-drawer .form-actions .btn{width:100%}}


/* V6 - Ordenes de compra agrupadas */
.oc-batch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;padding:18px}.oc-batch-card{border:1px solid var(--line,#d9e3ef);border-radius:16px;padding:18px;display:flex;justify-content:space-between;gap:18px;background:#fff}.oc-batch-card h3{font-size:16px;margin:10px 0 5px;overflow-wrap:anywhere}.oc-batch-card p{margin:0 0 4px;color:#536a82}.oc-batch-card small{color:#718399}.oc-batch-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.oc-project-list{display:grid;gap:12px;padding:18px}.oc-project{border:1px solid #d7e2ee;border-radius:16px;background:#fff;overflow:hidden}.oc-project summary{list-style:none;cursor:pointer;padding:17px 20px;display:flex;justify-content:space-between;align-items:center;gap:20px;background:#f7fafe}.oc-project summary::-webkit-details-marker{display:none}.oc-project summary div{display:flex;align-items:center;gap:14px}.oc-project summary span{font-size:13px;color:#647a91}.oc-project summary b{white-space:nowrap;color:#0e365d}.oc-project[open] summary{border-bottom:1px solid #d7e2ee;background:#edf5fc}.oc-detail-table th,.oc-detail-table td{vertical-align:top}.oc-detail-table td:nth-child(2){min-width:320px}.oc-detail-table small{font-size:10px;overflow-wrap:anywhere}.oc-files-panel{margin-bottom:18px}@media(max-width:800px){.oc-batch-card{flex-direction:column}.oc-project summary{align-items:flex-start}.oc-project summary div{align-items:flex-start;flex-direction:column;gap:3px}.oc-detail-table td:nth-child(2){min-width:220px}}

/* V7.0 - Interfaz y navegación */
.nav-section{margin-bottom:8px}.sidefoot{display:flex;flex-direction:column;gap:3px}.sidefoot strong{color:#dce8f4;font-size:11px}.sidefoot span{font-size:10px}.dashboard-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:20px;padding:4px 2px}.dashboard-hero h1{margin:4px 0 5px;color:var(--navy);font-size:31px;letter-spacing:-.03em}.dashboard-hero p{margin:0;color:var(--muted)}.eyebrow{display:block;font-size:10px;line-height:1.2;text-transform:uppercase;letter-spacing:.12em;color:var(--blue);font-weight:900}.dashboard-date{background:#fff;border:1px solid var(--line);border-radius:13px;padding:11px 14px;min-width:220px;box-shadow:var(--shadow)}.dashboard-date small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;font-weight:800}.dashboard-date strong{display:block;color:var(--navy);margin-top:4px;font-size:13px}.executive-cards .metric{border-top:3px solid var(--blue)}.v7-grid{grid-template-columns:minmax(0,1.35fr) minmax(310px,.65fr);align-items:start}.dashboard-side{display:grid;gap:14px}.project-list{display:grid}.project-row{width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) auto 18px;align-items:center;gap:12px;padding:14px 18px;border:0;border-bottom:1px solid #edf1f5;background:#fff;text-align:left;cursor:pointer}.project-row:hover{background:#f7fbff}.project-row:last-child{border-bottom:0}.project-icon,.project-avatar{display:grid;place-items:center;background:linear-gradient(135deg,#1769aa,#c93d48);color:#fff;font-weight:900}.project-icon{width:38px;height:38px;border-radius:11px;font-size:12px}.project-copy{min-width:0}.project-copy strong{display:block;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-copy span{display:block;color:var(--muted);font-size:11px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-arrow{font-size:25px;color:#8ba0b5}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.action-card{border:1px solid var(--line);border-radius:12px;background:#fbfdff;padding:12px;text-align:left;cursor:pointer}.action-card:hover{border-color:#8ebbe0;background:#f3f9ff}.action-card span{display:block;color:var(--navy);font-weight:800;font-size:12px}.action-card small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.dashboard-alert{border-left:4px solid var(--amber)}.dashboard-alert strong{display:block;color:var(--navy);font-size:15px;margin-top:6px}.dashboard-alert p{margin:5px 0 0;color:var(--muted);font-size:11px}.project-header{background:linear-gradient(135deg,#fff,#f4f8fc);border:1px solid var(--line);border-radius:16px;padding:18px;margin-bottom:14px;box-shadow:var(--shadow)}.project-header-main{display:flex;align-items:center;gap:14px}.project-avatar{width:54px;height:54px;border-radius:15px;font-size:18px;flex:0 0 auto}.project-header-main h2{margin:3px 0 4px;color:var(--navy);font-size:22px}.project-header-main p{margin:0;color:var(--muted);font-size:12px}.project-header-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.project-header-stats>div{background:#fff;border:1px solid var(--line);border-radius:11px;padding:10px}.project-header-stats small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;font-weight:800}.project-header-stats strong{display:block;color:var(--navy);font-size:14px;margin-top:4px}.project-context-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;flex-wrap:wrap}.project-tabs{position:sticky;top:76px;z-index:2}.tag.blue{background:#e7f1fa;color:#0059a4}.tag.gray{background:#eef2f5;color:#5e6d7c}
@media(max-width:1100px){.v7-grid{grid-template-columns:1fr}.dashboard-side{grid-template-columns:1fr 1fr}.dashboard-side .dashboard-alert{grid-column:1/-1}}
@media(max-width:760px){.dashboard-hero{align-items:flex-start;flex-direction:column}.dashboard-date{width:100%}.dashboard-side{grid-template-columns:1fr}.project-row{grid-template-columns:40px minmax(0,1fr) 18px}.project-row .tag{display:none}.project-header-stats{grid-template-columns:1fr}.project-context-actions{justify-content:stretch}.project-context-actions .btn{flex:1}.action-grid{grid-template-columns:1fr}.project-tabs{top:70px}}


/* V7.1 - Presupuesto intuitivo */
.budget-main-toolbar{align-items:flex-start}.budget-main-toolbar h3{font-size:20px;margin:4px 0}.budget-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.budget-summary-grid>div{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px}.budget-summary-grid small,.budget-file-total small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.06em;font-weight:800}.budget-summary-grid strong{display:block;color:var(--navy);font-size:20px;margin-top:5px}.budget-warning-card{border-color:#efc47f!important;background:#fff9ed!important}.budget-warning-card strong{color:#9a5a06!important}.budget-browser{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden}.budget-browser-toolbar{display:flex;gap:8px;align-items:center;padding:13px;border-bottom:1px solid var(--line);background:#f8fafc}.budget-browser-toolbar .search{flex:1;min-width:220px}.budget-results{padding:8px 14px;color:var(--muted);font-size:11px;border-bottom:1px solid #edf1f5}.budget-groups{display:grid}.budget-group{border-bottom:1px solid #e7edf3}.budget-group:last-child{border-bottom:0}.budget-group summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;cursor:pointer;background:#f9fbfd}.budget-group summary::-webkit-details-marker{display:none}.budget-group summary>div{display:flex;align-items:center;gap:10px}.budget-group summary strong{display:block;color:var(--navy)}.budget-group summary small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.budget-group summary b{color:var(--navy);white-space:nowrap}.budget-chevron{font-size:24px;color:var(--blue);transform:rotate(0);transition:.15s}.budget-group[open] .budget-chevron{transform:rotate(90deg)}.budget-group[open] summary{background:#edf5fc}.budget-group-body{display:grid}.budget-line{display:grid;grid-template-columns:95px minmax(0,1fr) 155px auto;gap:12px;align-items:center;padding:12px 16px;border-top:1px solid #edf1f5}.budget-line:hover{background:#fbfdff}.budget-line-code{font-weight:900;color:#33536f}.budget-line-copy{min-width:0}.budget-line-copy strong{display:block;color:#173754}.budget-line-copy span{display:block;color:var(--muted);font-size:11px;margin-top:3px}.budget-line-copy em{display:inline-block;margin-top:5px;color:#9a5a06;background:#fff3df;border-radius:999px;padding:3px 7px;font-size:9px;font-style:normal;font-weight:800}.budget-line-total{text-align:right}.budget-line-total small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase}.budget-line-total strong{display:block;color:var(--navy);margin-top:3px}.budget-line-actions{display:flex;gap:6px}.possible-duplicate{background:#fffaf0!important;box-shadow:inset 3px 0 #e7a43b}.v71-history{padding:0;overflow:hidden}.budget-history-head{display:flex;align-items:center;justify-content:space-between;padding:13px 15px;border-bottom:1px solid var(--line)}.budget-history-head strong{display:block;color:var(--navy);margin-top:3px}.budget-history-head small{color:var(--muted)}.budget-history-list{display:grid}.v71-history .budget-history-row{grid-template-columns:minmax(260px,1fr) 100px 180px auto;padding:11px 14px;margin:0}.budget-file-main{display:flex;align-items:center;gap:10px;min-width:0}.budget-file-main>div{min-width:0}.budget-file-main strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.budget-file-main small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.budget-file-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#e7f1fa;color:#075a9c;font-size:10px;font-weight:900}.current-budget{background:#f3fbf7}.budget-file-total{text-align:right}.budget-file-total strong{display:block;color:var(--navy);margin-top:3px;font-size:12px}.budget-history-note{margin:10px 14px 14px}.budget-no-file{background:#fff;border:1px dashed #bfcddd;border-radius:13px;margin-bottom:14px}.budget-import-warning{display:flex;gap:10px;align-items:flex-start;border:1px solid #efc47f;background:#fff9ed;color:#76500b;border-radius:12px;padding:11px 13px;margin:10px 0}.budget-import-warning strong{white-space:nowrap}.budget-import-warning span{font-size:11px;line-height:1.45}.budget-kpis{grid-template-columns:repeat(4,1fr)}
@media(max-width:1050px){.budget-summary-grid{grid-template-columns:repeat(2,1fr)}.budget-line{grid-template-columns:80px minmax(0,1fr) 135px}.budget-line-actions{grid-column:2/-1;justify-content:flex-end}.v71-history .budget-history-row{grid-template-columns:minmax(240px,1fr) 100px 160px}.v71-history .budget-history-row>.actions{grid-column:1/-1;justify-content:flex-end}}
@media(max-width:720px){.budget-summary-grid,.budget-kpis{grid-template-columns:1fr 1fr}.budget-browser-toolbar{align-items:stretch;flex-direction:column}.budget-browser-toolbar .search{width:100%;min-width:0}.budget-line{grid-template-columns:1fr;padding:12px}.budget-line-total{text-align:left}.budget-line-actions{grid-column:auto;justify-content:flex-start}.v71-history .budget-history-row{grid-template-columns:1fr}.budget-file-total{text-align:left}.budget-history-head{align-items:flex-start;flex-direction:column;gap:4px}.budget-import-warning{flex-direction:column}}
@media(max-width:480px){.budget-summary-grid,.budget-kpis{grid-template-columns:1fr}.budget-group summary{align-items:flex-start;flex-direction:column}.budget-group summary b{padding-left:34px}}

/* V7.2 - Estados de pago intuitivos */
.payment-main-toolbar{align-items:flex-start}.payment-main-toolbar h3{font-size:20px;margin:4px 0}.v72-payment-kpis>div{position:relative;overflow:hidden}.v72-payment-kpis span{display:block;margin-top:5px;color:var(--muted);font-size:10px}.payment-progress{background:#fff;border:1px solid var(--line);border-radius:13px;padding:13px 15px;margin:12px 0}.payment-progress>div:first-child{display:flex;justify-content:space-between;gap:12px;color:var(--navy);font-size:12px}.payment-progress-track{height:9px;background:#e7eef5;border-radius:999px;overflow:hidden;margin-top:9px}.payment-progress-track i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),#58a6df);border-radius:999px}.payment-overview{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 14px}.payment-overview span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 10px;color:var(--muted);font-size:10px;font-weight:700}.payment-card-list{display:grid;gap:12px}.payment-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:15px;box-shadow:0 6px 18px rgba(16,42,70,.05)}.payment-card:hover{border-color:#a9c9e5}.payment-card.is-annulled{opacity:.72;background:#fafafa}.payment-card-top{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.payment-card-tags{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.payment-lock{font-size:9px;font-weight:800;color:#5b6470;background:#edf1f4;border-radius:999px;padding:4px 7px}.payment-card h4{margin:8px 0 4px;color:var(--navy);font-size:16px}.payment-card p{margin:0;color:var(--muted);font-size:11px}.payment-card-amount{text-align:right}.payment-card-amount small,.payment-card-detail small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;font-weight:800}.payment-card-amount strong{display:block;color:var(--navy);font-size:18px;margin-top:4px}.payment-card-amount span{display:block;color:var(--green);font-size:11px;margin-top:3px}.payment-card-detail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:13px 0}.payment-card-detail>div{background:#f7fafe;border:1px solid #e1eaf2;border-radius:10px;padding:9px}.payment-card-detail strong{display:block;color:#26445e;font-size:12px;margin-top:4px}.payment-card-actions{display:flex;gap:7px;flex-wrap:wrap;padding-top:12px;border-top:1px solid #edf1f5}.payment-locked-note{margin-bottom:14px;background:#eef4f8;border-color:#cfdae4;color:#314b63}.payment-locked-note strong{display:block;margin-bottom:3px}
@media(max-width:760px){.payment-card-top{flex-direction:column}.payment-card-amount{text-align:left}.payment-card-detail{grid-template-columns:repeat(2,1fr)}.payment-card-actions .btn{flex:1}.v72-payment-kpis{grid-template-columns:1fr!important}}


/* V7.3 - Ordenes de compra por proyecto */
.oc-contract-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.oc-contract-kpis>div{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px}.oc-contract-kpis small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;font-weight:800}.oc-contract-kpis strong{display:block;color:var(--navy);font-size:18px;margin-top:5px}.oc-provider-groups{display:grid;gap:12px}.oc-provider{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.oc-provider summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;background:#f7fafe;cursor:pointer}.oc-provider summary::-webkit-details-marker{display:none}.oc-provider summary strong{display:block;color:var(--navy)}.oc-provider summary span{display:block;color:var(--muted);font-size:10px;margin-top:3px}.oc-provider summary b{color:var(--green);white-space:nowrap}.oc-provider[open] summary{border-bottom:1px solid var(--line);background:#edf5fc}.tag.red{background:#feecee;color:#a92c37}@media(max-width:900px){.oc-contract-kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.oc-contract-kpis{grid-template-columns:1fr}.oc-provider summary{align-items:flex-start;flex-direction:column}}


/* V7.4 – Mejora pantalla estados de pago */
.payment-main-toolbar{align-items:flex-start;gap:14px;flex-wrap:wrap}.payment-type-actions{display:flex;gap:8px;flex-wrap:wrap}.payment-kind-filter{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 10px}.payment-kind-filter button{border:1px solid #cfdbe7;background:#fff;color:#244461;padding:9px 12px;border-radius:999px;font-weight:800;cursor:pointer}.payment-kind-filter button.active{background:var(--navy);border-color:var(--navy);color:#fff}.payment-editor-layer{justify-content:center;padding:14px}.payment-drawer{width:min(1680px,98vw)!important;height:calc(100vh - 28px);margin:auto;border-radius:20px;overflow:hidden;display:flex;flex-direction:column}.payment-drawer .drawer-head{padding:18px 22px}.payment-drawer-body{display:flex;flex-direction:column;gap:14px;height:100%;overflow:auto;padding:18px 22px 12px}.payment-kind-switch{display:flex;gap:8px;flex-wrap:wrap}.payment-kind-switch button{border:1px solid #cfdbe7;background:#fff;color:#244461;padding:10px 14px;border-radius:12px;font-weight:800;cursor:pointer}.payment-kind-switch button.active{background:var(--navy);color:#fff;border-color:var(--navy)}.payment-meta-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:var(--shadow)}.payment-meta{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.payment-workspace{background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px;display:flex;flex-direction:column;min-height:420px;flex:1;box-shadow:var(--shadow)}.payment-table-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:4px 4px 12px}.payment-table-toolbar strong{display:block;color:var(--navy)}.payment-table-toolbar span,.payment-table-note{font-size:12px;color:var(--muted)}.payment-table-wrap{max-height:none!important;flex:1;min-height:360px}.payment-table{min-width:1120px}.payment-table td:first-child,.payment-table th:first-child{position:sticky;left:0;background:#fff;z-index:2}.payment-table th:first-child{background:#edf3f8;z-index:3}.payment-editor-summary{margin:0}.payment-editor-summary>div{background:#f4f8fc}.sticky-actions{display:flex;justify-content:flex-end;gap:10px;padding:14px 0 6px;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 22%)}
@media(max-width:1200px){.payment-meta{grid-template-columns:repeat(3,minmax(0,1fr))}.payment-drawer{width:min(99vw,1500px)!important}}
@media(max-width:900px){.payment-editor-layer{padding:0}.payment-drawer{width:100vw!important;height:100vh;border-radius:0}.payment-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.payment-table-toolbar{flex-direction:column}.payment-table td:first-child,.payment-table th:first-child{position:static}}
@media(max-width:640px){.payment-type-actions,.payment-kind-filter,.payment-kind-switch{flex-direction:column}.payment-meta{grid-template-columns:1fr}.payment-kpis,.payment-editor-summary{grid-template-columns:1fr!important}.payment-drawer-body{padding:14px}}

/* V7.5 - Etapa 3B Contabilidad */
.accounting-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.accounting-kpis>div,.accounting-alert-grid>div{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px;box-shadow:var(--shadow)}.accounting-kpis small,.accounting-alert-grid small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.06em;font-weight:800}.accounting-kpis strong,.accounting-alert-grid strong{display:block;color:var(--navy);font-size:20px;margin-top:5px}.accounting-kpis span{display:block;color:var(--muted);font-size:10px;margin-top:4px}.accounting-kpis .negative{color:#a72c36}.accounting-alert-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.accounting-table small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.accounting-drawer{width:min(920px,96vw)}.accounting-global-kpis .metric-value{font-size:23px}@media(max-width:1100px){.accounting-kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.accounting-kpis,.accounting-alert-grid{grid-template-columns:1fr}.accounting-drawer{width:100vw}.accounting-table{min-width:1050px}}

/* V7.6 - Biblioteca documental y auditoria */
.document-kpis{margin-bottom:16px}.document-library-grid{display:grid;gap:10px;padding:16px}.document-library-card{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:14px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px}.document-library-card.is-retired{background:#f8fafc;opacity:.78;border-style:dashed}.document-library-card .doc-content p{margin:5px 0;color:var(--muted);font-size:12px}.document-library-card .doc-actions{min-width:150px}.audit-list{display:grid}.audit-row{display:grid;grid-template-columns:44px minmax(0,1fr) minmax(220px,360px);gap:14px;align-items:start;padding:14px 18px;border-bottom:1px solid #edf1f5;background:#fff}.audit-row:last-child{border-bottom:0}.audit-icon{width:40px;height:40px;border-radius:11px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-weight:900;font-size:11px}.audit-row strong{display:block;color:var(--navy)}.audit-row span{display:block;color:#52677b;font-size:12px;margin-top:3px}.audit-row p{margin:5px 0 0;color:var(--muted);font-size:11px}.audit-row pre{margin:0;background:#f5f8fb;border:1px solid var(--line);border-radius:9px;padding:9px;max-height:110px;overflow:auto;font-size:10px;white-space:pre-wrap;overflow-wrap:anywhere}.tag.green{background:#e9f8f2;color:#0b7a54}
@media(max-width:900px){.document-library-card{grid-template-columns:48px minmax(0,1fr)}.document-library-card .doc-actions{grid-column:1/-1;min-width:0;justify-content:flex-start}.audit-row{grid-template-columns:40px minmax(0,1fr)}.audit-row pre{grid-column:1/-1}}

/* V7.7 - Etapa 4B Aprobaciones */
.approval-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.approval-kpis>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px}.approval-kpis small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;font-weight:800;letter-spacing:.06em}.approval-kpis strong{display:block;color:var(--navy);font-size:24px;margin-top:5px}.approval-overdue-card{background:#fff4f4!important;border-color:#eab0b0!important}.approval-overdue-card strong{color:#b42318!important}.approval-card-list{display:grid;gap:12px}.approval-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px;cursor:pointer;box-shadow:var(--shadow)}.approval-card:hover{border-color:#8ebbe0;background:#fbfdff}.approval-card.is-overdue{box-shadow:inset 4px 0 #c93d48,var(--shadow)}.approval-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.approval-card-head h3{margin:8px 0 4px;color:var(--navy);font-size:17px}.approval-card-head p{margin:0;color:var(--muted);font-size:12px}.approval-tags{display:flex;gap:6px;flex-wrap:wrap}.approval-due{text-align:right;white-space:nowrap}.approval-due small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;font-weight:800}.approval-due strong{display:block;margin-top:4px;color:var(--navy)}.approval-card-meta{display:flex;gap:18px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid #edf1f5;color:var(--muted);font-size:11px}.approval-mine{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--navy);font-weight:700}.approval-description{min-height:120px}.approval-detail-drawer{width:min(980px,97vw)}.approval-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.approval-info-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:13px}.approval-info-card small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;font-weight:800}.approval-info-card strong{display:block;margin-top:5px;color:var(--navy)}.approval-description-panel{margin-bottom:14px}.approval-timeline{padding:16px 18px;display:grid;gap:14px}.approval-event{display:grid;grid-template-columns:14px minmax(0,1fr);gap:10px;position:relative}.approval-event-dot{width:10px;height:10px;border-radius:50%;background:var(--blue);margin-top:5px}.approval-event strong{display:block;color:var(--navy);font-size:12px}.approval-event span{display:block;color:var(--muted);font-size:10px;margin-top:2px}.approval-event p{margin:7px 0 0;padding:9px 11px;background:#f7fafe;border-radius:9px;color:#314b63;font-size:12px}.approval-action-box{margin-top:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px}.approval-action-buttons{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin-top:10px}.approval-form-drawer{width:min(760px,97vw)}
@media(max-width:900px){.approval-kpis,.approval-detail-grid{grid-template-columns:repeat(2,1fr)}.approval-card-head{flex-direction:column}.approval-due{text-align:left}}
@media(max-width:560px){.approval-kpis,.approval-detail-grid{grid-template-columns:1fr}.approval-action-buttons{flex-direction:column}.approval-action-buttons .btn{width:100%}}

/* V7.8 - Administración de usuarios y permisos */
.user-admin-metrics{margin-bottom:18px}.user-card-grid{display:grid;gap:12px;padding:16px}.user-admin-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:15px;display:grid;grid-template-columns:minmax(260px,1fr) minmax(320px,1.2fr) auto;gap:16px;align-items:center}.user-admin-main{display:flex;align-items:center;gap:12px;min-width:0}.user-admin-main h3{margin:0;color:var(--navy);font-size:15px}.user-admin-main p{margin:4px 0 0;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.user-admin-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.user-admin-detail{display:grid;grid-template-columns:1.5fr .7fr .8fr;gap:10px}.user-admin-detail>div{background:#f7fafe;border:1px solid #dce7f2;border-radius:11px;padding:10px}.user-admin-detail small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;font-weight:800}.user-admin-detail strong{display:block;margin-top:4px;color:var(--navy);font-size:11px;overflow-wrap:anywhere}.user-admin-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.user-editor-drawer{width:min(980px,98vw)}.user-editor-section{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px}.user-editor-section h3{margin:0 0 10px;color:var(--navy);font-size:14px}.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.permission-option{display:flex;align-items:center;gap:8px;border:1px solid #d8e3ed;border-radius:10px;padding:10px;background:#fbfdff;cursor:pointer}.permission-option input{width:17px;height:17px}.permission-option span{text-transform:capitalize;font-weight:700;font-size:12px;color:#294761}.contract-assignment-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:330px;overflow:auto}.contract-assignment-list label{display:flex;align-items:flex-start;gap:9px;border:1px solid #d8e3ed;border-radius:10px;padding:10px;background:#fbfdff;cursor:pointer}.contract-assignment-list input{margin-top:3px}.contract-assignment-list strong{display:block;color:var(--navy);font-size:12px}.contract-assignment-list small{display:block;color:var(--muted);font-size:10px;margin-top:3px}
@media(max-width:1100px){.user-admin-card{grid-template-columns:1fr}.user-admin-actions{justify-content:flex-start}.user-admin-detail{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.permission-grid,.contract-assignment-list,.user-admin-detail{grid-template-columns:1fr}.user-card-grid{padding:10px}.user-admin-actions .btn{flex:1}.user-editor-drawer{width:100vw}}

/* V7.8.1 - Panel consolidado de Estados de Pago */
.edp-dashboard{display:grid;gap:22px}.edp-filters{display:grid;grid-template-columns:160px minmax(190px,1fr) 180px minmax(240px,1.35fr) auto;gap:12px;padding:16px;align-items:center}.edp-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.edp-kpi{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line,#d9e3ee);border-radius:20px;padding:20px 22px;min-height:126px;box-shadow:0 12px 28px rgba(14,49,84,.06);display:flex;flex-direction:column;justify-content:center}.edp-kpi:after{content:"";position:absolute;right:-20px;top:-32px;width:100px;height:100px;border-radius:50%;background:#eaf4fc}.edp-kpi small{position:relative;z-index:1;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#6c8095}.edp-kpi strong{position:relative;z-index:1;font-size:30px;color:#082b50;margin:7px 0 3px}.edp-kpi span{position:relative;z-index:1;color:#718398;font-size:13px}.edp-kpi.danger strong{color:#b42318}.edp-alert-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.edp-alert{border:1px solid #dbe5ef;background:#fff;border-radius:16px;padding:15px 16px;text-align:left;cursor:pointer;display:flex;align-items:center;gap:12px;transition:.16s ease}.edp-alert:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(14,49,84,.08)}.edp-alert strong{font-size:25px;color:#173d62}.edp-alert span{color:#667b90;line-height:1.25}.edp-alert.amber{border-left:4px solid #d89218}.edp-alert.blue{border-left:4px solid #1574b8}.edp-alert.red{border-left:4px solid #c53737}.edp-portfolio .panel-head,.edp-evolution .panel-head{padding:20px 22px}.edp-table td small{display:block;color:#7a8da0;margin-top:4px}.edp-table td{vertical-align:middle}.days-late{display:inline-flex;min-width:34px;justify-content:center;padding:5px 8px;border-radius:999px;background:#fdeaea;color:#b42318;font-weight:800}.edp-legend{display:flex;gap:16px;flex-wrap:wrap;color:#60758a;font-size:12px}.edp-legend span:before{content:"";display:inline-block;width:9px;height:9px;border-radius:2px;background:#a7c7e5;margin-right:6px}.edp-legend span:nth-child(2):before{background:#6fa5d1}.edp-legend span:nth-child(3):before{background:#3f82b9}.edp-legend span:nth-child(4):before{background:#145f96}.edp-month-chart{height:300px;padding:26px 22px 18px;display:grid;grid-template-columns:repeat(12,minmax(42px,1fr));gap:10px;align-items:end;border-top:1px solid #e4ebf2}.edp-month{height:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:9px;text-align:center;color:#5e7388}.edp-month-bars{height:230px;display:flex;align-items:flex-end;justify-content:center;gap:3px;border-bottom:1px solid #dbe5ee}.edp-month-bars i{width:19%;min-height:2px;border-radius:5px 5px 0 0;background:#a7c7e5}.edp-month-bars i:nth-child(2){background:#6fa5d1}.edp-month-bars i:nth-child(3){background:#3f82b9}.edp-month-bars i:nth-child(4){background:#145f96}.loading-panel{padding:35px;text-align:center;color:#6f8295}.quick-project-list{display:grid;gap:10px}.quick-project{border:1px solid #dce5ee;border-radius:14px;background:#fff;padding:14px 16px;text-align:left;cursor:pointer}.quick-project:hover{border-color:#1574b8;background:#f5faff}.quick-project strong,.quick-project span{display:block}.quick-project strong{color:#143a5e}.quick-project span{color:#718398;margin-top:4px}
@media(max-width:1250px){.edp-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.edp-alert-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.edp-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.edp-filters .btn{width:100%}.edp-month-chart{overflow-x:auto;grid-template-columns:repeat(12,64px)}}
@media(max-width:720px){.edp-kpis,.edp-alert-grid,.edp-filters{grid-template-columns:1fr}.edp-kpi{min-height:105px}.edp-month-chart{height:260px}.edp-month-bars{height:190px}}


/* V7.8.4 - Filtros funcionales y EDP agrupados por proyecto */
.edp-dashboard.is-loading{opacity:.55;pointer-events:none}.edp-project-list{display:grid;gap:12px;padding:18px}.edp-project{border:1px solid #d7e2ee;border-radius:17px;background:#fff;overflow:hidden}.edp-project summary{list-style:none;cursor:pointer;padding:17px 20px;display:grid;grid-template-columns:minmax(250px,1fr) minmax(520px,1.3fr);gap:20px;align-items:center;background:#f7fafe}.edp-project summary::-webkit-details-marker{display:none}.edp-project[open] summary{background:#edf5fc;border-bottom:1px solid #d7e2ee}.edp-project-title strong,.edp-project-title span{display:block}.edp-project-title strong{color:#10375b;font-size:16px}.edp-project-title span{margin-top:5px;color:#6a7e92;font-size:12px}.edp-project-summary{display:grid;grid-template-columns:repeat(4,minmax(105px,1fr));gap:9px}.edp-project-summary span{border-left:1px solid #d7e2ee;padding-left:12px}.edp-project-summary small,.edp-project-summary b{display:block}.edp-project-summary small{color:#708397;text-transform:uppercase;letter-spacing:.05em;font-size:9px;font-weight:800}.edp-project-summary b{margin-top:4px;color:#123b61;font-size:13px}.edp-project .table-wrap{border:0;border-radius:0}.edp-project .edp-table{min-width:980px}.edp-project .edp-table th{background:#f8fafc}.edp-project .edp-table td:first-child{min-width:210px}
@media(max-width:1100px){.edp-project summary{grid-template-columns:1fr}.edp-project-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.edp-project-summary{grid-template-columns:1fr}.edp-project-summary span{border-left:0;border-top:1px solid #d7e2ee;padding:8px 0 0}.edp-project-list{padding:10px}.edp-project summary{padding:14px}}

/* V7.8.5 - Consolidacion multimoneda CLP a UF */
.field-help{display:block;margin-top:6px;color:var(--muted);font-size:10px;font-weight:500;line-height:1.4}
.conversion-warning{display:flex;gap:10px;align-items:flex-start;margin-bottom:14px;padding:13px 15px;border:1px solid #efc47f;border-radius:13px;background:#fff8e8;color:#76500b}
.conversion-warning strong{white-space:nowrap}.conversion-warning span{font-size:12px;line-height:1.45}
.currency-conversion-tag,.currency-missing-tag{display:inline-flex;align-items:center;margin-left:7px;padding:3px 7px;border-radius:999px;font-size:9px;font-style:normal;vertical-align:middle}
.currency-conversion-tag{background:#e8f7ef;color:#0b7a54}.currency-missing-tag{background:#feecee;color:#a92c37}
.original-currency{display:block;margin-top:3px;color:var(--muted);font-size:9px;white-space:nowrap}
@media(max-width:700px){.conversion-warning{flex-direction:column}.conversion-warning strong{white-space:normal}}


/* V7.8.6 - Estados de pago ordenados por clientes y subcontratos */
.edp-hierarchy{display:grid;gap:18px;padding:18px}.edp-contract-type{display:grid;gap:12px}.edp-contract-type-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:4px 2px}.edp-contract-type-head h3{margin:3px 0 0;color:var(--navy);font-size:20px}.edp-contract-type-head>span{background:#eaf1f7;color:#526b80;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800}.edp-client-group{border:1px solid #cfddea;border-radius:16px;background:#fff;overflow:hidden}.edp-client-group>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 18px;background:#eef5fb}.edp-client-group>summary::-webkit-details-marker{display:none}.edp-client-group>summary>div:first-child{display:flex;align-items:center;gap:10px;min-width:0}.edp-client-group>summary strong{display:block;color:var(--navy);font-size:15px}.edp-client-group>summary small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.edp-client-chevron{font-size:24px;color:var(--blue);transition:.15s;transform:rotate(0)}.edp-client-group[open] .edp-client-chevron{transform:rotate(90deg)}.edp-client-summary{display:grid;grid-template-columns:repeat(4,minmax(100px,1fr));gap:12px;min-width:520px}.edp-client-summary span{padding-left:12px;border-left:1px solid #cad9e6}.edp-client-summary small{display:block;text-transform:uppercase;letter-spacing:.07em;font-size:8px;font-weight:800;color:#6f8295}.edp-client-summary b{display:block;color:var(--navy);font-size:12px;margin-top:3px}.edp-client-projects{display:grid;gap:10px;padding:12px;background:#f8fafc}.edp-client-projects .edp-project{margin:0}.edp-client-projects .edp-project>summary{background:#fff}.edp-client-projects .edp-project[open]>summary{background:#f1f7fc}.edp-portfolio .panel-head .actions{width:auto}
@media(max-width:1100px){.edp-client-group>summary{align-items:flex-start;flex-direction:column}.edp-client-summary{width:100%;min-width:0}}
@media(max-width:720px){.edp-contract-type-head{align-items:flex-start;flex-direction:column}.edp-client-summary{grid-template-columns:repeat(2,1fr)}.edp-client-group>summary{padding:13px}.edp-client-projects{padding:8px}.edp-portfolio .panel-head .actions{width:100%}.edp-portfolio .panel-head .actions .btn{flex:1}}


/* V8.0 Plataforma ejecutiva */
.v8-alert-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}.v8-alert-strip button{border:1px solid var(--line);background:#fff;border-radius:14px;padding:14px;text-align:left;cursor:pointer;box-shadow:var(--shadow)}.v8-alert-strip strong{font-size:24px;color:var(--navy);display:block}.v8-alert-strip span{font-size:11px;color:var(--muted)}.v8-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px}.v8-project-card{border:1px solid var(--line);border-radius:15px;padding:14px;background:#fff}.v8-project-top{display:grid;grid-template-columns:13px minmax(0,1fr) auto;gap:10px;align-items:start}.v8-project-top h3{margin:0;color:var(--navy);font-size:14px}.v8-project-top p{margin:4px 0 0;color:var(--muted);font-size:10px}.traffic{width:12px;height:12px;border-radius:50%;margin-top:3px;box-shadow:0 0 0 4px rgba(0,0,0,.04)}.traffic.verde{background:#18a06c}.traffic.amarillo{background:#e6a11a}.traffic.rojo{background:#d23e49}.v8-progress{height:7px;background:#e9eff5;border-radius:999px;overflow:hidden;margin:13px 0}.v8-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),#55a7df)}.v8-project-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.v8-project-stats small{display:block;color:var(--muted);font-size:8px;text-transform:uppercase;font-weight:800}.v8-project-stats strong{display:block;color:var(--navy);font-size:11px;margin-top:3px}.v8-reasons{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}.v8-reasons span{font-size:9px;background:#fff1df;color:#8c5908;border-radius:999px;padding:4px 7px}.task-board{display:grid;gap:10px;padding:16px}.task-card{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--line);border-left:4px solid #d8e2ec;border-radius:13px;padding:14px;background:#fff}.task-card.priority-critica{border-left-color:var(--red)}.task-card.priority-alta{border-left-color:#e29018}.task-card h3{margin:7px 0 3px;color:var(--navy)}.task-card p,.task-card small{margin:0;color:var(--muted)}.executive-summary-list{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.executive-summary-list>div{background:#f7fafe;border:1px solid var(--line);border-radius:11px;padding:12px}.executive-summary-list span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase}.executive-summary-list strong{display:block;color:var(--navy);margin-top:5px}@media(max-width:950px){.v8-project-grid{grid-template-columns:1fr}.v8-alert-strip,.executive-summary-list{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.v8-alert-strip,.executive-summary-list{grid-template-columns:1fr}.task-card{align-items:flex-start;flex-direction:column}.v8-project-stats{grid-template-columns:repeat(2,1fr)}}
@media print{.sidebar,.topbar,.actions,.v8-alert-strip,.toolbar{display:none!important}.app-shell{display:block}.content{max-width:none;padding:0}.panel{box-shadow:none}}


/* V8.1 - estabilización profesional */
.global-search{position:relative;width:min(360px,34vw)}.global-search .field{width:100%;padding:8px 11px}.global-search-results{display:none;position:absolute;right:0;top:44px;width:min(520px,80vw);max-height:420px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:0 20px 55px rgba(10,39,71,.18);z-index:90}.global-search-results.show{display:block}.global-search-results button{width:100%;border:0;border-bottom:1px solid #edf1f5;background:#fff;padding:11px 13px;text-align:left;cursor:pointer}.global-search-results button:hover{background:#f4f9fd}.global-search-results strong,.global-search-results small{display:block}.global-search-results small{color:var(--muted);margin-top:3px}.empty-mini{padding:14px;color:var(--muted)}.closure-checklist{display:grid;gap:8px;margin:18px 0}.closure-checklist label{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:11px;padding:11px}.closure-checklist b{font-size:9px;color:#a72c36;background:#feecee;border-radius:999px;padding:4px 7px}.closure-checklist input{width:18px;height:18px}@media(max-width:900px){.global-search{display:none}}

/* V8.1.2 - Firma documental y correo multiusuario */
.mail-signature-preview{border:1px solid var(--line);border-radius:14px;background:#f8fbfe;padding:14px;display:grid;gap:9px}
.mail-signature-preview>span{font-weight:800;color:var(--navy)}
.mail-signature-preview img{display:block;max-width:100%;max-height:260px;width:auto;height:auto;object-fit:contain;background:#fff;border:1px solid #e3ebf2;border-radius:10px}
.mail-signature-preview small{color:var(--muted);line-height:1.4}
@media(max-width:720px){.mail-signature-preview img{max-height:180px}}

/* V8.2 - Mobile/PWA */
:root{--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px)}
.mobile-bottom-nav{display:none}.connection-status{position:fixed;left:50%;top:calc(10px + var(--safe-top));transform:translateX(-50%) translateY(-120%);z-index:2000;border-radius:999px;padding:7px 12px;font-size:11px;font-weight:800;box-shadow:0 8px 24px rgba(4,34,62,.2);transition:.2s}.connection-status.show{transform:translateX(-50%) translateY(0)}.connection-status.online{background:#e5f7ee;color:#08714c}.connection-status.offline{background:#feecee;color:#a72c36}.install-app-btn{white-space:nowrap}
@media(max-width:900px){
  body{overscroll-behavior-y:none}.app-shell{min-height:100dvh}.workspace{min-width:0}.topbar{position:sticky;top:0;z-index:80;padding-top:var(--safe-top);height:auto;min-height:66px}.top-actions .userchip{max-width:180px}.usertext{display:none}.content{padding:16px 12px calc(92px + var(--safe-bottom))}.hero{align-items:flex-start;gap:12px}.hero h1{font-size:28px}.hero .actions{width:100%;justify-content:flex-start}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{min-height:120px}.metric-value{font-size:27px}.panel-head{align-items:flex-start;flex-direction:column}.panel-head .toolbar,.panel-head .actions{width:100%}.panel-head .toolbar>*{flex:1;min-width:150px}.drawer{width:100%;max-width:none;height:100dvh;border-radius:0}.drawer-head{padding-top:calc(16px + var(--safe-top))}.drawer-body{padding-bottom:calc(30px + var(--safe-bottom))}.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}.table-wrap{overflow:auto;-webkit-overflow-scrolling:touch}.table{min-width:760px}.project-tabs{overflow-x:auto;scrollbar-width:none}.project-tabs::-webkit-scrollbar{display:none}.project-tabs button{white-space:nowrap}.mobile-bottom-nav{display:grid;position:fixed;left:0;right:0;bottom:0;z-index:100;grid-template-columns:repeat(5,1fr);padding:7px 8px calc(7px + var(--safe-bottom));background:rgba(255,255,255,.96);border-top:1px solid var(--line);box-shadow:0 -8px 24px rgba(5,39,71,.10);backdrop-filter:blur(14px)}.mobile-bottom-nav button{border:0;background:transparent;color:#61788e;min-height:48px;border-radius:12px;display:grid;place-items:center;align-content:center;gap:2px;font-weight:700}.mobile-bottom-nav button span{font-size:17px}.mobile-bottom-nav button small{font-size:9px}.mobile-bottom-nav button.active{background:#e8f2fb;color:var(--blue)}.install-app-btn{display:none}
}
@media(max-width:600px){.cards{grid-template-columns:1fr}.topbar{padding-left:10px;padding-right:10px}.top-actions{gap:6px}.top-actions .btn.small{padding:8px 10px}.page-name{font-size:14px}.crumb{font-size:9px}.content{padding-left:9px;padding-right:9px}.login{min-height:100dvh}.login-visual{display:none}.login-form-wrap{padding:20px}.login-card{width:100%}.project-header-stats{grid-template-columns:1fr}.project-context-actions{display:grid;grid-template-columns:1fr 1fr}.project-context-actions .primary{grid-column:1/-1}.v8-project-stats{grid-template-columns:1fr 1fr}.document-library-card{grid-template-columns:auto minmax(0,1fr)}.document-library-card .doc-actions{grid-column:1/-1;justify-content:flex-end}}
@media(display-mode:standalone){.topbar{padding-top:max(var(--safe-top),8px)}.install-app-btn{display:none!important}}

/* V8.2.2 - Contraste de marca y editor EDP */
.sidebar-logo,.login-logo{filter:brightness(0) invert(1);opacity:1}.sidebar-logo{max-width:128px;max-height:72px;object-fit:contain}.login-logo{max-width:220px;max-height:120px;object-fit:contain}.payment-kind-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.payment-kind-selector button{border:1px solid #cbd9e7;background:#fff;color:#244461;border-radius:13px;padding:14px;font-weight:900;cursor:pointer}.payment-kind-selector button.active{background:var(--navy);color:#fff;border-color:var(--navy);box-shadow:0 8px 20px rgba(10,39,71,.18)}.financial-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}.financial-mini-grid>div{background:#f7fafc;border:1px solid var(--line);border-radius:12px;padding:12px}.financial-mini-grid small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;font-weight:800}.financial-mini-grid strong{display:block;color:var(--navy);margin-top:5px}.payment-editor-summary{grid-template-columns:repeat(7,minmax(120px,1fr))}.payment-editor-summary>div:last-child{background:#e9f8f2;border-color:#bde5d4}.payment-editor-summary>div:last-child strong{color:#08744f}@media(max-width:800px){.payment-kind-selector{grid-template-columns:1fr}.financial-mini-grid{grid-template-columns:1fr}.payment-editor-summary{grid-template-columns:repeat(2,1fr)}}


/* V8.2.3 - Anticipo claro, amortización automática y edición segura */
.advance-mode-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0 16px}.advance-mode-card{display:flex;gap:10px;align-items:flex-start;padding:14px;border:1px solid #cfddea;border-radius:14px;background:#fff;cursor:pointer}.advance-mode-card:has(input:checked){border-color:#0f71b8;background:#edf7ff;box-shadow:0 0 0 2px rgba(15,113,184,.12)}.advance-mode-card input{margin-top:4px}.advance-mode-card strong,.advance-mode-card small{display:block}.advance-mode-card strong{color:#123b61}.advance-mode-card small{margin-top:3px;color:#6c8095}.equivalent-box,.auto-amort-box{border:1px solid #d6e3ef;border-radius:12px;padding:12px;background:#f8fbfe}.equivalent-box strong,.auto-amort-box strong,.auto-amort-box small{display:block}.equivalent-box strong,.auto-amort-box strong{font-size:18px;color:#0d4775;margin-top:5px}.auto-amort-box small{margin-top:4px;color:#577087}@media(max-width:680px){.advance-mode-cards{grid-template-columns:1fr}}

/* V8.2.4 - agrupacion y clasificacion de EDP */
.payment-kind-filter button b{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;margin-left:5px;padding:0 6px;border-radius:999px;background:#e9f0f6;color:#173a59;font-size:11px}.payment-kind-filter button.active b{background:rgba(255,255,255,.2);color:#fff}.payment-kind-filter button.needs-classification{border-color:#e4a11b;color:#8a5500;background:#fff8e8}.payment-kind-filter button.needs-classification.active{background:#9a6400;color:#fff;border-color:#9a6400}.payment-filter-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:8px 0 14px}.payment-filter-summary>div{background:#f5f8fb;border:1px solid var(--line);border-radius:12px;padding:10px}.payment-filter-summary small{display:block;color:var(--muted);font-size:11px}.payment-filter-summary strong{display:block;color:var(--navy);margin-top:3px}.payment-card.payment-unclassified{border-color:#e4a11b;background:#fffdf7}.classification-warning{margin-top:8px;padding:8px 10px;border-radius:9px;background:#fff1c9;color:#775000;font-size:12px}.tag.amber{background:#fff1c9;color:#775000}
@media(max-width:760px){.payment-filter-summary{grid-template-columns:1fr 1fr}.payment-filter-summary>div:last-child{grid-column:1/-1}}

/* V8.3.0 - elegibilidad automática de devolución de retenciones */
.retention-eligibility{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:13px 15px;border-radius:13px;margin:12px 0;border:1px solid var(--line);background:#f8fafc}.retention-eligibility>div:first-child{display:flex;flex-direction:column;gap:3px}.retention-eligibility strong{color:var(--navy)}.retention-eligibility span{font-size:11px;color:var(--muted)}.retention-eligibility>div:last-child{display:grid;grid-template-columns:auto auto;gap:3px 10px;text-align:right}.retention-eligibility small{font-size:9px;text-transform:uppercase;color:var(--muted);font-weight:800}.retention-eligibility b{color:var(--navy)}.retention-eligibility.eligible{background:#eefaf5;border-color:#bfe8d5}.retention-eligibility.eligible strong,.retention-eligibility.eligible b{color:#176747}.payment-type-actions .btn:disabled{opacity:.52;cursor:not-allowed;transform:none}@media(max-width:720px){.retention-eligibility{align-items:flex-start;flex-direction:column}.retention-eligibility>div:last-child{text-align:left}}

/* V8.3.5 - flujo EDP, pantalla completa y sin superposiciones */
.drawer,.compact-drawer,.edit-drawer,.payment-drawer,.payment-editor-drawer,.outlook-drawer,.budget-drawer,.partidas-drawer{width:100vw!important;max-width:none!important;height:100vh!important}
.drawer-bg,.modal-layer{align-items:stretch!important}
.project-tabs,.sticky-actions{position:static!important;top:auto!important;bottom:auto!important}
.workflow-status{background:#eef8f4;border:1px solid #bfe4d4;border-radius:12px;padding:12px 14px}
.workflow-status strong{color:#146b4c;text-transform:capitalize;font-size:18px}
.workflow-status small{color:#587466;font-weight:500}


/* V8.3.7 - cartera por año/mandante y aprobaciones guiadas */
.contract-portfolio-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.contract-year-groups{display:grid;gap:14px;padding:16px}.contract-year{border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}.contract-year>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:16px 18px;background:#f6f9fc}.contract-year>summary::-webkit-details-marker,.contract-client>summary::-webkit-details-marker{display:none}.contract-year>summary>div{display:flex;align-items:center;gap:12px}.contract-year>summary strong,.contract-client>summary strong{display:block;color:var(--navy)}.contract-year>summary small,.contract-client>summary small{display:block;color:var(--muted);margin-top:3px}.contract-year>summary b{color:var(--blue)}.contract-year[open]>summary{background:#eaf3fb;border-bottom:1px solid var(--line)}.contract-year-badge{display:grid;place-items:center;min-width:66px;height:42px;border-radius:12px;background:var(--navy);color:#fff;font-weight:900}.contract-year-body{padding:14px;background:#f9fbfd}.contract-client{border:1px solid #dce6ef;border-radius:13px;background:#fff;margin-bottom:12px;overflow:hidden}.contract-client:last-child{margin-bottom:0}.contract-client>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;background:#fff}.contract-client[open]>summary{background:#f3f8fc;border-bottom:1px solid #e3ebf3}.contract-client>summary span{color:var(--muted);font-size:11px}.contract-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px;padding:12px}.contract-year-body>.contract-card-grid{padding:0}.contract-portfolio-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:13px;padding:13px;background:#fff}.contract-portfolio-main{display:flex;align-items:center;gap:11px;min-width:0}.contract-code{flex:0 0 auto;min-width:48px;height:40px;padding:0 9px;border-radius:10px;background:#e7f1fa;color:#075a9c;display:grid;place-items:center;font-size:11px;font-weight:900}.contract-portfolio-main>div{min-width:0}.contract-portfolio-main h3{margin:0;color:var(--navy);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contract-portfolio-main p{margin:4px 0 0;color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contract-portfolio-meta{grid-column:1/2;display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:10px;color:var(--muted)}.contract-portfolio-card>.btn{grid-column:2;grid-row:1/3;white-space:nowrap}.approval-guide{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,1fr);gap:18px;background:linear-gradient(135deg,#fff,#eef6fc);border:1px solid var(--line);border-radius:18px;padding:20px;margin-bottom:14px;box-shadow:var(--shadow)}.approval-guide h2{margin:5px 0 8px;color:var(--navy)}.approval-guide p{margin:0;color:var(--muted);line-height:1.5}.approval-guide-steps{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.approval-guide-steps>div{display:flex;gap:10px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px}.approval-guide-steps b{width:25px;height:25px;border-radius:8px;background:var(--blue);color:#fff;display:grid;place-items:center}.approval-guide-steps strong,.approval-guide-steps small{display:block}.approval-guide-steps small{color:var(--muted);margin-top:3px}.approval-use-cases{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.approval-use-cases button{border:1px solid var(--line);border-radius:13px;background:#fff;padding:13px;text-align:left;cursor:pointer}.approval-use-cases button:hover{border-color:#83b7dd;background:#f5faff}.approval-use-cases strong,.approval-use-cases span{display:block}.approval-use-cases strong{color:var(--navy)}.approval-use-cases span{color:var(--muted);font-size:10px;margin-top:4px}
@media(max-width:1000px){.contract-portfolio-kpis{grid-template-columns:repeat(2,1fr)}.approval-guide{grid-template-columns:1fr}.approval-use-cases{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.contract-portfolio-kpis,.approval-use-cases,.approval-guide-steps{grid-template-columns:1fr}.contract-year>summary,.contract-client>summary{align-items:flex-start;flex-direction:column}.contract-card-grid{grid-template-columns:1fr}.contract-portfolio-card{grid-template-columns:1fr}.contract-portfolio-card>.btn{grid-column:1;grid-row:auto;width:100%}.contract-portfolio-meta{grid-column:1}.approval-guide{padding:15px}}

/* V8.4.0 - normalización de EDP migrados */
.payment-editor-body .success-note{margin:12px 0}.payment-client-row .tag.inferred{background:#eefaf5;color:#176747}

/* V8.4.1 - identificación robusta de anticipos históricos */
.tag.inferred-kind{outline:1px dashed #6da9d6;}


/* V8.4.2 - partidas contractuales negativas y descuentos en EDP */
.payment-table tr:has(td strong:last-child){}

/* V8.4.3 - IVA automatico y resumen neto */
.automatic-tax-box{background:#eef8ff;border:1px solid #b9d9ef;border-radius:12px;padding:12px}.automatic-tax-box span,.automatic-tax-box small{display:block}.automatic-tax-box strong{font-size:20px;color:var(--navy);margin:4px 0}.automatic-tax-box small{font-weight:500;color:var(--muted);line-height:1.35}.payment-filter-summary>div:last-child{background:#e9f8f2;border-color:#bde5d4}.payment-filter-summary>div:last-child strong{color:#08744f}
@media(max-width:1050px){.payment-filter-summary{grid-template-columns:repeat(3,1fr)}}


/* V8.4.5 - encabezado dinámico, totales y resumen histórico EDP */
.payment-live-header{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0;padding:12px;background:#edf4fa;border:1px solid #cbddeb;border-radius:14px}.payment-live-header>div{background:#fff;border:1px solid #d8e4ef;border-radius:11px;padding:12px}.payment-live-header small{display:block;color:#64748b;font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:800}.payment-live-header strong{display:block;color:#0a2747;font-size:20px;margin-top:5px}.payment-live-header .total{background:#e9f8f1;border-color:#a9dec4}.payment-live-header .total strong{color:#0b7652}.payment-table tfoot td{background:#eaf3fb!important;color:#0a2747;font-weight:900;border-top:2px solid #1769aa}.payment-history-summary{margin-top:16px}@media(max-width:760px){.payment-live-header{grid-template-columns:1fr}}

/* V8.4.6 - resumen histórico según planilla Excel y totales simplificados */

/* V8.4.7 */
.history-table th{white-space:nowrap}.history-table td{font-variant-numeric:tabular-nums}

/* V8.5.0 presupuestos adicionales */
.emphasis-info{background:#eaf8f1!important;border-color:#9fd8bb!important}.retention-alert{margin:14px 0;background:#fff4df!important;border:1px solid #f0b95d!important;color:#7a4a00!important}.budget-additional-meta{margin:14px 0;padding:14px;border:1px solid #cbdcec;border-radius:14px;background:#f7fbff}.project-header-stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important}.budget-history-row .tag{white-space:nowrap;text-transform:capitalize}

.budget-origin{display:inline-flex!important;width:max-content;margin-top:5px;padding:3px 8px;border-radius:999px;font-style:normal!important;font-size:11px}.budget-origin.approved{background:#e8f7ef;color:#12694a}.budget-origin.pending{background:#fff1d6;color:#8a5500}.budget-file-state{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.budget-summary-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))!important}

/* V12.1 login y selector premium */
.premium-login{grid-template-columns:minmax(560px,1.22fr) minmax(440px,.78fr);background:#eef2f6}
.premium-visual{min-height:100vh;padding:clamp(42px,6vw,92px);background:linear-gradient(145deg,#06182c 0%,#0a2a4d 46%,#104d79 100%);isolation:isolate;justify-content:space-between}
.premium-visual:before,.premium-visual:after{display:none}
.premium-grid{position:absolute;inset:0;z-index:-3;opacity:.18;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(to bottom right,rgba(0,0,0,.9),transparent 78%)}
.premium-grid:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 0 55%,rgba(255,255,255,.035) 55% 55.4%,transparent 55.4% 100%)}
.premium-glow{position:absolute;border-radius:999px;filter:blur(2px);z-index:-2;pointer-events:none}
.glow-one{width:520px;height:520px;right:-180px;top:-160px;background:radial-gradient(circle,rgba(58,139,201,.28),rgba(58,139,201,0) 68%);border:1px solid rgba(255,255,255,.08)}
.glow-two{width:430px;height:430px;left:-180px;bottom:-200px;background:radial-gradient(circle,rgba(175,48,56,.18),rgba(175,48,56,0) 70%);border:1px solid rgba(255,255,255,.055)}
.premium-brand{max-width:760px;position:relative;z-index:1}
.premium-logo{width:112px;max-height:84px;object-fit:contain;object-position:left center;filter:brightness(0) invert(1);margin-bottom:42px}
.premium-eyebrow{font-size:12px;font-weight:900;letter-spacing:.26em;color:#9ec3df;margin-bottom:18px}
.premium-visual h1{font-size:clamp(42px,5vw,70px);line-height:1.01;letter-spacing:-.055em;margin:0 0 24px;max-width:820px}
.premium-visual h1 span{color:#b9d8ed;font-weight:650}
.premium-visual p{font-size:clamp(16px,1.45vw,21px);line-height:1.6;color:#d1e2ef;max-width:690px;margin:0}
.premium-capabilities{display:flex;gap:10px;flex-wrap:wrap;margin-top:32px}
.premium-capabilities span{border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.065);backdrop-filter:blur(10px);padding:9px 13px;border-radius:999px;color:#d9e9f5;font-size:11px;font-weight:800;letter-spacing:.035em}
.premium-footer{display:flex;justify-content:space-between;gap:24px;align-items:center;color:#87a9c4;font-size:10px;letter-spacing:.08em;text-transform:uppercase;position:relative;z-index:1}
.premium-form-wrap{background:radial-gradient(circle at 50% 38%,#fff 0,#f4f7fa 48%,#eaf0f5 100%);padding:clamp(24px,5vw,72px);position:relative}
.premium-form-wrap:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at center,rgba(16,77,121,.045) 0 1px,transparent 1.5px);background-size:22px 22px;mask-image:radial-gradient(circle at center,#000,transparent 76%);pointer-events:none}
.premium-form-stage{width:min(470px,100%);position:relative;z-index:1}
.premium-kicker{text-align:center;font-size:10px;font-weight:900;letter-spacing:.24em;color:#56738d;margin-bottom:15px}
.premium-card{width:100%;border-radius:26px;padding:clamp(28px,3.2vw,42px);border:1px solid rgba(168,187,204,.48);box-shadow:0 30px 85px rgba(10,39,71,.15),0 4px 16px rgba(10,39,71,.045);background:rgba(255,255,255,.93);backdrop-filter:blur(18px)}
.premium-card-head{margin-bottom:26px}
.premium-card h2{font-size:32px;letter-spacing:-.035em;margin:0;color:#0a2747}
.premium-card p{font-size:13px;line-height:1.55;margin:8px 0 0;color:#718297}
.premium-card label{font-size:11px;letter-spacing:.02em;color:#29445d;margin:18px 0 8px}
.premium-input-wrap{position:relative}
.premium-input{height:52px;padding-left:46px!important;padding-right:58px!important;border-radius:13px!important;border-color:#cfdae5!important;background:#fbfcfe!important;font-size:14px!important}
.premium-input:focus{background:#fff!important;border-color:#4f91c2!important;box-shadow:0 0 0 4px rgba(23,105,170,.095)!important}
.premium-input-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:7px;display:grid;place-items:center;background:#edf4fa;color:#1a679e;font-size:11px;font-weight:900;z-index:2}
.premium-eye{position:absolute;right:13px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#4b6a84;font-size:11px;font-weight:900;cursor:pointer;padding:7px}
.premium-submit{height:52px;border-radius:13px!important;background:linear-gradient(135deg,#1769aa,#0d4d7c)!important;box-shadow:0 12px 28px rgba(23,105,170,.24);font-size:14px;margin-top:24px!important}
.premium-submit:hover{box-shadow:0 16px 32px rgba(23,105,170,.3)}
.premium-submit:disabled{opacity:.65;cursor:wait;transform:none}
.premium-error{margin-top:16px;border-radius:12px;padding:12px 14px;background:#fff0f1;border:1px solid #f3c7cb;color:#a62c36;font-size:12px;font-weight:700}
.premium-help{text-align:center;color:#8393a3;font-size:10px;margin-top:18px;line-height:1.45}
.premium-security{display:flex;align-items:center;justify-content:center;gap:11px;margin-top:20px;color:#526b81}
.premium-lock{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:#e7f4ee;color:#18734e;font-weight:900}
.premium-security strong{display:block;font-size:11px;color:#324c64}
.premium-security small{display:block;font-size:9px;margin-top:2px;color:#8393a3}
@media(max-width:980px){.premium-login{grid-template-columns:1fr}.premium-visual{min-height:44vh;padding:42px 28px}.premium-logo{width:92px;margin-bottom:26px}.premium-visual h1{font-size:42px}.premium-footer{margin-top:48px}.premium-form-wrap{padding:38px 20px 52px}.premium-form-stage{margin:auto}}
@media(max-width:560px){.premium-visual{min-height:39vh;padding:30px 22px}.premium-visual h1{font-size:34px}.premium-visual p{font-size:14px}.premium-capabilities span:nth-child(n+3){display:none}.premium-footer{display:none}.premium-card{padding:26px 21px;border-radius:20px}.premium-card h2{font-size:28px}}

/* V12.0.2 - Portada corporativa premium y selector de módulos */
.premium-brand-lockup{display:flex;align-items:center;gap:18px;margin-bottom:42px}.premium-logo-frame{width:92px;height:92px;border-radius:24px;background:rgba(255,255,255,.96);display:grid;place-items:center;padding:13px;box-shadow:0 18px 45px rgba(0,0,0,.22),inset 0 0 0 1px rgba(255,255,255,.65)}.premium-logo-frame .premium-logo{width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;filter:none;margin:0}.premium-company{font-size:22px;font-weight:900;letter-spacing:.13em;color:#fff}.premium-brand-lockup .premium-eyebrow{margin:0 0 5px;color:#9fc4df}.premium-form-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;margin-bottom:18px;background:linear-gradient(135deg,#0b3359,#126da9);color:#fff;font-size:13px;font-weight:900;letter-spacing:.08em;box-shadow:0 10px 24px rgba(16,83,130,.2)}

.premium-gateway{min-height:100vh;background:#f3f6fa;color:#0b2742;position:relative;overflow:hidden}.premium-gateway-topbar{height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(26px,5vw,76px);background:rgba(255,255,255,.94);border-bottom:1px solid #e3e9ef;backdrop-filter:blur(18px);position:relative;z-index:3}.premium-gateway-lockup{display:flex;align-items:center;gap:15px}.gateway-logo-frame{width:58px;height:58px;border-radius:17px;display:grid;place-items:center;padding:7px;background:#fff;border:1px solid #e2e9ef;box-shadow:0 10px 25px rgba(11,39,66,.08)}.gateway-logo-frame img{width:100%;height:100%;object-fit:contain}.premium-gateway-lockup span,.gateway-user span{display:block;font-size:9px;letter-spacing:.19em;font-weight:900;color:#7890a5}.premium-gateway-lockup strong{display:block;font-size:18px;letter-spacing:.09em;margin-top:3px}.gateway-user{display:flex;align-items:center;gap:11px}.gateway-user-avatar{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#0b2b4b;color:#fff;font-weight:900;box-shadow:0 8px 18px rgba(11,43,75,.18)}.gateway-user strong{display:block;font-size:12px;margin-top:2px;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gateway-logout{border:1px solid #d9e2ea;background:#fff;color:#294761;border-radius:11px;padding:10px 14px;font-size:11px;font-weight:900;cursor:pointer;margin-left:8px}.gateway-logout:hover{background:#f1f6fa}
.premium-gateway-hero{min-height:385px;padding:clamp(52px,6vw,86px) clamp(26px,6vw,96px);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:36px;background:linear-gradient(135deg,#06192e 0%,#0a3157 54%,#0e5682 100%);color:#fff;position:relative;overflow:hidden}.gateway-hero-grid{position:absolute;inset:0;opacity:.18;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:68px 68px;mask-image:linear-gradient(100deg,#000 0%,rgba(0,0,0,.68) 55%,transparent 100%)}.premium-gateway-hero:before{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(255,255,255,.09);border-radius:50%;right:-105px;top:-275px;box-shadow:0 0 0 72px rgba(255,255,255,.022),0 0 0 145px rgba(255,255,255,.016)}.premium-gateway-hero:after{content:"";position:absolute;left:-140px;bottom:-190px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(162,46,48,.22),transparent 69%)}.gateway-hero-content{position:relative;z-index:1;max-width:940px}.gateway-overline{display:block;font-size:11px;font-weight:900;letter-spacing:.25em;color:#9ec7e2;margin-bottom:20px}.gateway-hero-content h1{font-size:clamp(42px,5.3vw,72px);line-height:1.02;letter-spacing:-.055em;margin:0 0 22px}.gateway-hero-content h1 em{font-style:normal;color:#bddcf0;font-weight:650}.gateway-hero-content p{font-size:clamp(15px,1.35vw,19px);line-height:1.65;color:#d4e4ef;max-width:790px;margin:0}.gateway-pill-row{display:flex;gap:9px;flex-wrap:wrap;margin-top:27px}.gateway-pill-row span{padding:8px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.07);font-size:10px;font-weight:800;color:#dceaf4}.gateway-hero-signature{position:relative;z-index:1;text-align:right;border-left:1px solid rgba(255,255,255,.16);padding-left:34px;min-width:190px}.gateway-hero-signature span{display:block;color:#9fc4df;font-size:11px;letter-spacing:.16em;text-transform:uppercase}.gateway-hero-signature strong{display:block;font-size:34px;margin-top:6px;letter-spacing:-.04em}
.premium-modules-wrap{max-width:1500px;margin:0 auto;padding:48px clamp(22px,4vw,58px) 42px}.premium-modules-head{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:26px}.premium-modules-head span{font-size:10px;font-weight:900;letter-spacing:.22em;color:#778b9f}.premium-modules-head h2{font-size:31px;letter-spacing:-.035em;margin:7px 0 0}.premium-modules-head p{max-width:570px;text-align:right;color:#6b7e90;font-size:13px;line-height:1.55;margin:0}.premium-modules-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.premium-module-card{min-height:238px;border:1px solid #dde6ee;border-radius:24px;background:rgba(255,255,255,.96);padding:24px;text-align:left;display:grid;grid-template-columns:52px 1fr auto;grid-template-rows:auto auto 1fr auto;gap:0 15px;position:relative;cursor:pointer;box-shadow:0 15px 40px rgba(11,39,66,.065);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;overflow:hidden;color:#0b2742}.premium-module-card:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--module-color,#0f6aa5)}.premium-module-card:after{content:"";position:absolute;right:-55px;bottom:-72px;width:150px;height:150px;border-radius:50%;background:color-mix(in srgb,var(--module-color,#0f6aa5) 7%,transparent);transition:.2s ease}.premium-module-card:hover{transform:translateY(-5px);box-shadow:0 24px 58px rgba(11,39,66,.13);border-color:color-mix(in srgb,var(--module-color,#0f6aa5) 40%,#dce5ed)}.premium-module-card:hover:after{transform:scale(1.18)}.premium-module-icon{grid-column:1;grid-row:1/3;width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:color-mix(in srgb,var(--module-color,#0f6aa5) 11%,white);color:var(--module-color,#0f6aa5);font-size:13px;font-weight:950;letter-spacing:.05em}.premium-module-number{grid-column:3;grid-row:1;font-size:10px;letter-spacing:.18em;color:#96a5b4;font-weight:900}.premium-module-card strong{grid-column:2/4;grid-row:2;font-size:23px;letter-spacing:-.03em;margin:7px 0 0}.premium-module-card p{grid-column:1/4;grid-row:3;color:#687c90;font-size:13px;line-height:1.55;margin:20px 0 24px;max-width:390px}.premium-module-link{grid-column:1/4;grid-row:4;font-size:12px;font-weight:900;color:var(--module-color,#0f6aa5);display:flex;align-items:center;justify-content:space-between;border-top:1px solid #edf1f5;padding-top:16px}.premium-module-link b{font-size:18px;transition:transform .2s}.premium-module-card:hover .premium-module-link b{transform:translateX(4px)}.premium-module-card.card-gihp{--module-color:#11649a}.premium-module-card.card-construction{--module-color:#d55d0b}.premium-module-card.card-financial{--module-color:#2675c7}.premium-module-card.card-execution{--module-color:#a84e0e}.premium-module-card.card-terrain{--module-color:#19855d}.premium-module-card.card-clients{--module-color:#6957ba}.premium-gateway-footer{max-width:1500px;margin:0 auto;padding:0 clamp(22px,4vw,58px) 30px;display:flex;justify-content:space-between;color:#8b9aaa;font-size:9px;letter-spacing:.11em;text-transform:uppercase}
@media(max-width:1050px){.premium-modules-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.premium-gateway-hero{grid-template-columns:1fr}.gateway-hero-signature{text-align:left;border-left:0;border-top:1px solid rgba(255,255,255,.15);padding:20px 0 0}.premium-modules-head{align-items:flex-start;flex-direction:column}.premium-modules-head p{text-align:left}}
@media(max-width:700px){.premium-gateway-topbar{height:auto;padding:15px 18px}.gateway-user>div:not(.gateway-user-avatar){display:none}.gateway-logout{padding:9px 11px;margin-left:0}.gateway-logo-frame{width:48px;height:48px}.premium-gateway-lockup strong{font-size:15px}.premium-gateway-hero{min-height:390px;padding:48px 22px}.gateway-hero-content h1{font-size:40px}.gateway-pill-row span:nth-child(n+3){display:none}.premium-modules-wrap{padding:34px 16px}.premium-modules-grid{grid-template-columns:1fr}.premium-module-card{min-height:215px}.premium-gateway-footer{padding:0 18px 24px;flex-direction:column;gap:6px}.premium-brand-lockup{margin-bottom:28px}.premium-logo-frame{width:72px;height:72px;border-radius:20px}.premium-company{font-size:18px}}

/* V12.10.1 - Interfaz premium estabilizada */
.minimal-login{min-height:100vh;display:grid;place-items:center;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 45%,#fff 0,#f8fafc 48%,#eef3f8 100%);padding:90px 24px 40px}.login-brandline{position:absolute;left:4vw;top:30px;display:flex;align-items:center;gap:15px;color:#082a4a}.login-brandline img{width:56px;height:48px;object-fit:contain}.login-brandline strong{padding-left:15px;border-left:1px solid #d8e1ea}.chile-outline{position:absolute;height:92vh;width:260px;left:50%;top:4vh;transform:translateX(-50%);opacity:.16}.chile-outline path,.gateway-chile path{fill:none;stroke:#125fa0;stroke-width:2.2}.login-rings{position:absolute;width:min(820px,86vw);aspect-ratio:1;border:1px solid rgba(18,95,160,.06);border-radius:50%;box-shadow:0 0 0 90px rgba(18,95,160,.025),0 0 0 180px rgba(18,95,160,.015)}.minimal-login-card{position:relative;z-index:2;width:min(470px,94vw);background:rgba(255,255,255,.94);border:1px solid #dfe7ef;border-radius:26px;padding:40px 48px;box-shadow:0 30px 85px rgba(8,42,74,.14);backdrop-filter:blur(15px)}.login-center-logo{display:block;width:96px;height:80px;object-fit:contain;margin:0 auto 20px}.minimal-login-card h1{text-align:center;font-size:29px;margin:0 0 7px}.minimal-login-card>p{text-align:center;color:#718096;font-size:13px;margin:0 0 28px}.minimal-login-card label{display:block;font-size:11px;font-weight:800;margin:16px 0 7px;color:#304962}.minimal-login-card .field{width:100%;height:50px;border:1px solid #cfdae5;background:#fbfcfe;padding:0 14px}.pass-row{position:relative}.pass-row .field{padding-right:62px}.pass-row button{position:absolute;right:8px;top:7px;height:36px;border:0;background:transparent;color:#42617c;font-weight:800;cursor:pointer}.minimal-submit{width:100%;height:50px;border:0;border-radius:12px;background:#082a4a;color:#fff;font-weight:900;margin-top:24px;cursor:pointer}.minimal-login-card small{display:block;text-align:center;color:#8291a0;margin-top:22px}.minimal-gateway{min-height:100vh;position:relative;overflow:hidden;background:radial-gradient(circle at 78% 30%,#fff 0,#f8fafc 42%,#eef3f8 100%)}.minimal-gateway header{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;background:rgba(255,255,255,.9);border-bottom:1px solid #e4eaf0;position:relative;z-index:3}.gateway-brand,.gateway-account{display:flex;align-items:center;gap:12px}.gateway-brand img{width:54px;height:48px;object-fit:contain}.gateway-account>span{width:40px;height:40px;border:1px solid #dbe4ed;border-radius:50%;display:grid;place-items:center;color:#082a4a;font-weight:900;background:#fff}.gateway-account button{border:0;background:transparent;color:#718096;font-weight:800;cursor:pointer}.gateway-chile{position:absolute;right:8vw;top:10vh;height:84vh;width:230px;opacity:.09}.gateway-main{max-width:1320px;margin:auto;padding:68px 32px 80px;position:relative;z-index:2}.gateway-copy>span{font-size:11px;letter-spacing:.24em;font-weight:900;color:#617d97}.gateway-copy h1{font-size:52px;margin:12px 0 8px}.gateway-copy p{color:#718096;font-size:17px;margin:0 0 38px}.minimal-modules-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:1050px;margin:auto}.minimal-module-card{position:relative;min-height:260px;text-align:left;border:1px solid #e1e8ef;background:rgba(255,255,255,.96);border-radius:20px;padding:30px;box-shadow:0 18px 50px rgba(8,42,74,.08);cursor:pointer;color:#17263a;transition:.2s;display:flex;flex-direction:column}.minimal-module-card:hover{transform:translateY(-3px);border-color:#bfd0df}.module-no{position:absolute;left:30px;top:25px;color:#125fa0;font-size:11px;font-weight:900}.module-symbol{width:52px;height:52px;border-radius:16px;background:#edf4fa;color:#125fa0;display:grid;place-items:center;font-weight:900;margin:30px 0 18px}.minimal-module-card strong{font-size:24px;color:#082a4a}.minimal-module-card p{color:#718096;line-height:1.55;font-size:14px;max-width:420px;margin:8px 0 14px}.client-badge{align-self:flex-start;border-radius:999px;background:#eef4fa;color:#496b88;padding:6px 10px;font-size:10px;font-weight:800}.module-open{margin-top:auto;border-top:1px solid #edf1f5;padding-top:20px;color:#082a4a;font-weight:900;display:flex;justify-content:space-between}.module-open b{font-size:20px}.app-shell{grid-template-columns:220px minmax(0,1fr)!important}.sidebar{background:#fff!important;color:#304962!important;border-right:1px solid #e4eaf0!important}.brandbox{border-bottom:1px solid #edf1f5!important}.brandtitle{color:#082a4a!important}.brandsub,.sidefoot{color:#718096!important}.navitem{color:#51677b!important}.navitem:hover{background:#f4f7fa!important;color:#082a4a!important}.navitem.active{background:#edf4fa!important;color:#125fa0!important;box-shadow:none!important}.navicon{background:#f2f5f8!important;color:#60758a!important}.content{padding:28px 32px!important}.hero h1{font-size:30px!important}.cards{gap:12px!important}.metric{box-shadow:none!important}.panel{box-shadow:none!important}.drawer{background:#f7f9fb!important}.drawer-head{padding:16px 22px!important}.project-header{border-radius:18px!important}.tabs.project-tabs{position:sticky;top:0;z-index:2}.info-grid{gap:10px!important}.info{padding:15px!important;box-shadow:none!important}
@media(max-width:760px){.minimal-modules-grid{grid-template-columns:1fr}.gateway-copy h1{font-size:38px}.minimal-login-card{padding:30px 24px}.login-brandline{left:20px}.gateway-account strong{display:none}.gateway-main{padding:42px 18px}.minimal-module-card{min-height:230px}.gateway-chile{display:none}}

/* V12.10.6 - financiero limpio: Mandantes y Estados de pago */
.clean-contract-panel,.clean-edp-panel,.clean-project-panel{overflow:hidden}
.clean-contract-panel .panel-head,.clean-edp-panel .panel-head,.clean-project-panel .panel-head{border-bottom:1px solid #e8edf3}
.contract-portfolio-kpis .metric,.edp-kpis .edp-kpi{border-radius:12px}
.clean-contract-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:0}
.clean-client-list{border-right:1px solid #e8edf3;background:#f8fafc;padding:12px;display:grid;align-content:start;gap:8px;max-height:62vh;overflow:auto}
.clean-client-list button{border:1px solid #e0e8f0;background:#fff;border-radius:10px;padding:10px 12px;text-align:left;cursor:pointer}
.clean-client-list button:hover{border-color:#9cc2df;background:#f5faff}
.clean-client-list strong,.clean-client-list span{display:block}
.clean-client-list strong{font-size:12px;color:#0a2747;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.clean-client-list span{font-size:10px;color:#718096;margin-top:3px}
.clean-contract-table{max-height:62vh}
.clean-contract-table table,.clean-edp-table{min-width:980px}
.clean-contract-table td strong,.clean-edp-table td strong{display:block;color:#0a2747}
.clean-contract-table td small,.clean-edp-table td small{display:block;color:#718096;font-size:10px;margin-top:3px}
.clean-alerts{grid-template-columns:repeat(5,minmax(0,1fr))}
.clean-edp-panel{margin-top:14px}
.clean-edp-table td{vertical-align:middle}
.clean-edp-table .days-late{color:#a92c37;font-weight:900}
.clean-project-panel{margin-top:14px}
.clean-project-list{display:grid;gap:0}
.clean-project-list button{border:0;border-bottom:1px solid #edf1f5;background:#fff;padding:13px 16px;display:flex;justify-content:space-between;align-items:center;gap:18px;text-align:left;cursor:pointer}
.clean-project-list button:last-child{border-bottom:0}
.clean-project-list button:hover{background:#f8fbff}
.clean-project-list strong,.clean-project-list span{display:block}
.clean-project-list strong{color:#0a2747;font-size:13px}
.clean-project-list span{color:#718096;font-size:11px;margin-top:3px}
.clean-project-list b{color:#0a2747;white-space:nowrap}
@media(max-width:900px){.clean-contract-layout{grid-template-columns:1fr}.clean-client-list{border-right:0;border-bottom:1px solid #e8edf3;max-height:none;grid-template-columns:repeat(2,minmax(0,1fr))}.clean-alerts{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.clean-client-list,.clean-alerts{grid-template-columns:1fr}.clean-project-list button{align-items:flex-start;flex-direction:column}.clean-project-list b{white-space:normal}}

/* V8.6.6 - Directorio automatico de destinatarios Outlook */
.mail-contact-directory{border:1px solid #cbdbe8;border-radius:16px;background:#f8fbfe;padding:14px;display:grid;gap:12px}
.mail-contact-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.mail-contact-head>div{display:grid;gap:3px}.mail-contact-head span{font-weight:900;color:#123c63;font-size:14px}.mail-contact-head small{color:#657d91;line-height:1.4}
.mail-contact-list{display:grid;gap:7px;max-height:230px;overflow:auto;padding-right:2px}
.mail-contact-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #dbe6ef;background:#fff;border-radius:12px;padding:9px 10px}
.mail-contact-row>div:first-child{min-width:0;display:grid;gap:2px}.mail-contact-row strong{color:#153b5d;font-size:12.5px}.mail-contact-row span{color:#38566f;font-size:11.5px;overflow-wrap:anywhere}.mail-contact-row small{color:#7a8fa1;font-size:10.5px}
.mail-contact-actions{display:flex;gap:6px;flex:0 0 auto}.mail-contact-actions .btn{white-space:nowrap}
.mail-contact-empty{padding:11px;border:1px dashed #cfdce7;border-radius:10px;color:#6d8396;background:#fff;font-size:12px}
.mail-contact-search{position:relative}.mail-contact-search-results{display:none;position:absolute;z-index:20;left:0;right:0;top:calc(100% + 5px);background:#fff;border:1px solid #cbdbe8;border-radius:12px;box-shadow:0 14px 30px rgba(16,42,67,.15);padding:8px;max-height:260px;overflow:auto}.mail-contact-search-results.show{display:grid;gap:6px}
.mail-remember{display:flex;align-items:center;gap:8px;color:#284b69;font-weight:700;font-size:12px}.mail-remember input{width:16px;height:16px}
.mail-sync-note,.mail-sync-success,.mail-sync-warning{border-radius:10px;padding:9px 11px;font-size:11.5px;line-height:1.4}.mail-sync-note{background:#eef5fb;color:#315b7b}.mail-sync-success{background:#edf8f2;color:#176b4e}.mail-sync-warning{background:#fff7e8;color:#805900;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mail-sync-warning strong{color:#6a4700}.mail-sync-warning span{flex:1 1 320px}
@media(max-width:720px){.mail-contact-head,.mail-contact-row{align-items:stretch;flex-direction:column}.mail-contact-actions{width:100%}.mail-contact-actions .btn{flex:1}.mail-contact-list{max-height:300px}}

/* V8.6.16 - conciliacion ejecutiva */
.exec-recon-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.exec-kpi{background:#fff;border:1px solid #d8e3ed;border-radius:14px;padding:16px;min-height:126px;display:flex;flex-direction:column;gap:4px;box-shadow:0 5px 18px rgba(20,55,85,.04)}.exec-kpi small{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#6b8195}.exec-kpi strong{font-size:25px;line-height:1.08;color:#102a43;margin-top:5px}.exec-kpi>span{font-size:14px;font-weight:700;color:#45647e}.exec-kpi em{font-style:normal;font-size:11px;color:#74889a;margin-top:auto}.exec-kpi.good{border-color:#a8d9c1;background:#f5fbf8}.exec-kpi.warning{border-color:#efc46d;background:#fffaf1}.exec-kpi.danger{border-color:#efb2a8;background:#fff8f6}.executive-recon-panel{margin-top:14px}.exec-project-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:14px}.exec-project-card{border:1px solid #d7e2ec;border-radius:14px;background:#fff;padding:15px;box-shadow:0 3px 14px rgba(18,56,85,.035)}.exec-project-head,.exec-project-title,.exec-project-actions,.exec-project-progress>div:first-child,.exec-project-foot{display:flex;align-items:center}.exec-project-head{justify-content:space-between;gap:12px}.exec-project-title{gap:10px;min-width:0}.exec-project-title h3{margin:0 0 3px;font-size:15px;color:#102a43}.exec-project-title p{margin:0;color:#71869a;font-size:11px}.exec-project-actions{gap:8px;flex-shrink:0}.exec-project-progress{margin:13px 0 11px}.exec-project-progress>div:first-child{justify-content:space-between;font-size:11px;color:#6c8194;margin-bottom:5px}.exec-project-progress strong{color:#123c63}.exec-fin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.exec-fin-grid>div{background:#f6f9fc;border:1px solid #e2eaf1;border-radius:9px;padding:9px;min-width:0}.exec-fin-grid>div.paid{background:#f3faf6;border-color:#cce7d8}.exec-fin-grid>div.pending{background:#fff9ec;border-color:#f2d69a}.exec-fin-grid>div.receivable{background:#fff7f5;border-color:#efc5bc}.exec-fin-grid small{display:block;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.045em;color:#72869a;margin-bottom:4px}.exec-money-main,.exec-money-sub{display:block}.exec-money-main{font-weight:800;color:#102a43;font-size:14px}.exec-money-sub{font-size:10px;color:#657d91;margin-top:2px}.exec-project-foot{gap:12px;flex-wrap:wrap;border-top:1px solid #e7edf3;margin-top:10px;padding-top:9px;color:#71869a;font-size:10px}.project-exec-kpis{margin-top:0}.executive-recon-hero p{max-width:780px}
@media(max-width:1180px){.exec-recon-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.exec-project-list{grid-template-columns:1fr}.exec-fin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.exec-recon-kpis{grid-template-columns:1fr}.exec-fin-grid{grid-template-columns:1fr}.exec-project-head{align-items:flex-start;flex-direction:column}.exec-project-actions{width:100%;justify-content:space-between}}


/* V8.6.17 · Reporte ejecutivo interno de cobranza */
.exec-report-layer{position:fixed;inset:0;z-index:10000;background:#eef3f8;overflow:auto;padding:24px}.exec-report-loading{max-width:520px;margin:15vh auto;background:#fff;border:1px solid #d6e1eb;border-radius:16px;padding:28px;text-align:center;box-shadow:0 20px 50px rgba(16,42,67,.12)}.exec-report-shell{max-width:1580px;margin:0 auto}.exec-report-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;background:#fff;border:1px solid #d6e1eb;border-radius:16px;padding:24px;margin-bottom:16px}.exec-report-head h1{margin:5px 0 4px;font-size:28px;color:#102a43}.exec-report-head p{margin:0;color:#667f96}.exec-report-actions{display:flex;gap:8px;flex-wrap:wrap}.exec-report-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.exec-report-explain{background:#fff;border:1px solid #d6e1eb;border-left:4px solid #1769aa;border-radius:12px;padding:12px 15px;color:#36546d;margin-bottom:12px}.exec-report-filters{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:10px;background:#fff;border:1px solid #d6e1eb;border-radius:14px;padding:12px;margin-bottom:12px}.exec-report-summary{display:flex;gap:10px;flex-wrap:wrap;align-items:center;background:#102f4d;color:#fff;border-radius:12px;padding:11px 14px;margin-bottom:10px}.exec-report-summary span{padding-left:10px;border-left:1px solid rgba(255,255,255,.28);font-size:13px}.exec-report-table-wrap{overflow:auto;background:#fff;border:1px solid #d6e1eb;border-radius:14px}.exec-report-table{width:100%;border-collapse:collapse;min-width:1280px}.exec-report-table th{position:sticky;top:0;background:#123f66;color:#fff;padding:9px 8px;text-align:right;font-size:11px;z-index:2}.exec-report-table th:first-child,.exec-report-table th:nth-child(2){text-align:left}.exec-report-table td{padding:9px 8px;border-bottom:1px solid #dce6ee;text-align:right;vertical-align:middle;font-size:12px}.exec-report-table td:first-child,.exec-report-table td:nth-child(2),.exec-report-table td:last-child{text-align:left}.exec-report-table td strong{display:block;color:#102a43}.exec-report-table td small{display:block;color:#6d8396;margin-top:2px}.exec-report-table .ended-pending{background:#fff9f5}.exec-report-table .ended-warning{color:#b42318;font-weight:700}.exec-report-table .receivable-cell{background:#fff8eb}.exec-report-table .pending-cell{background:#fff3f0}.exec-report-table tfoot td{font-weight:800;background:#e7f0f8;border-top:2px solid #123f66;color:#123f66}.exec-report-footer{display:flex;justify-content:space-between;color:#70869a;font-size:11px;padding:12px 4px}.exec-report-table .exec-money-main{font-weight:800;color:#102a43}.exec-report-table .exec-money-sub{font-size:10px;color:#667f96}
@media(max-width:900px){.exec-report-layer{padding:10px}.exec-report-head{align-items:flex-start;flex-direction:column}.exec-report-kpis{grid-template-columns:1fr 1fr}.exec-report-filters{grid-template-columns:1fr}.exec-report-summary{align-items:flex-start;flex-direction:column}.exec-report-summary span{border-left:0;padding-left:0}}
@media print{body>*:not(.exec-report-layer){display:none!important}.exec-report-layer{position:static!important;inset:auto!important;overflow:visible!important;padding:0!important;background:#fff!important}.exec-report-actions,.exec-report-filters{display:none!important}.exec-report-shell{max-width:none!important}.exec-report-head{border:0!important;padding:0 0 10px!important}.exec-report-table-wrap{overflow:visible!important;border:0!important}.exec-report-table{min-width:0!important;font-size:8px!important}.exec-report-table th,.exec-report-table td{font-size:7px!important;padding:4px 3px!important}.exec-report-kpis{grid-template-columns:repeat(4,1fr)!important}.exec-report-explain{font-size:9px!important}.exec-report-summary{background:#eef4f9!important;color:#102a43!important}.exec-report-footer{font-size:8px!important}}

/* V8.6.19 - Retenciones ejecutivas */
.exec-retention-row{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:8px;background:#fffaf0!important;border:1px solid #efd28c!important;border-radius:10px;padding:9px!important}
.exec-retention-row>div{min-width:0}.exec-retention-row.cobrable{background:#f3faf6!important;border-color:#a9d7bf!important}.exec-retention-row.sin_saldo{background:#f7f9fb!important;border-color:#e0e8ef!important}
.retention-status{display:flex;flex-direction:column;gap:2px;font-size:10px;color:#60788d}.retention-status strong{font-size:12px;color:#173a59}.retention-status small{font-size:9.5px;color:#71869a}.retention-status.due strong{color:#14734d}.retention-status.waiting strong{color:#9a6500}.retention-status.clear strong{color:#477087}
.exec-report-table .retention-cell{background:#fffaf0}.exec-report-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}.exec-report-table{min-width:1540px}
@media(max-width:1280px){.exec-report-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.exec-retention-row{grid-template-columns:1fr}.exec-report-kpis{grid-template-columns:1fr}}
@media print{.exec-report-kpis{grid-template-columns:repeat(5,1fr)!important}.exec-report-table{font-size:6.5px!important}.exec-report-table th,.exec-report-table td{font-size:6.2px!important;padding:3px 2px!important}}

/* V8.6.20 - Centro ejecutivo separado y equilibrio visual EDP */
.exec-dashboard-block{margin-top:14px}.exec-dashboard-block-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:8px}.exec-dashboard-block-head h2{margin:3px 0 0;color:var(--navy);font-size:19px}.exec-subcontract-summary{display:flex;justify-content:space-between;gap:18px;align-items:center;background:#f8fafc;border:1px solid #d8e3ed;border-radius:14px;padding:14px 16px;margin:12px 0}.exec-subcontract-summary h3{margin:3px 0 2px;color:var(--navy);font-size:15px}.exec-subcontract-summary p{margin:0;color:var(--muted);font-size:11px}.exec-subcontract-mini{display:grid;grid-template-columns:repeat(3,minmax(130px,1fr));gap:8px;min-width:min(620px,58%)}.exec-subcontract-mini>div{background:#fff;border:1px solid #e1e9f0;border-radius:10px;padding:9px}.exec-subcontract-mini small{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.05em;font-weight:800;color:#72869a;margin-bottom:4px}.exec-contract-group{border-top:1px solid #e5edf4}.exec-contract-group:first-child{border-top:0}.exec-contract-group>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 15px;background:#f7fafc}.exec-contract-group>summary::-webkit-details-marker{display:none}.exec-contract-group>summary strong{display:block;color:#123c63;font-size:14px}.exec-contract-group>summary small{display:block;color:#72869a;font-size:10px;margin-top:2px}.exec-contract-group>summary>span{font-size:11px;font-weight:800;border-radius:999px;padding:5px 9px;background:#e8f2fb;color:#175c94}.exec-contract-group.subcontrato>summary{background:#faf8f3}.exec-contract-group.subcontrato>summary>span{background:#f4ead0;color:#76520b}.exec-contract-group.subcontrato .exec-project-card{background:#fffdf8}.exec-contract-group .exec-project-list{padding-top:12px}

.payment-card-amount{display:grid;grid-template-columns:repeat(2,minmax(105px,1fr));gap:7px;text-align:left;min-width:250px}.payment-card-amount>div{background:#f7fafe;border:1px solid #e1eaf2;border-radius:10px;padding:8px 10px}.payment-card-amount small{font-size:8px}.payment-card-amount strong{font-size:14px;margin-top:3px;line-height:1.15}.payment-card-amount strong.net-value{color:#08744f}.payment-card-amount>span{grid-column:1/-1;text-align:right;margin-top:0;font-size:10px;color:#4f765f;font-weight:700;padding-right:2px}
@media(max-width:1050px){.exec-subcontract-summary{align-items:flex-start;flex-direction:column}.exec-subcontract-mini{min-width:0;width:100%}.payment-card-amount{min-width:220px}}
@media(max-width:760px){.exec-subcontract-mini{grid-template-columns:1fr}.exec-dashboard-block-head{align-items:flex-start;flex-direction:column}.payment-card-amount{width:100%;min-width:0;grid-template-columns:1fr 1fr}.payment-card-amount>span{text-align:left}}

/* V8.6.24 - Conciliación tributaria Contaline */
.contaline-upload-panel{margin-bottom:14px}.contaline-upload{display:flex;align-items:center;gap:14px;border:1px dashed #b9cadd;background:#f8fbfd;border-radius:14px;padding:18px}.contaline-upload>div{display:flex;flex-direction:column;gap:3px}.contaline-upload strong{color:#102a43}.contaline-upload small{color:#6d8295}.contaline-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}.contaline-kpis .metric{background:#fff;border:1px solid #d9e4ed;border-radius:14px;padding:14px;min-height:104px}.contaline-kpis .metric span{display:block;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#71869a}.contaline-kpis .metric strong{display:block;font-size:22px;color:#102a43;margin:7px 0 3px;letter-spacing:-.025em}.contaline-kpis .metric small{display:block;color:#71869a;font-size:10px}.contaline-kpis .metric.teal{background:#eff9f7;border-color:#b9ddd4}.contaline-kpis .metric.amber{background:#fff9ec;border-color:#efd28c}.contaline-summary-note{margin:0 0 12px;background:#eef5fb;border-left:4px solid #1769aa;border-radius:9px;padding:10px 12px;color:#36546d;font-size:11px}.contaline-table{min-width:1420px}.contaline-table th,.contaline-table td{vertical-align:top}.contaline-table td small{display:block;margin-top:3px;color:#6f8395}.contaline-table tr.contaline-amount_mismatch,.contaline-table tr.contaline-rut_mismatch,.contaline-table tr.contaline-no_contract{background:#fff8f6}.contaline-table tr.contaline-suggest_blank_edp{background:#f4f9fe}.contaline-table tr.contaline-missing_unique_contract,.contaline-table tr.contaline-missing_multi_contract{background:#fffdf5}.contaline-table tr.contaline-credit_note{background:#faf7ff}.tag.purple{background:#eee5ff;color:#6634a6;border-color:#d8c5f5}
@media(max-width:1150px){.contaline-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.contaline-kpis{grid-template-columns:1fr}.contaline-upload{align-items:flex-start;flex-direction:column}}

/* V8.6.25 Conciliacion Contaline - acciones controladas */
.contaline-actions{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:210px}.contaline-actions .select{max-width:260px;font-size:11px;padding:7px}.contaline-actions small{max-width:280px;line-height:1.3}.contaline-saved{display:inline-block;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#21735d;background:#e8f6f0;border:1px solid #b9dece;border-radius:999px;padding:3px 7px}.contaline-table{min-width:1540px}

/* Dashboard separado mandantes/subcontratos */
.exec-mode-tabs{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}.exec-mode-tabs .btn span{opacity:.75;margin-left:5px}.exec-project-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.exec-sequence{display:inline-flex;width:34px;height:34px;border-radius:10px;align-items:center;justify-content:center;background:#eaf3fb;color:#0f4f83;font-weight:800;flex:0 0 auto}.subcontract-clp-grid strong{font-size:17px}.subcontract-kpis .exec-kpi strong{font-size:22px}.jesus-payment-panel{margin:14px 0}.jesus-payment-panel .table td,.jesus-payment-panel .table th{white-space:nowrap}@media(max-width:1050px){.exec-project-list{grid-template-columns:1fr}}


/* V8.6.35C - calendario manual y resumen ampliado Jesús Moreno */
.jesus-summary-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
.jesus-payment-table td:nth-child(4) strong,.jesus-payment-table td:nth-child(4) small{display:block}
.jesus-payment-table td:nth-child(4) small{margin-top:2px;color:var(--muted,#6b7f93)}
.jesus-payment-table .scheduled-empty td{background:#fffaf0}
.jesus-schedule-drawer{max-width:920px}
.jesus-cycle-editor{border:1px solid #dbe5ef;border-radius:12px;padding:16px;margin-top:14px;background:#f8fbfe}
.jesus-cycle-editor h3{margin:0 0 12px;color:#123c63}
@media(max-width:1100px){.jesus-summary-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V8.6.35D - periodos de subcontratos definidos en cada EDP */
.subcontract-period-card{border-color:#b9d8ee;background:#f7fbfe}.subcontract-period-card .notice{margin-top:12px}.subcontract-retention-panel{margin-top:16px}.subcontract-retention-panel .retention-total{display:flex;flex-direction:column;align-items:flex-end}.subcontract-retention-panel .retention-total small{color:#71859a;text-transform:uppercase;font-weight:700;font-size:11px}.subcontract-retention-panel .retention-total strong{font-size:22px;color:#173a59}.jesus-payment-table td small{display:block;color:#71859a;margin-top:3px}.jesus-payment-table td{vertical-align:top}.jesus-payment-table th{white-space:normal}

/* V8.6.35F - filtro mensual/quincenal y acumulados reales subcontratos */
.jesus-period-filters{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-left:auto}
.jesus-period-filters label{display:grid;gap:4px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#6f8396}
.jesus-period-filters .select{min-width:190px;max-width:330px;background:#fff}
.jesus-payment-table{min-width:1550px}
.jesus-payment-table td:nth-child(5),.jesus-payment-table td:nth-child(6){background:#f7fafc}
.jesus-payment-table td:last-child{background:#fffaf0}
@media(max-width:900px){.jesus-period-filters{width:100%;margin-left:0}.jesus-period-filters label{width:100%}.jesus-period-filters .select{width:100%;max-width:none}}

/* V8.6.35G - lectura compacta y conciliación IVA subcontratos */
.compact-jesus-panel .panel-head{padding-bottom:10px}.compact-jesus-panel .panel-sub{max-width:900px}
.jesus-compact-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px 14px 8px}.jesus-compact-summary>div{border:1px solid #d7e2ec;border-radius:10px;background:#fff;padding:9px 11px;min-height:66px}.jesus-compact-summary small{display:block;color:#71859a;text-transform:uppercase;font-weight:800;font-size:9px;letter-spacing:.08em;margin-bottom:5px}.jesus-compact-summary strong{display:block;font-size:17px;line-height:1.1;color:#173a59}.jesus-compact-summary .total{background:#eef9f3;border-color:#9fd4b5}.jesus-compact-summary .warning{background:#fff8ea;border-color:#efc16d}.jesus-period-strip{display:flex;gap:14px;flex-wrap:wrap;padding:7px 14px;margin:0 14px 10px;border:1px solid #d7e2ec;border-radius:9px;background:#f7fafc;color:#536b80;font-size:11px}.jesus-period-strip b{color:#173a59}.compact-edp-summary{min-width:1220px}.compact-edp-summary th,.compact-edp-summary td{font-size:11px;padding:8px 9px}.compact-edp-summary td small{display:block;color:#71859a;margin-top:2px}.compact-edp-summary tfoot td{background:#eaf3fb;font-weight:800;border-top:2px solid #123c63}.compact-edp-summary td:nth-child(n+4){text-align:right}.compact-edp-summary th:nth-child(n+4){text-align:right}
@media(max-width:1200px){.jesus-compact-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V8.6.35I - lectura lineal de subcontratos */
.jesus-linear-summary{display:flex;flex-wrap:wrap;gap:8px 18px;padding:10px 12px;border-top:1px solid #e4ebf2;border-bottom:1px solid #e4ebf2;background:#f8fafc;color:#526b80;font-size:11px}.jesus-linear-summary span{white-space:nowrap}.jesus-linear-summary b{color:#173a59}.subcontract-dashboard-table-wrap{margin:0}.subcontract-dashboard-table th,.subcontract-dashboard-table td{white-space:nowrap;vertical-align:middle}.subcontract-dashboard-table td:nth-child(2){min-width:240px;white-space:normal}.subcontract-dashboard-table td:nth-child(2) small{display:block;color:#71859a;margin-top:3px}.subcontract-dashboard-table .seq-cell,.contract-linear-table .seq-cell{font-weight:800;color:#0f4f83;text-align:center}.contract-linear-table th,.contract-linear-table td{white-space:nowrap;vertical-align:middle}.contract-linear-table td:nth-child(2){min-width:260px;white-space:normal}.contract-linear-table td:nth-child(3){min-width:180px;white-space:normal}.executive-recon-panel #execProjects{padding:0}.executive-recon-panel .subcontract-dashboard-table{margin:0}.executive-recon-panel .subcontract-dashboard-table thead th{position:sticky;top:0;z-index:1}.subcontract-kpis{display:none}
@media(max-width:1100px){.jesus-linear-summary{gap:7px 12px}.subcontract-dashboard-table-wrap,.contract-portfolio-panel .table-wrap{overflow:auto}}

/* V8.6.35J - lectura financiera lineal de subcontratos */
.subcontract-financial-list th,.subcontract-financial-list td{white-space:nowrap;vertical-align:middle}
.subcontract-financial-list td:nth-child(2){white-space:normal;min-width:220px}
.subcontract-financial-list .paid-cell{background:rgba(231,247,239,.45)}
.subcontract-financial-list .pending-cell{background:rgba(255,246,226,.45)}
.linear-progress-cell{min-width:110px;display:flex;align-items:center;gap:8px}
.linear-progress-cell strong{min-width:46px}
.v8-progress.compact{height:6px;min-width:54px;flex:1}

/* V8.6.35K · agrupación financiera de subcontratos */
.subcontract-group-rule{margin:12px 14px 8px;padding:9px 11px;border:1px solid #d9e5ef;border-radius:10px;background:#f7fafc;color:#5b7186;font-size:11px}.subcontract-group-rule strong{color:#163a5a}.grouped-subcontract-table .subcontract-group-heading td{padding:11px 12px!important;background:#f2f6fa;border-top:2px solid #b8cadd;border-bottom:1px solid #d9e4ed}.grouped-subcontract-table .subcontract-group-heading td>div:first-child{display:flex;flex-direction:column;gap:2px}.grouped-subcontract-table .subcontract-group-heading strong{font-size:13px;color:#123b5d}.grouped-subcontract-table .subcontract-group-heading span{font-size:10px;color:#6c8194;font-weight:500}.grouped-subcontract-table .subcontract-group-heading td{display:table-cell}.grouped-subcontract-table .subcontract-group-heading td>div{display:inline-flex;vertical-align:middle}.grouped-subcontract-table .subcontract-group-totals{float:right;gap:12px;align-items:center;flex-wrap:wrap}.grouped-subcontract-table .subcontract-group-totals b{font-size:11px;color:#123b5d}.grouped-subcontract-table .group-active td{background:#f4faf7}.grouped-subcontract-table .group-retention td{background:#fff8e8;border-top-color:#e9bc62}.grouped-subcontract-table .group-finished td{background:#f4f6f8;border-top-color:#b8c2cc}.grouped-subcontract-table .subcontract-empty-group td{text-align:center!important;color:#8091a1;font-style:italic;padding:13px!important;background:#fbfcfd}.grouped-subcontract-table .status-retention .pending-cell{background:rgba(255,244,214,.72)}.grouped-subcontract-table .status-finished{opacity:.78}.subcontract-status-kpis .metric:nth-child(3){border-color:#ebc46f;background:#fffaf0}.subcontract-status-kpis .metric:nth-child(4){background:#f4f6f8}

/* V8.6.35K3 - tabla de subcontratos ajustada al ancho disponible, sin scroll horizontal */
.contract-portfolio-panel .table-wrap:has(.grouped-subcontract-table){overflow-x:hidden!important;overflow-y:visible!important}
.grouped-subcontract-table{width:100%!important;min-width:0!important;table-layout:fixed!important}
.grouped-subcontract-table th,.grouped-subcontract-table td{font-size:10px!important;padding:8px 6px!important;line-height:1.22!important;white-space:normal!important;overflow-wrap:anywhere}
.grouped-subcontract-table th{font-size:8px!important;letter-spacing:.035em!important;vertical-align:bottom!important}
.grouped-subcontract-table th:nth-child(1),.grouped-subcontract-table td:nth-child(1){width:3%}
.grouped-subcontract-table th:nth-child(2),.grouped-subcontract-table td:nth-child(2){width:15%;min-width:0!important}
.grouped-subcontract-table th:nth-child(3),.grouped-subcontract-table td:nth-child(3){width:9%;min-width:0!important}
.grouped-subcontract-table th:nth-child(4),.grouped-subcontract-table td:nth-child(4){width:5%}
.grouped-subcontract-table th:nth-child(5),.grouped-subcontract-table td:nth-child(5){width:5%}
.grouped-subcontract-table th:nth-child(6),.grouped-subcontract-table td:nth-child(6){width:9%;text-align:right}
.grouped-subcontract-table th:nth-child(7),.grouped-subcontract-table td:nth-child(7){width:9%;text-align:right}
.grouped-subcontract-table th:nth-child(8),.grouped-subcontract-table td:nth-child(8){width:10%;text-align:right}
.grouped-subcontract-table th:nth-child(9),.grouped-subcontract-table td:nth-child(9){width:9%;text-align:right}
.grouped-subcontract-table th:nth-child(10),.grouped-subcontract-table td:nth-child(10){width:10%}
.grouped-subcontract-table th:nth-child(11),.grouped-subcontract-table td:nth-child(11){width:7%;text-align:center}
.grouped-subcontract-table th:nth-child(12),.grouped-subcontract-table td:nth-child(12){width:5%;text-align:center}
.grouped-subcontract-table td:nth-child(6),.grouped-subcontract-table td:nth-child(7),.grouped-subcontract-table td:nth-child(8),.grouped-subcontract-table td:nth-child(9){font-variant-numeric:tabular-nums;white-space:nowrap!important}
.grouped-subcontract-table .linear-progress-cell{min-width:0!important;gap:4px!important;display:grid!important;grid-template-columns:auto minmax(24px,1fr);align-items:center}
.grouped-subcontract-table .linear-progress-cell strong{min-width:0!important;font-size:9px!important}
.grouped-subcontract-table .v8-progress.compact{min-width:0!important;width:100%!important;height:5px!important}
.grouped-subcontract-table .tag{font-size:8px!important;padding:3px 6px!important;white-space:nowrap!important}
.grouped-subcontract-table .link{font-size:9px!important;padding:0!important}
.grouped-subcontract-table .subcontract-group-heading td{padding:9px 8px!important}
.grouped-subcontract-table .subcontract-group-heading td>div:first-child{max-width:43%}
.grouped-subcontract-table .subcontract-group-totals{max-width:56%;justify-content:flex-end;gap:7px!important}
.grouped-subcontract-table .subcontract-group-totals span,.grouped-subcontract-table .subcontract-group-totals b{font-size:9px!important;white-space:nowrap!important}
@media(max-width:1250px){
 .grouped-subcontract-table th,.grouped-subcontract-table td{padding:7px 4px!important;font-size:9px!important}
 .grouped-subcontract-table th{font-size:7px!important}
 .grouped-subcontract-table th:nth-child(3),.grouped-subcontract-table td:nth-child(3),.grouped-subcontract-table th:nth-child(4),.grouped-subcontract-table td:nth-child(4){display:none}
 .grouped-subcontract-table th:nth-child(2),.grouped-subcontract-table td:nth-child(2){width:20%}
 .grouped-subcontract-table th:nth-child(6),.grouped-subcontract-table td:nth-child(6){width:11%}
 .grouped-subcontract-table th:nth-child(7),.grouped-subcontract-table td:nth-child(7){width:11%}
 .grouped-subcontract-table th:nth-child(8),.grouped-subcontract-table td:nth-child(8){width:12%}
 .grouped-subcontract-table th:nth-child(9),.grouped-subcontract-table td:nth-child(9){width:11%}
 .grouped-subcontract-table th:nth-child(10),.grouped-subcontract-table td:nth-child(10){width:12%}
}

/* V8.6.35K4 - tope contractual EDP */
.contract-cap-alert{background:#fff3ef!important;border-color:#ef9a86!important}.contract-cap-alert em{display:block;margin-top:5px;color:#a52f1e;font-style:normal;font-size:11px;font-weight:800}.contract-cap-warning,.contract-cap-ok{margin:10px 0;padding:12px 14px;border-radius:12px;display:flex;flex-direction:column;gap:4px;font-size:13px}.contract-cap-warning{background:#fff1ee;border:1px solid #ef9a86;color:#8f2d1d}.contract-cap-ok{background:#eef8f3;border:1px solid #a8d9c0;color:#236447}
/* V8.6.35K6 - control contractual doble */
.contract-history-warning{display:block;margin-top:6px;padding:7px 9px;border-radius:8px;background:#fff5dd;color:#815711;font-size:12px;line-height:1.35}.contract-history-difference{margin-top:10px}.contract-cap-ok>span{display:block}.contract-cap-ok .contract-history-warning{font-weight:600}

.required-mark{color:#b42318;font-weight:800}.subcontract-period-card input[type=date]{font-variant-numeric:tabular-nums}
\n/* K9 - flujo y limpieza ejecutiva */\n.jesus-period-actions{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.jesus-period-actions .jesus-period-filters{margin:0}.workflow-readonly-state{padding:12px 14px;border:1px solid #cfe0ec;border-radius:12px;background:#f6f9fc;display:flex;flex-direction:column;gap:3px}.workflow-readonly-state span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#6d8195;font-weight:800}.workflow-readonly-state strong{color:#123557}.workflow-readonly-state small{color:#74879a}.exec-fin-group{border-top:1px solid #dce6ee}.exec-fin-group-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#f6f9fc}.exec-fin-group-head div{display:flex;flex-direction:column}.exec-fin-group-head small{color:#74879a;margin-top:2px}.exec-fin-group.danger .exec-fin-group-head{background:#fff4f1}.exec-fin-group.warning .exec-fin-group-head{background:#fff8e9}.exec-fin-group.good .exec-fin-group-head{background:#f0faf6}.mandante-group-table td,.mandante-group-table th{font-size:12px}.empty.compact{padding:12px 14px}.payment-editor-drawer .sticky-actions{gap:10px}.payment-editor-drawer #sendValidatePay{min-width:170px}\n
/* K10 · Outlook real + resumen mensual mandantes + cartera agrupada */
.mandante-period-actions{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.exec-month-filter{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#687b91}.mandante-month-panel .panel-head{align-items:flex-end}.mandante-sales-strip{margin:0 16px 14px}.mandante-estimate-table td small,.mandante-financial-table td small{display:block;margin-top:3px;color:#75879b;font-size:11px}.mandante-financial-table td{vertical-align:middle}.mail-body{min-height:260px}
@media(max-width:1100px){.mandante-period-actions{width:100%}.mandante-period-actions select{min-width:180px}.mandante-estimate-table{font-size:12px}}

/* V8.6.35K12 · Mandantes: tabla mensual ajustada al ancho, sin scroll horizontal */
.mandante-month-panel .table-wrap{overflow-x:hidden!important;overflow-y:visible!important;width:100%!important}
.mandante-estimate-table{width:100%!important;min-width:0!important;table-layout:fixed!important}
.mandante-estimate-table th,.mandante-estimate-table td{padding:9px 7px!important;font-size:10px!important;line-height:1.2!important;white-space:normal!important;overflow-wrap:anywhere!important;vertical-align:middle!important}
.mandante-estimate-table th{font-size:8px!important;letter-spacing:.025em!important;vertical-align:bottom!important}
.mandante-estimate-table th:nth-child(1),.mandante-estimate-table td:nth-child(1){width:30%!important;text-align:left!important}
.mandante-estimate-table th:nth-child(2),.mandante-estimate-table td:nth-child(2){width:9%!important;text-align:left!important}
.mandante-estimate-table th:nth-child(3),.mandante-estimate-table td:nth-child(3){width:9%!important;text-align:center!important}
.mandante-estimate-table th:nth-child(4),.mandante-estimate-table td:nth-child(4){width:11%!important;text-align:right!important}
.mandante-estimate-table th:nth-child(5),.mandante-estimate-table td:nth-child(5){width:9%!important;text-align:right!important}
.mandante-estimate-table th:nth-child(6),.mandante-estimate-table td:nth-child(6){width:11%!important;text-align:right!important}
.mandante-estimate-table th:nth-child(7),.mandante-estimate-table td:nth-child(7){width:10%!important;text-align:right!important}
.mandante-estimate-table th:nth-child(8),.mandante-estimate-table td:nth-child(8){width:11%!important;text-align:right!important}
.mandante-estimate-table td:nth-child(n+4){font-variant-numeric:tabular-nums;white-space:nowrap!important}
.mandante-estimate-table td:first-child strong{display:block;font-size:10px!important;line-height:1.18}
.mandante-estimate-table td:first-child small{font-size:8px!important;line-height:1.15;margin-top:2px!important}
.mandante-estimate-table td:nth-child(2) strong{font-size:10px!important}
.mandante-estimate-table td:nth-child(2) small{font-size:8px!important;line-height:1.1}
.mandante-estimate-table .tag{font-size:8px!important;padding:3px 6px!important;white-space:nowrap!important}
.mandante-estimate-table tfoot td{font-size:9px!important;font-weight:800!important;background:#eef5fa!important}
.mandante-month-panel{overflow:hidden!important}
@media(max-width:1250px){
 .mandante-estimate-table th,.mandante-estimate-table td{padding:7px 4px!important;font-size:9px!important}
 .mandante-estimate-table th{font-size:7px!important}
 .mandante-estimate-table th:nth-child(1),.mandante-estimate-table td:nth-child(1){width:27%!important}
 .mandante-estimate-table th:nth-child(2),.mandante-estimate-table td:nth-child(2){width:9%!important}
 .mandante-estimate-table th:nth-child(3),.mandante-estimate-table td:nth-child(3){width:8%!important}
 .mandante-estimate-table th:nth-child(4),.mandante-estimate-table td:nth-child(4){width:12%!important}
 .mandante-estimate-table th:nth-child(5),.mandante-estimate-table td:nth-child(5){width:10%!important}
 .mandante-estimate-table th:nth-child(6),.mandante-estimate-table td:nth-child(6){width:12%!important}
 .mandante-estimate-table th:nth-child(7),.mandante-estimate-table td:nth-child(7){width:10%!important}
 .mandante-estimate-table th:nth-child(8),.mandante-estimate-table td:nth-child(8){width:12%!important}
}

/* K12: venta mensual agrupada por contrato + avance mandante */
.mandante-estimate-grouped td:nth-child(n+3),
.mandante-estimate-grouped th:nth-child(n+3){text-align:right;white-space:nowrap}
.mandante-estimate-grouped td:first-child{width:28%}
.mandante-estimate-grouped td:nth-child(2){width:22%}
.mandante-estimate-grouped small{display:block;margin-top:3px;color:var(--muted);line-height:1.25}
.mandante-financial-table .mandante-progress{min-width:88px}
.mandante-financial-table .mandante-progress .v8-progress{margin-top:5px}
@media(max-width:1350px){
  .mandante-financial-table{font-size:11px}
  .mandante-financial-table th,.mandante-financial-table td{padding-left:8px;padding-right:8px}
}

/* K13 - Outlook Web composer para resumen ejecutivo */


/* K14 - avance económico y por cobrar en venta estimada mandantes */
.mandante-estimate-grouped td:nth-child(8),.mandante-estimate-grouped th:nth-child(8){text-align:center;white-space:normal}
.mandante-estimate-grouped td:nth-child(9),.mandante-estimate-grouped th:nth-child(9){text-align:right;white-space:nowrap}
.mandante-estimate-grouped .mandante-progress{min-width:96px}
.mandante-estimate-grouped .mandante-progress strong{display:block}
.mandante-estimate-grouped .mandante-progress .v8-progress{margin:5px 0 0}
@media(max-width:1350px){
  .mandante-estimate-grouped td:nth-child(8),.mandante-estimate-grouped th:nth-child(8){min-width:92px}
  .mandante-estimate-grouped td:nth-child(9),.mandante-estimate-grouped th:nth-child(9){min-width:120px}
}


/* K15 - envío Outlook real para resumen ejecutivo */
#execOutlookForm .success-note{margin-bottom:14px}
#execOutlookForm .mail-body{min-height:260px}


/* K16 - avance económico basado en cobranza contractual, incluyendo retenciones */
.mandante-estimate-grouped .mandante-progress.has-pending strong{color:#a23a3a}
.mandante-estimate-grouped .mandante-progress small{display:block;margin-top:4px;font-size:7px!important;color:#a85d5d;white-space:normal!important;line-height:1.15}
.mandante-pending-alert{border-left:3px solid transparent!important}
.mandante-pending-alert strong{display:block;font-size:10px!important}
.mandante-pending-alert span{display:inline-block;margin-top:4px;padding:2px 5px;border-radius:999px;font-size:7px;font-weight:900;letter-spacing:.04em}
.mandante-pending-alert small{display:block;margin-top:4px!important;font-size:7px!important;white-space:normal!important}
.mandante-pending-alert.is-pending{background:#fff2f2!important;border-left-color:#d9534f!important}
.mandante-pending-alert.is-pending strong{color:#a52222!important}
.mandante-pending-alert.is-pending span{background:#ffdede;color:#a52222}
.mandante-pending-alert.is-clear{background:#eef9f3!important;border-left-color:#32a36a!important}
.mandante-pending-alert.is-clear strong{color:#177249!important}
.mandante-pending-alert.is-clear span{background:#dff3e9;color:#177249}


/* K17 - saldo pendiente visible + mail Outlook robusto */
.mandante-estimate-wrap{overflow-x:visible!important}
.mandante-estimate-grouped{width:100%!important;min-width:0!important;table-layout:fixed!important}
.mandante-estimate-grouped th,.mandante-estimate-grouped td{padding:9px 7px!important;vertical-align:middle!important}
.mandante-estimate-grouped th:nth-child(1),.mandante-estimate-grouped td:nth-child(1){width:28%!important;text-align:left!important}
.mandante-estimate-grouped th:nth-child(2),.mandante-estimate-grouped td:nth-child(2){width:8%!important;text-align:center!important}
.mandante-estimate-grouped th:nth-child(3),.mandante-estimate-grouped td:nth-child(3){width:12%!important;text-align:right!important}
.mandante-estimate-grouped th:nth-child(4),.mandante-estimate-grouped td:nth-child(4){width:11%!important;text-align:right!important}
.mandante-estimate-grouped th:nth-child(5),.mandante-estimate-grouped td:nth-child(5){width:12%!important;text-align:right!important}
.mandante-estimate-grouped th:nth-child(6),.mandante-estimate-grouped td:nth-child(6){width:13%!important;text-align:center!important}
.mandante-estimate-grouped th:nth-child(7),.mandante-estimate-grouped td:nth-child(7){width:16%!important;text-align:right!important}
.mandante-pending-alert{border-left:2px solid transparent}
.mandante-pending-alert.is-pending{background:#fff1f1!important;border-left-color:#cf2f3c!important;color:#9d1723!important}
.mandante-pending-alert.is-pending strong{display:block;color:#b51927!important;font-size:13px!important}
.mandante-pending-alert.is-pending span{display:block;color:#b51927!important;font-size:8px!important;font-weight:900!important;letter-spacing:.04em;margin-top:3px}
.mandante-pending-alert.is-clear{background:#eef9f3!important;color:#137452!important}
.mandante-pending-alert.is-clear strong{color:#137452!important}
.outlook-send-hint{display:block;max-width:260px;color:var(--muted);font-size:10px;line-height:1.25;margin-top:5px}
@media(max-width:1200px){.mandante-estimate-grouped th,.mandante-estimate-grouped td{font-size:9px!important;padding:7px 4px!important}.mandante-estimate-grouped td:first-child strong{font-size:9px!important}}


/* K19 - Mandantes en UF + alerta de moneda */
.mandante-sales-strip.uf-summary{background:#f8fbff;border-color:#c9dced}
.uf-warning{color:#9a6700!important;font-weight:700}
.mandante-estimate-grouped .mandante-pending-alert.is-pending{background:#fff1f1;border-left:3px solid #d92d20;color:#b42318}
.mandante-estimate-grouped .mandante-pending-alert.is-clear{background:#edfdf3;color:#067647}


/* K20 - agrupacion por empresa y correos diferenciados */
.subcontract-company-group{border-top:1px solid #dbe6ef;padding:14px 16px 18px;background:#fff}
.subcontract-company-group+.subcontract-company-group{border-top:8px solid #eef4f8}
.subcontract-company-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:10px}
.subcontract-company-head h3{margin:2px 0 2px;font-size:18px;color:#123c63}
.company-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.company-totals-inline{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:#61788c}.company-totals-inline b{color:#123c63}
.outlook-drawer .form-field small{display:block;margin-top:5px;color:#6b8195;font-weight:400}
@media(max-width:1100px){.subcontract-company-head{flex-direction:column}.company-actions{justify-content:flex-start}.company-totals-inline{gap:8px}}

/* K34 · Mandantes: EDP enviados pendientes de facturar */
.mandante-period-actions{align-items:stretch}
.mandante-pending-button{min-width:260px;border:1px solid #d9e4ef;border-radius:14px;background:#f7fafc;padding:10px 14px;text-align:left;display:flex;flex-direction:column;gap:2px;cursor:pointer;color:#15324f;transition:.15s ease}
.mandante-pending-button span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.mandante-pending-button strong{font-size:16px;line-height:1.2}
.mandante-pending-button small{font-size:11px;color:#73879d}
.mandante-pending-button.has-pending{background:#fff7ed;border-color:#fdba74;box-shadow:inset 4px 0 0 #f59e0b}
.mandante-pending-button.has-pending strong{color:#9a3412}
.mandante-pending-button.is-clear{background:#f0fdf4;border-color:#bbf7d0}
.mandante-pending-button:hover{transform:translateY(-1px);border-color:#8db5d8}
.pending-invoice-drawer{width:min(1500px,96vw);max-width:1500px}
.pending-invoice-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.pending-invoice-kpis>div{border:1px solid #dce6ef;border-radius:14px;padding:14px;background:#f8fafc;display:flex;flex-direction:column;gap:3px;min-width:0}
.pending-invoice-kpis small{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#718399;font-weight:800}
.pending-invoice-kpis strong{font-size:24px;color:#15324f;white-space:nowrap}
.pending-invoice-kpis span{font-size:12px;color:#718399}
.pending-invoice-kpis .danger{background:#fff1f2;border-color:#fecaca}
.pending-invoice-kpis .danger strong{color:#b91c1c}
.pending-invoice-legend{display:flex;flex-wrap:wrap;gap:14px;align-items:center;padding:9px 12px;border:1px solid #dce6ef;border-radius:12px;background:#fff;margin-bottom:14px;font-size:12px;color:#5f7185}
.pending-invoice-legend .dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px;background:#86a0b9}
.pending-invoice-legend .dot.attention{background:#fbbf24}.pending-invoice-legend .dot.late{background:#f97316}.pending-invoice-legend .dot.critical{background:#dc2626}
.pending-contract-groups{display:grid;gap:14px}
.pending-contract-group{border:1px solid #dce6ef;border-radius:14px;overflow:hidden;background:#fff}
.pending-contract-group.attention{border-left:5px solid #fbbf24}.pending-contract-group.late{border-left:5px solid #f97316}.pending-contract-group.critical{border-left:5px solid #dc2626}
.pending-contract-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#f8fafc;border-bottom:1px solid #e7edf3}
.pending-contract-head>div:first-child{min-width:0}.pending-contract-head strong{display:block;color:#173653}.pending-contract-head small{display:block;color:#7a8da1;margin-top:2px}
.pending-contract-summary{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}.pending-contract-summary span{font-size:12px;color:#6c7f93}.pending-contract-summary b{color:#b91c1c}
.pending-invoice-table{min-width:900px}.pending-invoice-table th,.pending-invoice-table td{padding:10px 12px}.pending-invoice-table .pending-net{background:#fff7f7;color:#b91c1c}
.pending-age{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:800;background:#eef3f7;color:#486079;white-space:nowrap}
.pending-age.attention{background:#fef3c7;color:#92400e}.pending-age.late{background:#ffedd5;color:#c2410c}.pending-age.critical{background:#fee2e2;color:#b91c1c}
@media(max-width:900px){.mandante-period-actions{width:100%}.mandante-pending-button{min-width:0;width:100%}.pending-invoice-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.pending-contract-head{align-items:flex-start;flex-direction:column}.pending-contract-summary{justify-content:flex-start}}
@media(max-width:560px){.pending-invoice-kpis{grid-template-columns:1fr}.pending-invoice-kpis strong{font-size:20px}}
