:root{--bg: #f4f6f8;--panel: #ffffff;--text: #1c2733;--muted: #6b7684;--border: #dde3e9;--accent: #2563eb;--accent-dark: #1d4ed8;--danger: #dc2626;--c-vigente-bg: #e6f6ea;--c-vigente-fg: #1a7f3c;--c-por-vencer-bg: #fff4d6;--c-por-vencer-fg: #92650a;--c-vencido-bg: #fde2e1;--c-vencido-fg: #a3211a;--c-inactivo-bg: #eceff2;--c-inactivo-fg: #5b6570}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px}button,input,select,textarea{font:inherit}a{color:var(--accent)}.app-shell{display:flex;flex-direction:column;min-height:100%}.header{display:flex;align-items:center;gap:16px;padding:10px 20px;background:var(--panel);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.header .brand{font-weight:700;font-size:18px;display:flex;align-items:center;gap:8px}.header nav{display:flex;gap:4px;flex:1;flex-wrap:wrap}.header nav a{padding:6px 12px;border-radius:6px;text-decoration:none;color:var(--text);font-size:14px}.header nav a.active,.header nav a:hover{background:var(--bg)}.header .user{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:10px}.main{flex:1;padding:20px;max-width:1200px;width:100%;margin:0 auto}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:16px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;border:1px solid var(--border);background:var(--panel);cursor:pointer;color:var(--text)}.btn:hover{background:var(--bg)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.field{margin-bottom:12px;display:flex;flex-direction:column;gap:4px}.field label{font-size:13px;color:var(--muted)}.field input,.field select,.field textarea{padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:#fff}.field textarea{resize:vertical;min-height:60px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:4px 16px}.error-box{background:var(--c-vencido-bg);color:var(--c-vencido-fg);padding:10px 14px;border-radius:8px;margin-bottom:12px;font-size:14px}.ok-box{background:var(--c-vigente-bg);color:var(--c-vigente-fg);padding:10px 14px;border-radius:8px;margin-bottom:12px;font-size:14px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);font-size:14px}th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase}tr:hover td{background:var(--bg)}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.badge-vigente{background:var(--c-vigente-bg);color:var(--c-vigente-fg)}.badge-por_vencer{background:var(--c-por-vencer-bg);color:var(--c-por-vencer-fg)}.badge-vencido{background:var(--c-vencido-bg);color:var(--c-vencido-fg)}.badge-inactivo{background:var(--c-inactivo-bg);color:var(--c-inactivo-fg)}tr.row-vencido td{background:var(--c-vencido-bg)}tr.row-por_vencer td{background:var(--c-por-vencer-bg)}tr.row-inactivo td{color:var(--muted)}tr.row-vencido:hover td,tr.row-por_vencer:hover td{filter:brightness(.97)}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:14px}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:16px}.summary-card{border-radius:10px;padding:14px;text-align:center}.summary-card .n{font-size:28px;font-weight:700;display:block}.summary-card .l{font-size:13px}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-box{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:32px;width:100%;max-width:360px}.pagination{display:flex;gap:8px;align-items:center;margin-top:14px}.attachments{display:flex;flex-direction:column;gap:6px;margin-top:8px}.attachment-row{display:flex;align-items:center;gap:8px;font-size:14px}.attachment-row .name{flex:1}.muted{color:var(--muted)}.text-right{text-align:right}.stack{display:flex;flex-direction:column;gap:10px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.texto-rico h3{font-size:16px;margin:10px 0 4px}.texto-rico h4{font-size:15px;margin:8px 0 4px}.texto-rico p{margin:4px 0}.texto-rico ul,.texto-rico ol{margin:4px 0;padding-left:22px}.texto-rico:empty:before{content:attr(data-placeholder);color:var(--muted)}.header{transition:transform .2s ease}.header .brand span{white-space:nowrap}.menu-toggle,.btn-filtros{display:none}@media (max-width: 900px){.header{flex-wrap:wrap;gap:8px;padding:6px 12px}.header.oculto{transform:translateY(-100%)}.header .brand{flex:1;font-size:16px;min-width:0}.header .brand span{overflow:hidden;text-overflow:ellipsis}.menu-toggle{display:inline-flex;padding:6px 12px}.header nav,.header .user{display:none}.header.abierto nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;flex:1 1 100%;order:3;max-height:70vh;overflow-y:auto;padding:6px 0;border-top:1px solid var(--border)}.header.abierto nav a{padding:10px 12px;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header.abierto .user{display:flex;flex:1 1 100%;order:4;justify-content:space-between;padding:8px 0 4px;border-top:1px solid var(--border)}.toolbar.plegable>.field:first-child{flex:1 1 100%;min-width:0!important}.toolbar.plegable .btn-filtros{display:inline-flex}.toolbar.plegable:not(.abierta)>.field:not(:first-child),.toolbar.plegable:not(.abierta)>label.row{display:none}.toolbar.plegable.abierta>.field:not(:first-child){flex:1 1 45%;min-width:0}.main,.card{padding:12px}table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}th,td{padding:7px 8px}}.print-page{max-width:820px;margin:0 auto;padding:24px;background:#fff;color:#111}.print-page th{width:auto}.print-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-top:16px}.print-thumbs figure{margin:0;break-inside:avoid}.print-thumbs img{width:100%;max-height:220px;object-fit:contain;border:1px solid #ddd}.print-thumbs figcaption{font-size:11px;color:#555}.print-hash{margin-top:20px;padding:10px;border:1px solid #ccc;border-radius:6px;break-inside:avoid}@media print{.no-print{display:none!important}body{background:#fff}.print-page{padding:0;max-width:none}tr:hover td{background:none}}.header .user a{padding:6px 10px;border-radius:6px;text-decoration:none;color:var(--text);font-size:14px}.header .user a.active,.header .user a:hover{background:var(--bg)}.ayuda-grilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.ayuda-tarjeta{display:flex;flex-direction:column;gap:4px;margin:0;padding:14px;text-decoration:none;color:inherit}.ayuda-tarjeta strong{color:var(--accent)}.ayuda-tarjeta .muted{font-size:13px}.ayuda-actual{border:2px solid var(--accent)}.ayuda-indice{display:flex;flex-wrap:wrap;gap:6px}.ayuda-indice a{font-size:13px;padding:4px 10px;border:1px solid var(--border);border-radius:999px;text-decoration:none;background:var(--panel)}.ayuda-seccion{margin:0;scroll-margin-top:70px}.ayuda-seccion h3{margin:0 0 8px}.ayuda-cuerpo{line-height:1.55}.ayuda-cuerpo p{margin:6px 0}.ayuda-cuerpo li{margin:3px 0}.ayuda-cuerpo table td{vertical-align:top}.ayuda-captura{margin:12px 0 0}.ayuda-captura img{max-width:min(100%,960px);border:1px solid var(--border);border-radius:8px;cursor:zoom-in;box-shadow:0 1px 4px #00000014}.ayuda-captura.vertical img{max-width:min(100%,340px)}.ayuda-captura figcaption{font-size:13px;color:var(--muted);margin-top:4px}.ayuda-zoom{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px;cursor:zoom-out}.ayuda-zoom>img{max-width:100%;max-height:100%;border-radius:6px;background:#fff}.aviso-novedades{max-width:560px;width:100%;max-height:85vh;margin:0}.aviso-novedades-lista{overflow-y:auto}.ayuda-novedad{padding:10px 0;border-bottom:1px solid var(--border)}.ayuda-novedad:last-child{border-bottom:none}.ayuda-novedad ul{margin:6px 0;padding-left:20px}.hub-grilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}.hub-tarjeta{position:relative;margin:0;padding:14px;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:2px}.hub-badge{position:absolute;top:10px;right:10px}.combo{position:relative;width:100%}.combo>input{width:100%;padding-right:28px}.combo-limpiar{position:absolute;right:4px;top:50%;transform:translateY(-50%);border:none;background:none;cursor:pointer;color:var(--muted);font-size:14px;padding:4px}.combo-lista{position:absolute;z-index:50;left:0;right:0;top:calc(100% + 2px);max-height:280px;overflow-y:auto;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 6px 18px #0000001f}.combo-op{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:7px 10px;border:none;background:none;text-align:left;cursor:pointer;font:inherit;color:inherit}.combo-op .muted{font-size:12px}.combo-op.foco{background:var(--bg)}.combo-op.elegida{font-weight:600}.permisos-grilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.permisos-modulo{border:1px solid var(--border, #ddd);border-radius:8px;padding:6px 10px 10px;margin:0;display:flex;flex-direction:column;gap:4px;min-width:0}.permiso-fila{display:flex;gap:6px;align-items:flex-start}.permiso-fila input{margin-top:3px;flex:none}.permisos-modulo legend{font-weight:600;padding:0 4px}.btn-link{background:none;border:none;padding:0;color:var(--accent);cursor:pointer;text-align:left;font:inherit;text-decoration:underline}.parte-resultado{display:flex;flex-direction:column;flex:1;min-width:0}.parte-resultado .muted{font-size:12px}.parte-agregar{font-size:13px;color:var(--accent);white-space:nowrap;margin-left:8px}.grilla-kpi{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}.tabla-barra{gap:6px;flex-wrap:wrap}.tabla-buscar{flex:1;min-width:180px;max-width:360px}.btn-activo{background:var(--accent);color:#fff;border-color:var(--accent)}.tabla-columnas{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:2px 16px;font-size:14px}.tabla-datos th{white-space:nowrap;position:sticky;top:0;background:var(--card, #fff);z-index:1}.tabla-datos .th-orden{background:none;border:0;padding:0;font:inherit;color:inherit;text-transform:inherit;cursor:pointer}.tabla-datos .th-orden:hover{color:var(--accent)}.tabla-filtros th{top:33px;padding-top:0}.tabla-filtros input,.tabla-filtros select{width:100%;min-width:70px;font-size:12px;padding:3px 6px;font-weight:400;text-transform:none}.tabla-acciones{white-space:nowrap;text-align:right}.org-arbol,.org-arbol ul{list-style:none;margin:0;padding-left:22px;position:relative}.org-arbol{padding-left:0}.org-arbol li{position:relative;padding:6px 0 0 18px}.org-arbol ul li:before{content:"";position:absolute;left:0;top:0;bottom:0;border-left:1px solid var(--border)}.org-arbol ul li:last-child:before{height:26px}.org-arbol ul li:after{content:"";position:absolute;left:0;top:26px;width:16px;border-top:1px solid var(--border)}.org-nodo{display:inline-block;min-width:180px;padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel)}.panel-usuario{background:var(--bg-soft, #f6f7f9);border:1px solid var(--border);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:12px}.panel-usuario .pestanas{display:flex;flex-wrap:wrap;gap:6px}@media (max-width: 700px){.panel-usuario{padding:8px}.panel-usuario .pestanas .btn{flex:1 1 45%}}.usuario-tarjeta .panel-usuario{margin:4px -6px 0}details.card>summary{cursor:pointer}.pestanas{display:flex;flex-wrap:wrap;gap:6px}
