:root{--bg:#09131f;--ink:#eaf1f7;--muted:#a7b9cb;--line:#2c4259;--navy:#0b192a;--lime:#e6bc62;--green:#22bdc3;--blue:#64d4e0;--gold:#e6bc62;--radius:16px}
body{background:linear-gradient(110deg,#050c17ed,#0a172bde),url('atmosphere.png') center/cover fixed;color:var(--ink)}
.login{background:transparent;min-height:100vh;gap:4vw;padding:5vw;grid-template-columns:1.08fr 1fr;align-items:center}
.login-story{background:transparent;padding:35px 2vw;min-height:650px;color:#edf4ff}
.login-story h1{font-size:clamp(2.5rem,4vw,4.7rem);line-height:1.08;font-weight:650;letter-spacing:-2px;color:#f7f9fb}
.login-story h1::first-line{color:var(--gold)}.login-story p{color:#bdcce0;max-width:440px;line-height:1.8}
.login-story .eyebrow{color:var(--gold);border:1px solid #ad8e4b70;border-radius:25px;display:inline-block;padding:10px 16px}
.construction-art{display:none}.login-panel{padding:36px;background:linear-gradient(135deg,#11223bef,#081321f5);border:1px solid #435a77;border-radius:25px;box-shadow:0 25px 90px #0006;width:100%;max-width:640px}
.login-panel h2{color:var(--gold);font-size:2rem}.outwork-logo{width:185px;height:auto;object-fit:contain}.brand{display:flex;align-items:center;gap:15px;color:var(--gold)}.brand>b{border-left:1px solid #a78b55;padding-left:14px;font-size:1.05rem;letter-spacing:2px}.sidebar .outwork-logo{width:140px}.sidebar .brand{gap:7px}.sidebar .brand>b{font-size:.85rem;padding-left:7px}
.portal-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:25px 0}.portal-choices button{display:flex;flex-direction:column;background:#0b1b30;border:1px solid #3d526b;border-radius:14px;padding:15px 4px;gap:12px;color:#f0d391;font-size:.75rem}.portal-choices img{width:35px;height:35px}.portal-choices button.selected,.portal-choices button:hover{border-color:var(--gold);background:#243048;box-shadow:inset 0 0 20px #e5ba5810}
input,select,textarea{background:#0b1728;color:#eef4fa;border-color:#3b536d;color-scheme:dark}input::placeholder,textarea::placeholder{color:#90a5bc}label{color:#cbd9e7}
button,.button{background:#142a42;color:#dce8f3;border-color:#3b536d}button:hover{background:#213b55}button.primary,.primary{background:linear-gradient(135deg,#25bdc1,#168798);color:#fff;border:1px solid #56d7dd;box-shadow:0 5px 18px #12a5b61f}button.primary:hover{background:#1fb4bf;color:white}
.sidebar{background:#07111feb;border-right:1px solid #30435a}.nav-item.active{background:#193c4a;color:#83e5e6;border:1px solid #32777d}.nav-item:hover{background:#182b42}.nav-label{color:var(--gold)}.topbar{background:#0c1a2ce8;border-color:var(--line)}.topbar select{background:#14263b}.card,.panel,.project-card{background:linear-gradient(125deg,#15253bec,#0e1d30f5);border-color:#334a63;box-shadow:0 10px 30px #0002}.card.dark{background:linear-gradient(135deg,#163e48,#102535);border-color:#326773}.card.dark .kpi-value{color:#78e0df}.page-heading h1,.panel-header h3,.project-card h3{color:#f0cf88}.kpi-value{color:#f7f9fc}.kpi-label,.kpi-note{color:#afc1d4}
th{background:#102238;color:#c1d4e8}th,td{border-color:#2b3e53}tbody tr:hover{background:#ffffff04}.track,.budget-bars{background:#2b3b50}.ring>div{background:#132338}.ring{background:conic-gradient(var(--green) var(--angle),#2a3c52 0)}.badge{background:#283b52;color:#d2deea}.badge.green{background:#173e36;color:#8ce7c0}.badge.amber{background:#493b23;color:#f4d184}.badge.red{background:#4b2931;color:#ffb5bb}.notice{background:#392f20;border-color:#756140;color:#f2d49e}.notice.info{background:#142f46;border-color:#365e79;color:#b6dcf3}.form-error{color:#ff9b9b}.permission-groups,.finance-strip{background:#0b192a}.alert-icon{background:#423922;color:#efcc78}dialog{background:#122137;border:1px solid #45617d;color:var(--ink);box-shadow:0 25px 120px #0009}.report-page{background:#fff;color:#172b42}
@media(max-width:1000px){.login{grid-template-columns:1fr;padding:25px;gap:20px}.login-story{min-height:0;padding:15px;gap:24px}.login-story h1{font-size:2.7rem}.login-story small{display:none}.login-panel{margin:auto;max-width:680px}.login-story .brand{margin-bottom:25px}}
.company-logo{display:block;width:76px;height:76px;object-fit:contain;background:#fff;border-radius:12px;padding:6px;margin:0 0 14px}.company-logo-preview{display:block;width:96px;height:96px;object-fit:contain;background:#fff;border-radius:12px;padding:6px;margin:8px 0}
.document-section{margin-top:20px}.document-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}.document-card{display:flex;gap:13px;padding:14px;border:1px solid #36526e;border-radius:14px;background:#0b1b2d}.document-card strong,.document-card small{display:block}.document-card small{color:#aac0d2;margin:6px 0}.document-thumb{width:70px;height:86px;flex:0 0 70px;border-radius:9px;object-fit:cover;background:#f5f7fa}.document-thumb.file{display:grid;place-items:center;background:#294967;color:#f2ce84;font-weight:800;font-size:12px}
.financial-total td{background:#17384a!important;color:#f2d186!important;font-weight:800;border-top:1px solid #50b8bc!important;border-bottom:1px solid #50b8bc!important}
.financial-tabs,.finance-sheet-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.finance-sheet-tabs{padding:14px 16px;background:#102238;border:1px solid #2d536d;border-radius:14px}.finance-sheet-tabs span{padding:9px 4px;color:#9db4ca;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em}.finance-sheet-tabs button{background:#172d45;border:1px solid #345a75;color:#cce0ee;padding:9px 13px;border-radius:8px}.finance-sheet-tabs button.primary{background:#0f9fb3;border-color:#38c6d2;color:#fff}.finance-block-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:18px;margin:18px 0}.finance-block{min-height:190px;border:1px solid #2f5975;border-radius:16px;padding:22px;display:flex;flex-direction:column;align-items:flex-start;background:#112a42;box-shadow:0 12px 28px #0003}.finance-block .eyebrow{font-weight:800;color:#a8c9df;text-transform:uppercase;font-size:.78rem;letter-spacing:.04em}.finance-block strong{font-size:1.65rem;color:#fff2cf;margin:16px 0 5px}.finance-block p{color:#b4c9d9;margin:0 0 18px;min-height:38px}.finance-block button{margin-top:auto}.finance-color-1{background:#173747;border-color:#2e7890}.finance-color-2{background:#20294d;border-color:#5266a7}.finance-color-3{background:#3a2c49;border-color:#8968a4}.finance-color-4{background:#3d3520;border-color:#8b7636}.finance-dialog-summary{display:flex;justify-content:space-between;align-items:center;border-radius:12px;background:#17384a;color:#b9dce8;padding:16px;margin-bottom:18px}.finance-dialog-summary strong{color:#fff0c3;font-size:1.45rem}
.finance-block .margin-metric{display:grid;grid-template-columns:auto auto;gap:4px 12px;align-items:baseline;font-size:1.4rem}.finance-block .margin-metric small{font-size:.72rem;color:#b9d8e8;text-transform:uppercase;letter-spacing:.04em}
@media(max-width:480px){.login{padding:15px}.login-panel{padding:23px 18px}.portal-choices{gap:6px}.portal-choices button{font-size:.66rem}.login-story h1{font-size:2.3rem}.outwork-logo{width:150px}}
@media print{body,.panel,.card,.project-card,.card.dark{background:#fff!important;color:#172b42!important;box-shadow:none}th,td,.kpi-value,.page-heading h1,.panel-header h3{color:#172b42!important}}

[hidden]{display:none!important}.login{padding:3vw}.login-story{min-height:560px}

.nav-icon img{width:19px;height:19px;object-fit:contain;vertical-align:middle}.card{container-type:inline-size}.kpi-value{font-size:clamp(.85rem,9cqw,1.9rem);white-space:nowrap;overflow-wrap:normal;letter-spacing:-.5px}.nav-scroll{scrollbar-color:#435e77 #0b1828}@media(min-width:761px) and (max-width:1400px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}

.content .calendar-toolbar{display:flex!important;justify-content:space-between!important;align-items:center!important;gap:18px;padding:18px 22px;border-bottom:1px solid #36536d;background:#11243a}.content .calendar-toolbar>div:first-child{display:grid;gap:5px}.content .calendar-toolbar strong{font-size:1rem;color:#f3d38c;text-transform:capitalize}.content .calendar-toolbar small{font-size:.76rem}.content .calendar-switch{display:flex!important;gap:7px}.content .calendar-switch button{padding:9px 16px;border-radius:9px}.content .calendar-switch button.primary{background:#20bfc6;border-color:#67e3e5;color:#fff}.content .calendar-weekheads{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:8px;padding:13px 14px 0;background:#0e243b;color:#8fabca;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.content .calendar-weekheads span{padding:4px 8px}.content .calendar-grid{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:8px!important;padding:10px 14px 14px!important;background:#0e243b!important}.content .calendar-day{display:flex!important;flex-direction:column!important;gap:8px!important;min-height:150px!important;padding:11px!important;border:1px solid #31506e!important;border-radius:11px!important;background:#142c45!important;color:#e9f3fb!important}.content .calendar-day.muted-day{opacity:.42}.content .calendar-day.today{border:2px solid #26cbd4!important;background:#183b56!important}.content .calendar-day strong{display:flex!important;justify-content:space-between!important;align-items:center!important;color:#e8f1fa!important;font-size:.84rem!important}.content .calendar-day strong em{font-style:normal;color:#f3d38c;font-size:1rem}.content .calendar-event{display:block!important;padding:8px 8px 8px 11px;border-radius:8px;background:#245c76;color:#f5fbff;font-size:.72rem;line-height:1.3;box-shadow:inset 3px 0 #64d4e0;overflow:hidden;text-overflow:ellipsis}.content .calendar-event.status-Aprobado,.content .calendar-event.status-Activo{background:#1c5d49;box-shadow:inset 3px 0 #5ae1b2}.content .calendar-event.status-Rechazado{background:#713441;box-shadow:inset 3px 0 #ff8792}.content .calendar-empty{display:block;color:#7895ad;font-size:.72rem;margin-top:6px}@media(max-width:760px){.content .calendar-weekheads,.content .calendar-grid{grid-template-columns:repeat(7,minmax(132px,1fr))!important;min-width:924px}.content .calendar-day{min-height:124px!important}.content .panel:has(.calendar-grid){overflow-x:auto}}

.record-thumb{display:inline-block;width:46px;height:46px;object-fit:cover;vertical-align:middle;margin:0 10px 0 0;border-radius:9px;border:1px solid var(--line,#35506a);background:#17314a}.record-thumb.file{padding:13px 5px;box-sizing:border-box;text-align:center;color:#f1cc75;font-size:10px;font-weight:800}.calendar-event .record-thumb{display:block;width:100%;height:44px;margin:0 0 5px}.calendar-event .record-thumb.file{display:none}

/* Calendario mensual de avance: siete columnas fijas en escritorio. */
.content .calendar-grid.progress-calendar{display:grid!important;grid-template-columns:repeat(7,minmax(120px,1fr))!important;grid-auto-flow:row!important;grid-auto-rows:minmax(150px,auto)!important;width:100%!important;min-width:0!important;align-items:stretch!important}.content .calendar-grid.progress-calendar>.calendar-day{display:flex!important;grid-column:auto!important;grid-row:auto!important;width:auto!important;min-width:0!important;margin:0!important;position:static!important}@media(max-width:900px){.content .calendar-grid.progress-calendar{grid-template-columns:repeat(7,minmax(132px,1fr))!important;min-width:924px!important}.content .panel:has(.progress-calendar){overflow-x:auto}}


.tab-pending{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:8px;vertical-align:middle;border-radius:999px;background:#f6bf4f;color:#14273f;font-weight:800;font-size:.75rem;line-height:20px}.image-preview-full{display:block;max-width:100%;max-height:70vh;object-fit:contain;margin:auto;border-radius:12px}

/* Indicadores centrados para todas las pestañas con acciones pendientes. */
.financial-tabs .tab-pending,.finance-sheet-tabs .tab-pending{display:inline-flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;width:20px!important;min-width:20px!important;height:20px!important;min-height:20px!important;margin:0 0 0 8px!important;padding:0!important;border:0!important;border-radius:50%!important;background:#f6bf4f!important;color:#101820!important;font-size:12px!important;font-weight:800!important;line-height:1!important;vertical-align:middle!important;text-align:center!important;letter-spacing:0!important;animation:none!important;box-shadow:none!important}.pending-pulse{display:inline-flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;min-width:20px!important;height:20px!important;padding:0 5px!important;color:#101820!important;line-height:1!important;text-align:center!important;animation:none!important}
