/* PortalOPD | tema visual compartido. No modifica la lógica de las páginas. */
:root{--bg:#f5f7fb;--surface:#fff;--surface2:#f8fafc;--surface3:#edf2f8;--border:#e2e8f0;--border2:#d5deea;--text:#18243a;--text2:#59677c;--text3:#8a96a8;--blue:#244b88;--blue2:#193b70;--blue3:#102a50;--blue-light:#edf3fb;--blue-mid:#cbd9ec;--accent:#3162a3;--r:10px;--r2:14px;--r3:18px;--shadow:0 2px 12px rgba(24,43,71,.035);--shadow2:0 12px 32px rgba(24,43,71,.085)}
body{background:var(--bg);color:var(--text);font-family:'Plus Jakarta Sans',system-ui,sans-serif}
.main,.content{min-width:0}
.sidebar{box-shadow:none!important}
#sidebar{height:100vh!important;max-height:100vh!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}
#sidebar .sidebar-logo{flex-shrink:0!important}
#sidebar .nav{flex:1 1 0!important;overflow-y:auto!important;min-height:0!important;overflow-x:hidden!important}
#sidebar .sidebar-foot{flex-shrink:0!important;margin-top:auto!important}
.content{padding-bottom:45px}
.section-head h2{letter-spacing:-.025em}
.table-card,.cm-card,.control-panel,.card,.stat{box-shadow:var(--shadow);border-color:var(--border);border-radius:14px}
input:not([type=checkbox]):not([type=radio]),select,textarea{border-radius:9px;border-color:var(--border2)}
input:focus,select:focus,textarea:focus{outline:2px solid rgba(49,98,163,.17);outline-offset:0;border-color:var(--accent)}
button,.btn,.cm-btn{transition:background-color .15s,border-color .15s,box-shadow .15s}
button:focus-visible,.btn:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.table-wrap{max-width:100%;overflow-x:auto}
table thead th{background:var(--surface2)}
.portal-exit{background:#fff;border:1px solid var(--border2);border-radius:9px;padding:8px 12px;color:var(--text2);font:600 12px 'Plus Jakarta Sans',sans-serif;cursor:pointer}
.portal-exit:hover{background:var(--surface2)}
/* Módulo Vincular, integrado visualmente al portal */
.vincular-view .app{max-width:none;padding:0;margin:0}
.vincular-view .header{margin-bottom:22px}
.vincular-view .header-icon{background:var(--blue);border-radius:12px}
.vincular-view .overline{color:var(--accent)}
.vincular-view h1{font-family:'Syne','Plus Jakarta Sans',sans-serif;font-size:25px;color:var(--text)}
.vincular-view h2{font-family:'Plus Jakarta Sans',sans-serif;color:var(--text)}
.vincular-view .card,.vincular-view .stat{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow)}
.vincular-view .primary{background:var(--blue);color:#fff}
.vincular-view .primary:hover:not(:disabled){background:var(--blue2)}
.vincular-view .outline{color:var(--blue);border-color:var(--blue-mid)}
.vincular-view .light{background:var(--surface2);color:var(--text2)}
.vincular-view .form-card{padding:24px}
.vincular-view .table-scroll{height:min(52vh,420px);min-height:230px;overflow:auto}
.vincular-view .table-scroll thead th{background:var(--surface2);position:sticky;top:0;z-index:1}
.vincular-view .stats{gap:14px}
.vincular-view .date-preview input{background:var(--surface2)}
.vincular-view .header p,.vincular-view .subtle{color:var(--text2)}
.vincular-view .footnote{color:var(--text2)}
@media(max-width:700px){.vincular-view .header{padding-top:4px}.vincular-view .form-card{padding:18px}.vincular-view .table-scroll{height:min(48vh,370px)}}
