/* Identidad institucional 3.1.0. Componentes locales, sin fuentes ni imágenes remotas. */
:root{--navy:#18374c;--blue:#296487;--teal:#087d82;--muted:#60758a;--line:#dbe5ec;--sidebar-width:236px;--header-height:72px;--surface:#fff;--canvas:#f3f6f9;color:#202124;background:var(--canvas);font-family:'Segoe UI',system-ui,sans-serif}
body{display:flow-root;min-height:100vh;background:var(--canvas);-webkit-font-smoothing:antialiased}
button,.button{min-height:40px;border-radius:8px;font-size:12px;transition:background-color 140ms,border-color 140ms,box-shadow 140ms;color:white}
button.secondary,.button.secondary{color:var(--text-primary41)}
button:focus-visible,.button:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #298fa4;outline-offset:3px}
input,select,textarea{border-color:#cbd8e2;border-radius:8px;background:#fff;font-size:13px;min-height:42px;transition:border-color 140ms,box-shadow 140ms}
input:focus,select:focus,textarea:focus{outline:0;border-color:#258e97;box-shadow:0 0 0 3px #258e971b}
input[type=checkbox]{min-height:17px;accent-color:var(--teal)}
input[type=file]::file-selector-button{border:0;border-radius:5px;padding:5px 10px;margin-right:12px;background:#edf4f7;color:var(--text-primary41);font:inherit;cursor:pointer}
label{font-size:12px;font-weight:600;color:#202124}h1,h2,h3{color:var(--text-primary41)}p{color:#45474a}
.panel,.tablewrap,.rowcard,.stat{border-color:var(--line);border-radius:12px}.panel{box-shadow:0 3px 12px #163c5704;padding:24px}.notice{border-radius:9px}.error{color:#a9322c}
.smallbutton{min-height:32px}.danger{color:#a6382d}.ghost{color:var(--text-primary41)}
/* Acceso: la misma identidad que encontrará el operador dentro del sistema. */
body:not(.signed-in31)>header{background:transparent;border:0;position:absolute;width:100%;height:72px;padding:0 30px}
body:not(.signed-in31)>header .brand,body:not(.signed-in31)>header #header-location,body:not(.signed-in31)>header #menu-toggle20{display:none}
body:not(.signed-in31)>header .topright{margin-left:auto}
body:not(.signed-in31){background:radial-gradient(ellipse at 18% 28%,#dfe9ee 0,transparent 56%),#f1f5f8}
.access{position:relative;display:grid;grid-template-columns:1.08fr 1fr;align-items:stretch;width:calc(100% - 64px);max-width:1060px;padding:0;margin:max(105px,calc((100vh - 570px)/2)) auto 48px;gap:0;border:1px solid #d8e3ea;border-radius:22px;overflow:hidden;background:white;box-shadow:0 28px 75px #15384e14}
.access .intro{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:64px 44px 54px;background:linear-gradient(135deg,#102c42,#1c4056);min-height:565px}
.access .intro::before,.access .intro::after{content:'';position:absolute;z-index:-1;pointer-events:none;inset:-140px 30% -40px -50%;border:1px solid #759fb31c;transform:rotate(32deg);background:#83b7c305}
.access .intro::after{inset:20% -75% -25% 25%;background:#a0c9d20a}
.access-emblem31{width:122px;height:146px;display:block;filter:drop-shadow(0 9px 17px #0002);margin-bottom:22px}
.access .intro h1{font-size:43px;letter-spacing:-1.2px;line-height:1.1;color:#fff;margin:0 0 8px;font-weight:650}
.access .intro .access-subtitle31{font-size:15px;color:#cbdce6;margin:0 0 34px;letter-spacing:.3px}
.access .intro .eyebrow{color:#e0eef3;font-size:10px;letter-spacing:1.6px;margin:0 0 10px}
.access .intro .access-unit31{font-size:12px;color:#baceda;line-height:1.65;margin:0;max-width:270px}
.access .panel{border:0;border-radius:0;padding:58px 54px 28px;margin:0;display:flex;flex-direction:column;justify-content:center;box-shadow:none;min-width:0}
.access h2{font-size:29px;letter-spacing:-.65px;margin:0 0 10px}.access .login-hint31{font-size:13px;color:#45474a;margin:0 0 30px}
.access label{font-size:12px;margin-bottom:21px}.access label input{height:46px}
.login-input31{position:relative;display:block;margin-bottom:21px}.access #login-form>label{margin:0 0 7px}.login-input31 input{height:46px}.login-input31>svg{position:absolute;width:18px;height:18px;left:13px;top:15px;color:#45474a;pointer-events:none}.login-input31 input{padding-left:41px}
.login-input31 input[name=password]{padding-right:46px}
.access .password-toggle31{position:absolute;right:5px;top:5px;width:36px;height:36px;min-height:36px;margin:0;padding:8px;border:0;background:transparent;color:#45474a;border-radius:6px;display:flex;align-items:center;justify-content:center}
.password-toggle31 svg{width:20px;height:20px}.access .password-toggle31:hover{background:#e9f1f5;color:var(--text-primary41)}
.access button[type=submit]{margin-top:8px;height:46px;display:flex;align-items:center;justify-content:center;gap:15px;background:#087d82;box-shadow:0 4px 12px #087d821c}
.access button[type=submit]:hover{background:#06696f}.access button[type=submit] svg{width:19px;height:19px}
.access .access-foot31{margin-top:36px;padding-top:20px;border-top:1px solid #e7edf1;display:flex;justify-content:space-between;gap:12px;font-size:10px;color:#45474a}
#access-error:not(:empty){padding:11px 13px;border:1px solid #eed1cb;border-radius:8px;background:#fff6f4;margin-top:18px}
.skip31{position:fixed;top:8px;left:260px;z-index:10000;transform:translateY(-160%);padding:11px 16px;border-radius:8px;background:white;color:var(--text-primary41);box-shadow:0 2px 12px #0003}.skip31:not(:focus){width:1px;height:1px;overflow:hidden;clip-path:inset(50%);padding:0;white-space:nowrap}.skip31:focus{transform:translateY(0)}
/* Marco general */
body>header{height:var(--header-height);min-height:var(--header-height);padding-right:28px;gap:24px;background:white;border-bottom:1px solid #e0e8ee}
.brand{background:#142f45;width:var(--sidebar-width);min-width:var(--sidebar-width);padding:0 21px;gap:12px}
.brand-emblem31{width:35px;height:43px;flex-shrink:0;display:block}.brand strong{font-size:21px;font-weight:650;letter-spacing:-.4px}.brand small{font-size:10px;color:#b9cedb}
.topright .tag{background:#f3f7fa;color:#45474a;border-color:#e0e8ef;border-radius:6px;letter-spacing:.2px;padding:5px 8px}
#who{font-size:12px;color:#45474a}.topright .ghost{border-color:#d3dfe7;border-radius:7px;min-height:34px;color:#45474a}
#header-location{font-size:12px}#header-location strong{color:#202124}
.shell{grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:calc(100vh - var(--header-height))}
.app-sidebar{top:var(--header-height);height:calc(100vh - var(--header-height));padding:18px 13px 12px;background:#142f45;scrollbar-width:thin;scrollbar-color:#486579 #142f45}
.sidebar-unit31{padding:0 12px 17px;margin-bottom:7px;border-bottom:1px solid #ffffff13;color:#9fbacb;font-size:10px;line-height:1.6;letter-spacing:.2px}
.app-sidebar #nav{position:relative;isolation:isolate;overflow:visible}
.nav-group{border-bottom-color:#ffffff0e;padding:6px 0 9px;margin:0 0 3px}.nav-group>p{font-size:9px;letter-spacing:1.15px;color:#91adbf;margin:6px 12px 8px}
.nav-group button{position:relative;gap:12px;min-height:40px;padding:10px 12px;margin:2px 0;border:0;border-radius:7px;color:#c4d5e1;font-size:12px;white-space:normal}
.nav-group button.active{background:#244c62;color:#fff;padding-left:12px;border-left:0;font-weight:600}.nav-group button.active::before{content:'';position:absolute;left:0;top:11px;bottom:11px;width:3px;border-radius:4px;background:#67d0cd}
.nav-group svg{color:#9bbacc;width:18px;height:18px}.nav-group button.active svg{color:#75d8d1}.nav-group button:hover{background:#214359;color:#fff}
.nav-marker31{position:absolute;z-index:-1;left:0;right:0;border-radius:7px;pointer-events:none;background:#244c62}.nav-marker31::before{content:'';position:absolute;left:0;top:11px;bottom:11px;width:3px;border-radius:4px;background:#67d0cd}
.has-marker31 .nav-group button.active{background:transparent}.has-marker31 .nav-group button.active::before{display:none}
.sidefoot{padding:16px 12px 3px;border-color:#ffffff13;color:#b6cbd8;font-size:10px}.sidefoot small{color:#8ca9bd;font-size:9px}
main{padding:28px 30px 40px;max-width:2040px}.pagehead{margin-bottom:23px}.pagehead h2{font-size:28px;font-weight:650;letter-spacing:-.65px}.pagehead p{font-size:13px}
.contextbar{border:1px solid var(--line);border-left:3px solid #18898c;border-radius:11px;padding:15px 18px;box-shadow:0 2px 7px #163c5703}
.context-title>span{letter-spacing:1px}.case-tabs{gap:8px}.case-tabs button{border-radius:7px 7px 0 0}
/* Información de trabajo: indicadores compactos y tablas claras. */
.home-totals{gap:16px;margin-bottom:24px}.home-totals>div,.home-totals>button{border:1px solid var(--line);border-radius:12px;min-height:116px;padding:22px;gap:17px;box-shadow:0 3px 12px #173c5704;text-align:left}
.home-totals strong{font-variant-numeric:tabular-nums;font-size:31px;letter-spacing:-.5px;color:#202124;line-height:1.1}.home-totals small{font-size:11px;margin-top:6px;color:#45474a}
.home-totals>div>svg,.home-totals>button>svg{width:45px;height:45px;border-radius:11px;padding:11px;background:#edf4f8;color:#45474a}
.home-totals>div:nth-child(2)>svg{background:#e8f4f1;color:#45474a}.home-totals>div:nth-child(3)>svg{background:#eef0f8;color:#45474a}
.home-totals .home-field30[data-urgency=warning]{border-color:#e3bc68;background:#fff9ec}.home-totals .home-field30[data-urgency=warning]>svg{background:#f8e7bb;color:#9c6b08}.home-totals .home-field30[data-urgency=warning] strong{color:#976411}
.home-totals .home-field30[data-urgency=urgent]{border-color:#df9a92;background:#fff2ef}.home-totals .home-field30[data-urgency=urgent]>svg{background:#fbe0da;color:#ad3c31}.home-totals .home-field30[data-urgency=urgent] strong{color:#a2342b}
.home-search{background:white;border:1px solid var(--line);border-radius:12px;padding:18px 20px;gap:15px}.home-search label{font-size:11px}.case-workspace{gap:20px}.case-preview{border-radius:12px;border-color:var(--line);box-shadow:0 3px 12px #173c5704;padding:23px;top:96px}.case-preview-empty{padding:28px 8px}.case-preview-empty>svg{background:#eff5f8;padding:12px;border-radius:14px;width:55px;height:55px;color:#45474a}
table{font-size:12px}th{padding:14px 16px;background:#f7f9fb;color:#45474a;font-size:10px;font-weight:650}td{padding:15px 16px}.case-table td{padding:15px 14px}tbody tr:hover{background:#f7fbfc}tr.is-selected{background:#edf7f7}
.badge{padding:5px 9px;border-radius:6px;font-weight:600}.badge.warn{background:#fff2d7;color:#876012}.row-more>summary{border-radius:7px}
/* Formularios y ventanas: una jerarquía común para todas las operaciones. */
dialog{border:1px solid #d7e2e9;border-radius:16px;box-shadow:0 24px 90px #08273e38}dialog::backdrop{background:#102c4666;backdrop-filter:blur(2px)}
.dialoghead{background:#f8fafc;border-bottom:1px solid var(--line);padding:23px 25px 20px}.dialoghead h2{font-size:23px;letter-spacing:-.4px}.dialoghead .eyebrow{color:#45474a;letter-spacing:1px}.dialoghead .icon{min-width:36px;min-height:36px;border-radius:8px;background:transparent;color:#45474a}.dialoghead .icon:hover{background:#e9eff4;color:#202124}
#editor .dialoghead{margin:0}#editor-form{padding:0 26px}.dialogfoot{border-color:var(--line);gap:10px;background:#fff}.dialogfoot button{min-height:40px}
.editor-tabs,.tabs{gap:6px}.editor-tabs{padding-top:16px;padding-bottom:12px}.editor-tabs button,.tabs button{border-radius:8px;color:#45474a;min-height:40px;padding:10px 15px}.editor-tabs button.active,.tabs button.active{background:#e5f3f2;border-color:#a8d3d0;color:#202124}
.rowcard{background:#fbfcfe;border-color:#dce5eb;padding:17px 19px}.rowcard:not([open]){background:#fff}.rowcard>summary{color:#202124;padding:1px 0;font-size:12px}.rowcard[open]>summary{padding-bottom:14px;border-bottom:1px solid #e4ecf1}.rowcard .grid{padding-top:17px}.listhead{margin-top:23px;padding-top:20px}.listhead .actions{flex-wrap:wrap}
#review:not(:empty){background:#f1f8f6;border-color:#c1dcd5;border-radius:12px}.wa-section,.text-preview,.text-section{border-radius:12px}.text-preview{background:#f5f9fb}.parts-switch{gap:8px}.parts-switch button{border-radius:9px}
.selection-empty{padding:48px 24px}.fields dt{font-size:10px;letter-spacing:.2px}.fields dd{font-size:13px;line-height:1.6}
/* Estadísticas: se mantienen sus colores semánticos, gráficos y mapa. */
.dash-hero{border-radius:16px;background:linear-gradient(112deg,#143146,#234962);box-shadow:none;padding:26px 30px}.dash-hero h1{letter-spacing:-.8px;color:#fff}.dashboard .dash-hero .dash-hero-copy p,.dash-hero .dash-period{color:#c6dbe7}.dash-hero-actions button#statistics-pdf{background:#eaf4f5;color:#202124;border-color:#eaf4f5}.dash-hero::before,.dash-hero::after{opacity:.4}.dash-filter,.dash-panel,.dash-metric,.dash-card{border-radius:12px}.dash-panel{border-color:var(--line);box-shadow:0 3px 12px #173c5703}.dash-tabs{border-radius:10px}.dash-tabs button{border-radius:7px}.dash-filter input,.dash-filter select{background:white}.dashboard .dash-overview20{gap:18px}.dashboard #dash-map-chart{border-radius:10px;isolation:isolate}
body.dashboard-present>header,body.dashboard-present .app-sidebar{display:none}body.dashboard-present .shell{display:block}
/* Movimiento breve. Ninguna animación retrasa una operación ni modifica el mapa. */
@keyframes dialog-enter31{from{opacity:0;translate:0 7px}to{opacity:1;translate:0 0}}
dialog[open]{animation:dialog-enter31 180ms ease-out}
@media(min-width:821px) and (max-width:1180px){:root{--sidebar-width:216px}main{padding:24px 22px}.home-totals{gap:12px}.home-totals>div,.home-totals>button{padding:18px;gap:12px}.brand{padding:0 16px}.brand strong{font-size:20px}}
@media(max-width:1000px){.access{grid-template-columns:1fr 1fr;max-width:920px}.access .intro{padding:48px 26px}.access .panel{padding:42px 34px 26px}.home-totals{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){:root{--header-height:64px;--sidebar-width:236px}body>header{height:64px;min-height:64px;padding-right:14px;gap:8px}.brand{width:auto;min-width:0;background:transparent;color:var(--text-primary41);padding:0 10px 0 16px;gap:9px}.brand-emblem31{width:29px;height:36px}.brand strong{font-size:19px}.brand small{display:none}.topright .tag{display:none}.topright .ghost{min-height:34px;font-size:10px;padding:7px 9px}#who{max-width:105px;font-size:10px}#menu-toggle20{display:block;color:#45474a}.shell{display:block}.app-sidebar{position:fixed;top:64px;height:calc(100vh - 64px);width:236px;z-index:10;display:none;box-shadow:12px 0 35px #132f4540}.nav-open .app-sidebar{display:flex}.nav-open .app-sidebar{animation:dialog-enter31 180ms ease-out}main{padding:20px 18px}.pagehead h2{font-size:25px}.sidefoot{display:block}.skip31{left:16px}.home-totals{gap:12px}.home-totals>div,.home-totals>button{min-height:105px;padding:17px}.home-search{padding:16px}.case-preview{position:static}.access{margin:95px auto 32px;width:calc(100% - 40px)}.access .intro{min-height:530px;padding:40px 23px}.access .panel{padding:38px 27px 24px}.access .intro h1{font-size:34px}.access-emblem31{width:100px;height:120px}.access h2{font-size:25px}.access .intro .access-subtitle31{font-size:13px}.access .intro .access-unit31{font-size:11px}.access .access-foot31{font-size:9px}.dialoghead{padding:19px 20px}#editor-form{padding:0 20px}}
@media(max-width:600px){.access{display:block;width:calc(100% - 28px);max-width:440px;margin:68px auto 24px;border-radius:16px}.access .intro{min-height:0;padding:25px 22px;display:grid;grid-template-columns:56px 1fr;text-align:left;align-items:center;column-gap:17px}.access-emblem31{grid-row:1/4;width:54px;height:66px;margin:0}.access .intro h1{font-size:30px;margin:0 0 4px}.access .intro .access-subtitle31{font-size:12px;margin:0}.access .intro .eyebrow{font-size:8px;letter-spacing:.9px;margin:9px 0 0}.access .intro .access-unit31{grid-column:1/-1;max-width:none;font-size:10px;margin:16px 0 0}.access .panel{padding:30px 25px 22px}.access .login-hint31{margin-bottom:24px}.access .access-foot31{margin-top:24px}.home-totals{gap:10px}.home-totals>div,.home-totals>button{padding:14px;gap:10px;min-height:104px;align-items:flex-start}.home-totals>div>svg,.home-totals>button>svg{width:31px;height:31px;padding:7px;border-radius:8px}.home-totals strong{font-size:26px}.home-totals small{font-size:10px}.panel{padding:18px}.pagehead{gap:12px}.pagehead .actions{justify-content:flex-start}.pagehead h2{font-size:24px}.pagehead p{font-size:12px}.dash-hero{padding:23px 20px}.dash-hero h1{font-size:25px}.contextbar{padding:12px}.dialoghead h2{font-size:20px}.editor-tabs button,.tabs button{padding:8px 12px;font-size:11px}.listhead{flex-wrap:wrap;gap:12px}.dialogfoot{flex-wrap:wrap}.sidebar-unit31{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}dialog[open]{animation:none}}
