/*! SIOP v1.1.1 — Sistema Integrado de Oportunidades de Proyectos. © 2026 Frank Polanco. Todos los derechos reservados. Prohibida su copia, modificación o distribución sin autorización escrita del autor. */
:root{--color-navy-900:#1c2e47;--color-navy-700:#2a5793;--color-navy-500:#5f81ae;--color-navy-100:#eaf0f8;--color-red-700:#a6282c;--color-red-100:#fbebec;--color-amber-600:#b7791f;--color-amber-100:#fdf3e0;--color-green-700:#276749;--color-green-100:#e7f5ec;--color-bg:#f6f7f9;--color-surface:#fff;--color-border:#dfe3e9;--color-text:#1a2130;--color-text-muted:#5b6472;--color-text-faint:#8a92a0;--font-ui:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Consolas, monospace;--radius-sm:3px;--radius-md:5px;--sidebar-width:230px}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-ui);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;margin:0;font-size:14px}button,input,select,textarea{font-family:inherit;font-size:inherit}a{color:var(--color-navy-700)}.app-shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--color-navy-900);color:#fff;flex-direction:column;flex-shrink:0;display:flex}.sidebar__brand{border-bottom:1px solid #ffffff1a;padding:18px 18px 14px}.sidebar__brand-logo{border-radius:var(--radius-sm);background:#fff;padding:10px 12px}.sidebar__brand-logo img{width:100%;max-width:150px;height:auto;display:block}.sidebar__title{letter-spacing:.02em;color:#ffffffa6;margin-top:10px;font-size:11px;line-height:1.4}.sidebar__nav{flex:1;padding:10px 0}.sidebar__link{color:#ffffffc7;border-left:3px solid #0000;padding:9px 18px;font-size:13.5px;text-decoration:none;display:block}.sidebar__link:hover{color:#fff;background:#ffffff0f}.sidebar__link--active{border-left-color:var(--color-red-700);color:#fff;background:#ffffff17;font-weight:500}.sidebar__footer{color:#fff6;border-top:1px solid #ffffff1a;padding:14px 18px;font-size:11px}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;height:54px;padding:0 22px;display:flex}.topbar__crumb{color:var(--color-text-muted);font-size:13px}.topbar__user{align-items:center;gap:12px;font-size:13px;display:flex}.topbar__user-name{font-weight:500}.topbar__role{color:var(--color-text-faint);font-size:11.5px}.content{flex:1;padding:22px 26px 40px;overflow-y:auto}h1.page-title{color:var(--color-navy-900);margin:0 0 4px;font-size:20px;font-weight:600}.page-subtitle{color:var(--color-text-muted);margin:0 0 22px;font-size:13px}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.panel__header{border-bottom:1px solid var(--color-border);color:var(--color-navy-900);padding:12px 16px;font-size:13px;font-weight:600}.kpi-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:22px;display:grid}.kpi{background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-navy-700);border-radius:var(--radius-sm);min-width:0;padding:12px 14px;overflow:hidden;container-type:inline-size}.kpi--alert{border-left-color:var(--color-red-700)}.kpi--wide{grid-column:span 2}.kpi__value{font-size:clamp(13px,15cqw,24px);font-weight:600;font-family:var(--font-mono);color:var(--color-navy-900);white-space:nowrap;line-height:1.15}.kpi__label{color:var(--color-text-muted);margin-top:4px;font-size:11.5px}table.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table th{text-align:left;border-bottom:1px solid var(--color-border);color:var(--color-text-muted);white-space:nowrap;padding:9px 12px;font-size:11.5px;font-weight:500}.data-table td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:9px 12px}.data-table tbody tr:hover{background:var(--color-navy-100);cursor:pointer}.id-siop{font-family:var(--font-mono);color:var(--color-navy-700);font-weight:600}.badge{background:var(--color-navy-100);color:var(--color-navy-700);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.badge--alert{background:var(--color-red-100);color:var(--color-red-700)}.badge--warn{background:var(--color-amber-100);color:var(--color-amber-600)}.badge--ok{background:var(--color-green-100);color:var(--color-green-700)}.btn{border-radius:var(--radius-sm);border:1px solid var(--color-navy-700);background:var(--color-navy-700);color:#fff;cursor:pointer;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:500;display:inline-flex}.btn:hover{background:var(--color-navy-900);border-color:var(--color-navy-900)}.btn--secondary{color:var(--color-navy-700);background:0 0}.btn--secondary:hover{background:var(--color-navy-100)}.btn--danger{background:var(--color-red-700);border-color:var(--color-red-700)}.btn:disabled{opacity:.5;cursor:not-allowed}.field{margin-bottom:14px}.field label{color:var(--color-text-muted);margin-bottom:5px;font-size:12px;display:block}.field input,.field select,.field textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;color:var(--color-text);background:#fff;padding:8px 10px}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--color-navy-500);outline-offset:-1px}.alert{border-radius:var(--radius-sm);background:var(--color-red-100);color:var(--color-red-700);margin-bottom:16px;padding:10px 14px;font-size:13px}.alert--error{background:var(--color-red-100);color:var(--color-red-700);border:1px solid #eac5c6}.alert--warn{background:var(--color-amber-100);color:var(--color-amber-600);border:1px solid #f0dba9}.tabs{border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:2px;margin-bottom:18px;display:flex}.tab{white-space:nowrap;color:var(--color-text-muted);cursor:pointer;border-bottom:2px solid #0000;padding:9px 14px;font-size:13px}.tab--active{color:var(--color-navy-900);border-bottom-color:var(--color-red-700);font-weight:500}.login-screen{background:var(--color-navy-900);background-image:linear-gradient(160deg, var(--color-navy-900) 0%, #14213a 100%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--color-surface);border-radius:var(--radius-md);width:360px;padding:32px 30px 26px;box-shadow:0 20px 50px #0000004d}.login-card img{width:100%;max-width:170px;margin:0 auto 6px;display:block}.login-card__subtitle{text-align:center;color:var(--color-text-muted);letter-spacing:.01em;margin-bottom:24px;font-size:12px}.login-card .btn{justify-content:center;width:100%;margin-top:6px}.login-card__footer{text-align:center;color:var(--color-text-faint);margin-top:20px;font-size:11px}.dashboard-grid{grid-template-columns:1.4fr 1fr;gap:18px;margin-bottom:18px;display:grid}@media (width<=1000px){.dashboard-grid{grid-template-columns:1fr}}.barra{grid-template-columns:150px 1fr 130px;align-items:center;gap:10px;padding:5px 0;font-size:13px;display:grid}.barra--enlace{cursor:pointer;border-radius:4px;margin:0 -6px;padding:5px 6px}.barra--enlace:hover{background:var(--color-navy-50,#f1f4f9)}.barra--enlace:hover .barra__etiqueta{color:var(--color-navy-700);text-decoration:underline}.barra--enlace:hover .barra__relleno{background:var(--color-navy-900,var(--color-navy-700))}.barra__etiqueta{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.barra__pista{background:var(--color-navy-100);border-radius:3px;height:12px;overflow:hidden}.barra__relleno{background:var(--color-navy-700);border-radius:3px;min-width:2px;height:100%}.barra__valor{color:var(--color-text-muted);text-align:right;font-variant-numeric:tabular-nums}@media (width<=760px){.app-shell{flex-direction:column}.sidebar{width:100%}.sidebar__brand{align-items:center;gap:12px;padding:10px 14px;display:flex}.sidebar__brand-logo{flex-shrink:0;padding:6px 8px}.sidebar__brand-logo img{max-width:92px}.sidebar__title{margin-top:0;font-size:10.5px}.sidebar__nav{white-space:nowrap;-webkit-overflow-scrolling:touch;padding:0;display:flex;overflow-x:auto}.sidebar__link{border-bottom:3px solid #0000;border-left:0;padding:10px 14px}.sidebar__link--active{border-bottom-color:var(--color-red-700)}.sidebar__footer,.topbar__crumb{display:none}.topbar{height:auto;padding:8px 14px}.topbar__user{justify-content:space-between;width:100%}.content{padding:16px 14px 32px}.panel{overflow-x:auto}.barra{grid-template-columns:96px 1fr 84px}}.field--error input,.field--error select,.field--error textarea{border-color:#c0392b;box-shadow:0 0 0 1px #c0392b33}.field__error{color:#c0392b;margin:4px 0 0;font-size:11.5px}.kpi-sla{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.kpi-sla__item{color:var(--color-text-muted);white-space:nowrap;flex-direction:column;min-width:0;font-size:11px;display:flex}.kpi-sla__num{font-family:var(--font-mono);color:var(--color-navy-900);font-size:clamp(13px,8cqw,24px);font-weight:600;line-height:1.15}.kpi-sla__item--alert .kpi-sla__num{color:var(--color-red-700)}.kpi-sla__item--warn .kpi-sla__num{color:var(--color-amber-600)}.kpi-sla__item--ok .kpi-sla__num{color:var(--color-green-700)}@media (width>=1500px){.kpi-row--dashboard{grid-template-columns:2fr 1fr 1fr 2.2fr 1fr 1fr}.kpi-row--dashboard .kpi--wide{grid-column:auto}}.menu-descarga{z-index:20;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);width:320px;padding:4px;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 8px 24px #1c2e4726}.menu-descarga button{text-align:left;cursor:pointer;width:100%;font:inherit;color:var(--color-text);background:0 0;border:0;border-radius:4px;padding:9px 10px;display:block}.menu-descarga button:hover{background:var(--color-navy-100)}.menu-descarga strong{font-size:13px;font-weight:600;display:block}.menu-descarga span{color:var(--color-text-muted);margin-top:2px;font-size:11.5px;display:block}.aviso-cliente{color:var(--color-amber-600);margin-top:4px;font-size:12px;line-height:1.6}.aviso-cliente button{margin-right:6px}.aviso-cliente button,.enlace-boton{color:var(--color-navy-700);cursor:pointer;font:inherit;background:0 0;border:0;padding:0 4px;font-size:12px;text-decoration:underline}.panel__header--ver{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.panel__ver{font:inherit;color:var(--color-navy-700);cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:0;font-size:11.5px;font-weight:400;text-decoration:underline}.kpi-row--dashboard .kpi{padding-bottom:24px;position:relative}.kpi__ver{font:inherit;color:var(--color-navy-700);cursor:pointer;background:0 0;border:0;padding:0;font-size:11.5px;text-decoration:underline;position:absolute;bottom:6px;right:10px}.kpi__de{font-family:var(--font-sans,inherit);color:var(--color-text-muted);font-size:13px;font-weight:400}.kpi-sla__item--clic{cursor:pointer;border-radius:4px}.kpi-sla__item--clic:hover{background:var(--color-navy-100)}.filtro-dashboard{background:var(--color-amber-100);border:1px solid #e9c98b;border-radius:16px;align-items:center;gap:8px;margin-bottom:12px;padding:5px 12px;font-size:12.5px;display:inline-flex}.filtro-dashboard button{font:inherit;color:var(--color-navy-700);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.reglas-password{color:var(--color-text-muted);margin:0 0 14px;padding-left:18px;font-size:12px;line-height:1.5}.login-card__acciones{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.filtros-grid{grid-template-columns:repeat(5,1fr) auto;align-items:end;gap:10px;display:grid}.form-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.form-grid__completo{grid-column:1/-1}.grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-documento{grid-template-columns:2fr 1fr 1fr auto;gap:10px;padding:12px;display:grid}.acciones-fila{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.texto-ayuda{color:var(--color-text-faint);font-size:12px}.badge--gris{color:var(--color-text-muted);background:#eceef1}@media (width<=1000px){.filtros-grid{grid-template-columns:repeat(3,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=760px){.filtros-grid,.form-grid,.grid-2,.form-documento{grid-template-columns:1fr}.login-card{width:100%;max-width:360px}}
