:root{--navy:#071f31;--navy2:#123c58;--teal:#0b9698;--teal2:#087f83;--bg:#f3f7f7;--line:#dce5e8;--ink:#17313f;--muted:#6c7f88;--green:#167652;--amber:#c67711;--red:#b84848;--white:#fff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;background:var(--navy);color:#dce9ed;display:flex;flex-direction:column;z-index:10}.brandbox{padding:28px 24px 20px;border-bottom:1px solid #ffffff14}.brandbox img{width:174px;background:#fff;border-radius:10px;padding:8px}.brandbox small{display:block;color:#7f9aa6;margin:10px 0 0 9px;letter-spacing:.08em}.sidebar nav{padding:22px 14px;flex:1}.navcap{display:block;color:#607f8e;font-size:10px;letter-spacing:.14em;font-weight:800;padding:0 14px 9px}.navitem{width:100%;border:0;background:transparent;color:#9db5c0;border-radius:9px;text-align:left;padding:12px 14px;margin:2px 0;font-weight:700;font-size:13px;display:flex;gap:10px;align-items:center}.navitem span{font-size:9px;color:#638391;width:20px}.navitem:hover,.navitem.active{background:#24b2b01f;color:#fff}.navitem.active{box-shadow:inset 3px 0 #4dd1ca}.secure{margin:12px 18px;padding:14px;border:1px solid #52cfc92e;background:#1c848914;border-radius:10px}.secure b{font-size:11px;color:#bfe4e4;display:block}.secure span{font-size:10px;color:#7897a4;display:block;margin-top:5px;line-height:1.4}.user{border-top:1px solid #ffffff14;padding:15px 18px;display:flex;gap:10px;align-items:center}.avatar{width:36px;height:36px;background:#89d7d4;color:var(--navy);border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:900}.user b,.user small{display:block}.user b{font-size:11px}.user small{color:#668493;font-size:9px;margin-top:3px}.workspace{margin-left:260px}.topbar{height:70px;background:#ffffffeb;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;padding:0 34px;position:sticky;top:0;z-index:9;backdrop-filter:blur(10px)}.badge{font-size:8px;font-weight:900;letter-spacing:.1em;color:#52727a;background:#f4f9f8;border:1px solid #c7dddd;border-radius:5px;padding:6px 9px;margin-right:auto}.role-switch{background:#f5f8f8;border:1px solid var(--line);border-radius:8px;padding:3px}.role-switch button{border:0;background:transparent;border-radius:6px;padding:8px 13px;color:#71808b;font-weight:700;font-size:11px}.role-switch button.active{background:var(--navy2);color:#fff}.notify{width:35px;height:35px;border-radius:9px;border:1px solid var(--line);background:#fff;color:var(--teal2);font-weight:900}.page{padding:30px 34px 50px;max-width:1500px}.heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:24px}.eyebrow{display:block;color:var(--teal2);font-size:10px;font-weight:900;letter-spacing:.12em}.heading h1{font-size:29px;margin:6px 0 7px;color:var(--navy);letter-spacing:-.02em}.heading p{margin:0;color:var(--muted);font-size:13px;max-width:760px;line-height:1.5}.health{background:#eaf7f4;color:var(--green);border:1px solid #c9e6de;border-radius:999px;padding:8px 11px;font-size:10px;font-weight:800}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.metric,.panel{background:#fff;border:1px solid #dce7e8;border-radius:12px;box-shadow:0 7px 22px #102b3810}.metric{padding:18px}.metric small{color:#7c8e95;font-size:9px;font-weight:800;letter-spacing:.06em}.metric strong{display:block;color:var(--navy);font-size:25px;margin:8px 0 5px}.metric span{font-size:10px;color:#7b8f96}.grid2{display:grid;grid-template-columns:1.3fr .7fr;gap:16px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.panel{overflow:hidden}.panelhead{padding:17px 19px;border-bottom:1px solid #edf2f2;display:flex;justify-content:space-between;align-items:center;gap:12px}.panelhead h2{margin:0;color:#294653;font-size:15px}.panelhead p{margin:4px 0 0;color:#819197;font-size:10px}.panelbody{padding:18px}.table{width:100%;border-collapse:collapse}.table th{font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:#7d8f96;background:#f6f9f9;text-align:left;padding:10px}.table td{font-size:10px;padding:12px 10px;border-top:1px solid #edf1f2;vertical-align:middle}.table td b{color:#36525d}.table tr.clickable:hover{background:#f3faf9;cursor:pointer}.pill{display:inline-block;border-radius:999px;padding:5px 8px;font-size:8px;font-weight:800}.ok{background:#e8f7f0;color:var(--green)}.warn{background:#fff2da;color:#996015}.bad{background:#fdeaea;color:#a23d3d}.info{background:#e6f3f7;color:#296879}.muted{background:#f1f4f4;color:#718087}.progress{height:7px;background:#e5eeee;border-radius:999px;overflow:hidden}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--navy2),var(--teal));border-radius:999px}.alerts{display:grid;gap:10px}.alert{display:flex;gap:11px;padding:12px;border:1px solid #e5ecec;border-radius:10px}.alert i{width:9px;height:9px;border-radius:50%;background:var(--amber);margin-top:4px;box-shadow:0 0 0 4px #c6771117}.alert.red i{background:var(--red);box-shadow:0 0 0 4px #b8484818}.alert.green i{background:var(--green);box-shadow:0 0 0 4px #16765218}.alert strong,.alert small{display:block}.alert strong{font-size:10px}.alert small{font-size:9px;color:#7a8c93;margin-top:4px;line-height:1.4}.btn{border:0;border-radius:8px;padding:9px 12px;font-size:9px;font-weight:800}.btn.primary{background:var(--teal2);color:#fff}.btn.secondary{background:#fff;border:1px solid #d4e0e1;color:#3f5c66}.btn.danger{background:#fff0f0;color:#a33;border:1px solid #f0cccc}.actions{display:flex;gap:8px}.contract-card{padding:17px}.contract-card h3{margin:4px 0 10px;color:var(--navy);font-size:14px}.contract-card dl{margin:0;display:grid;gap:7px}.contract-card dl div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #edf1f2;padding-top:7px}.contract-card dt{font-size:9px;color:#829197}.contract-card dd{margin:0;font-size:9px;font-weight:700;color:#36515c;text-align:right}.doclist{display:grid;gap:9px}.doc{border:1px solid #e0e9ea;border-radius:10px;padding:12px;display:grid;grid-template-columns:1fr auto;gap:8px}.doc h4{margin:0;font-size:10px;color:#304e59}.doc p{margin:4px 0 0;font-size:8px;color:#7b8e95}.doc .meta{display:flex;gap:6px;align-items:center}.ai-score{display:inline-flex;align-items:center;gap:5px;color:#285e64;font-size:8px;font-weight:900;background:#eaf8f6;border:1px solid #d0e9e4;padding:5px 7px;border-radius:999px}.timeline{display:grid;gap:0}.step{display:grid;grid-template-columns:28px 1fr;gap:10px;position:relative;padding-bottom:15px}.step:before{content:"";position:absolute;left:13px;top:26px;bottom:-3px;width:1px;background:#dce7e8}.step:last-child:before{display:none}.step b{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e7f5f2;color:var(--teal2);font-size:9px;z-index:1}.step strong{font-size:10px}.step small{display:block;color:#809198;font-size:8px;margin-top:3px}.statusbar{padding:13px 16px;border-radius:10px;background:#f4f8f8;border:1px solid #dbe7e7;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.statusbar strong{font-size:11px}.worker{display:grid;grid-template-columns:1fr auto auto;gap:12px;padding:11px;border-top:1px solid #edf1f2;align-items:center}.worker strong,.worker small{display:block}.worker strong{font-size:10px}.worker small{font-size:8px;color:#849399;margin-top:3px}.drop{border:1.5px dashed #b8d2d3;border-radius:12px;padding:20px;text-align:center;background:#f7fbfa}.drop input{margin-top:12px}.modalback{position:fixed;inset:0;background:#071f3199;display:grid;place-items:center;z-index:50;padding:20px}.modal{width:min(760px,95vw);max-height:90vh;overflow:auto;background:#fff;border-radius:14px;box-shadow:0 30px 80px #071f3166}.modal .panelhead{position:sticky;top:0;background:#fff;z-index:2}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.formgrid label{font-size:9px;color:#5b7078;font-weight:700}.formgrid input,.formgrid select,.formgrid textarea{width:100%;border:1px solid #d1dfe1;border-radius:8px;padding:9px;margin-top:5px;font-size:10px;background:#fff}.wide{grid-column:1/-1}.footer{padding:15px 18px;border-top:1px solid #edf1f2;display:flex;justify-content:flex-end;gap:8px}.empty{padding:35px;text-align:center;color:#7d8f96}.notice{padding:12px;border-radius:9px;background:#fff7e9;color:#835b1f;border:1px solid #f1dfb9;font-size:9px;line-height:1.5}.aihero{background:linear-gradient(135deg,#092a40,#0a6c71);color:#fff;padding:22px;border-radius:12px}.aihero .eyebrow{color:#74ddd4}.aihero h2{margin:8px 0 5px;font-size:21px}.aihero p{margin:0;color:#b6d0d5;font-size:10px;line-height:1.5}.aihero .airow{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.aibox{background:#ffffff10;border:1px solid #ffffff1b;border-radius:10px;padding:12px}.aibox strong{display:block;font-size:16px}.aibox small{color:#a9c4ca;font-size:8px}.risklist{display:grid;gap:8px}.riskitem{padding:11px;border:1px solid #e4ecec;border-radius:10px;display:flex;gap:10px}.riskitem b{font-size:9px}.riskitem p{margin:4px 0 0;color:#7a8b92;font-size:8px}.riskitem .sev{width:9px;height:9px;border-radius:50%;background:var(--amber);margin-top:3px}.riskitem .sev.high{background:var(--red)}.riskitem .sev.low{background:var(--green)}@media(max-width:1050px){.metrics{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}.grid3{grid-template-columns:1fr 1fr}}@media(max-width:760px){.sidebar{position:static;width:100%;height:auto}.sidebar nav,.secure,.user{display:none}.workspace{margin-left:0}.topbar{padding:0 16px}.page{padding:22px 16px}.metrics,.grid3{grid-template-columns:1fr}.heading{flex-direction:column}.table-wrap{overflow:auto}.formgrid{grid-template-columns:1fr}.wide{grid-column:auto}.aihero .airow{grid-template-columns:1fr}}
.credit{color:#9ec0c8!important;font-size:9px!important;margin-top:5px!important;letter-spacing:.04em!important}.topselect{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 10px;font-size:10px;color:#45606b;font-weight:700}.req{font-size:7px;color:#8b4f10;background:#fff2da;border-radius:5px;padding:3px 5px;margin-left:5px}.enhanced{grid-template-columns:1fr auto;align-items:center}.docstates{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.ai-warn{background:#fff2da;border-color:#f1d7a8;color:#8a5915}.gate-row{display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #edf1f2}.gate-row:last-child{border-bottom:0}.gate-row strong,.gate-row small{display:block}.gate-row strong{font-size:10px}.gate-row small{font-size:8px;color:#809198;margin-top:3px}.gate-icon{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:900;background:#edf2f2;color:#72848b}.gate-icon.approved{background:#e8f7f0;color:var(--green)}.gate-icon.observed,.gate-icon.locked{background:#fdeaea;color:var(--red)}.gate-icon.pending{background:#fff2da;color:#996015}.mini-kpi{padding:18px}.mini-kpi strong{display:block;font-size:25px;color:var(--navy);margin:8px 0 4px}.mini-kpi small{font-size:9px;color:#7a8b92}.dual-progress{margin:12px 0}.dual-progress small{display:flex;justify-content:space-between;margin:7px 0 4px;color:#71838b}.gate-board{display:grid;gap:9px}.gate-card{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;border:1px solid #e3ebec;border-radius:10px;padding:12px}.gate-number{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#edf7f5;color:var(--teal2);font-size:10px;font-weight:900}.gate-card strong,.gate-card small{display:block}.gate-card strong{font-size:10px}.gate-card small{font-size:8px;color:#7b8d94;margin-top:2px}.gate-card p{font-size:8px;color:#6f838b;margin:5px 0 0}.finance-card{padding:14px;border:1px solid #e3ebec;border-radius:10px;margin-bottom:10px}.finance-card small{display:block;font-size:8px;color:#7b8e95}.finance-card strong{display:block;font-size:20px;color:var(--navy);margin-top:4px}.variance{padding:14px;border:1px solid #e3ebec;border-radius:10px;margin-top:10px}.variance>div{display:flex;justify-content:space-between;font-size:9px;margin-top:7px}.variance small{display:block;margin-top:9px;color:#688078;font-size:8px}.mutedtext{font-size:10px;color:#71858e;line-height:1.5}.mini-gates{display:grid;gap:7px;margin-top:14px}.mini-gates span{display:flex;justify-content:space-between;align-items:center;font-size:9px;border-top:1px solid #edf1f2;padding-top:7px}.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.review-card{border:1px solid #e1eaeb;border-radius:10px;padding:14px}.review-card small{display:block;color:#72868e;font-size:8px;font-weight:900;margin-bottom:8px}.review-card p{font-size:9px;color:#71858e;line-height:1.45}.field{display:block;font-size:9px;color:#5b7078;font-weight:700;margin:12px 0}.field textarea{width:100%;border:1px solid #d1dfe1;border-radius:8px;padding:9px;margin-top:5px;font-size:10px}@media(max-width:760px){.topselect{display:none!important}.review-grid{grid-template-columns:1fr}.gate-card,.gate-row{grid-template-columns:30px 1fr}.gate-card>div:last-child,.gate-row>span{grid-column:2}.enhanced{grid-template-columns:1fr}.doc .meta{margin-top:8px;justify-content:flex-start}}
/* V0.3.0 · Matriz de responsabilidades por contrato */
.contract-tabs{display:flex;gap:10px;overflow:auto;margin:0 0 14px;padding-bottom:3px}.contract-tab{min-width:190px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:11px 13px;color:#5d747d}.contract-tab b,.contract-tab span{display:block}.contract-tab b{font-size:10px;color:var(--navy)}.contract-tab span{font-size:8px;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contract-tab.active{border-color:#68bbb8;background:#edf9f7;box-shadow:inset 0 0 0 1px #68bbb8}.person-cell b,.person-cell small,.assignee b,.assignee small{display:block}.person-cell b,.assignee b{font-size:9px;color:#294653}.person-cell small,.assignee small{font-size:8px;color:#819197;margin-top:2px}.responsibility-mini{display:grid;gap:0}.assignment-line{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid #edf1f2}.assignment-line:last-child{border-bottom:0}.assignment-line>div:first-child small,.assignment-line>div:first-child strong{display:block}.assignment-line>div:first-child small{font-size:7px;text-transform:uppercase;letter-spacing:.07em;color:#82959b}.assignment-line>div:first-child strong{font-size:9px;color:#34515c;margin-top:3px}.assignee{text-align:right}.responsibility-summary{margin-top:16px;border:1px solid #e2ebec;border-radius:10px;padding:14px}.responsibility-summary h3,.section-title{font-size:11px;color:var(--navy);margin:0 0 10px}.matrix-editor{display:grid;gap:9px}.matrix-edit-row{display:grid;grid-template-columns:minmax(220px,1.7fr) 1fr 1fr 80px 65px 85px;gap:9px;align-items:end;border:1px solid #e1e9ea;border-radius:10px;padding:11px;background:#fbfdfd}.matrix-edit-row.new{background:#fff}.matrix-title b,.matrix-title small{display:block}.matrix-title b{font-size:9px;color:#304e59}.matrix-title small{font-size:7px;color:#819197;margin-top:4px}.matrix-edit-row label{font-size:7px;font-weight:800;color:#70858d}.matrix-edit-row select,.matrix-edit-row input[type="number"]{width:100%;margin-top:4px;border:1px solid #d2dfe1;border-radius:7px;padding:7px;font-size:8px;background:#fff}.toggle-field{display:flex!important;align-items:center;gap:6px;min-height:31px}.toggle-field input{margin:0}.responsibility-table td{min-width:90px}.responsibility-table td:first-child{min-width:230px}.responsibility-table td:nth-child(3){min-width:150px}.credit{font-weight:700}@media(max-width:1100px){.matrix-edit-row{grid-template-columns:1.4fr 1fr 1fr}.toggle-field{min-height:auto}.matrix-edit-row>label:nth-last-child(-n+3){align-self:center}}@media(max-width:760px){.matrix-edit-row{grid-template-columns:1fr}.assignment-line{align-items:flex-start}.assignee{text-align:left}.contract-tabs{display:grid}.contract-tab{min-width:0}}


/* V0.4.2 · navegación jerárquica y ayuda contextual */
.sidebar nav{padding:18px 12px;overflow:visible}
.navcap{padding:0 12px 10px}
.navcap small{display:block;margin-top:4px;color:#496b79;font-size:7px;letter-spacing:.02em;font-weight:600;text-transform:none}
.nav-group{margin:3px 0;position:relative}
.nav-group-btn,.nav-subitem{position:relative;width:100%;border:0;text-align:left;cursor:pointer}
.nav-group-btn{background:transparent;color:#a7bdc6;border-radius:9px;padding:11px 12px;display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:800;transition:background .15s ease,color .15s ease}
.nav-group-btn:hover,.nav-group-btn.active-group{background:#24b2b014;color:#fff}
.nav-group.open>.nav-group-btn{background:#24b2b01c;color:#fff}
.nav-chevron{font-size:11px;color:#648796;transition:transform .18s ease}
.nav-group.open .nav-chevron{transform:rotate(180deg);color:#79cbc7}
.nav-submenu{display:grid;grid-template-rows:0fr;opacity:.2;transition:grid-template-rows .2s ease,opacity .18s ease}
.nav-submenu>*{overflow:hidden}
.nav-group.open .nav-submenu{grid-template-rows:1fr;opacity:1}
.nav-group:not(.open) .nav-submenu{display:none}
.nav-subitem{background:transparent;color:#7898a5;border-radius:8px;padding:9px 10px 9px 20px;margin:1px 0;font-size:10px;font-weight:700;display:flex;gap:8px;align-items:flex-start;line-height:1.3}
.nav-subitem:hover{background:#ffffff0a;color:#dcebed}
.nav-subitem.active{background:#24b2b016;color:#fff;box-shadow:inset 3px 0 #4dd1ca}
.nav-dot{color:#4fa6a7;font-size:12px;line-height:10px}
.nav-group-btn[data-tooltip]::after,.nav-subitem[data-tooltip]::after{
 content:attr(data-tooltip);position:absolute;left:calc(100% + 14px);top:50%;transform:translateY(-50%) translateX(-4px);
 width:230px;padding:10px 12px;border-radius:9px;background:#173746;color:#e7f3f4;border:1px solid #315565;
 box-shadow:0 12px 30px #071f3140;font-size:10px;font-weight:600;line-height:1.45;letter-spacing:0;
 opacity:0;visibility:hidden;pointer-events:none;z-index:80;transition:opacity .12s ease,transform .12s ease,visibility 0s linear .12s;
}
.nav-group-btn[data-tooltip]::before,.nav-subitem[data-tooltip]::before{
 content:"";position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);
 border-width:6px 6px 6px 0;border-style:solid;border-color:transparent #315565 transparent transparent;
 opacity:0;visibility:hidden;z-index:81;
}
.nav-group-btn[data-tooltip]:hover::after,.nav-subitem[data-tooltip]:hover::after,
.nav-group-btn[data-tooltip]:focus-visible::after,.nav-subitem[data-tooltip]:focus-visible::after{
 opacity:1;visibility:visible;transform:translateY(-50%) translateX(0);transition-delay:.45s;
}
.nav-group-btn[data-tooltip]:hover::before,.nav-subitem[data-tooltip]:hover::before,
.nav-group-btn[data-tooltip]:focus-visible::before,.nav-subitem[data-tooltip]:focus-visible::before{
 opacity:1;visibility:visible;transition-delay:.45s;
}
.nav-group-btn:focus-visible,.nav-subitem:focus-visible{outline:2px solid #69d5cf;outline-offset:2px}
@media(max-width:760px){
 .nav-group-btn[data-tooltip]::after,.nav-subitem[data-tooltip]::after,
 .nav-group-btn[data-tooltip]::before,.nav-subitem[data-tooltip]::before{display:none}
}

/* V0.4.3 · sesión explícita */
.user{gap:10px}
.user-info{min-width:0;flex:1}
.user-info b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.logout-side,.logout-top{
  cursor:pointer;font-weight:800;border-radius:8px;transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.logout-side{
  margin-left:auto;border:1px solid #ffffff22;background:#ffffff08;color:#a9c2cb;padding:7px 9px;font-size:9px;
}
.logout-side:hover{background:#ffffff12;color:#fff;border-color:#ffffff3a}
.logout-top{
  border:1px solid #d7e2e4;background:#fff;color:#526a74;padding:9px 12px;font-size:9px;
}
.logout-top:hover{background:#f5f9f9;color:#17313f;border-color:#bdced1}
.session-hidden{display:none!important}
@media(max-width:760px){
  .logout-top{display:none}
}

/* V0.4.4 · escenario de prueba */
.demo-credentials{display:grid;gap:8px}.demo-credentials>div{padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#f8fbfb}.demo-credentials b{display:block;color:var(--navy);font-size:11px}.demo-credentials small{display:block;margin-top:3px;color:var(--muted);font-size:9px}


/* V0.5.0 · gestión legal, faena y fiscalización */
.legal-rule-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.legal-rule{border:1px solid #e0e9ea;border-radius:10px;padding:12px;background:#fbfdfd;display:grid;gap:6px}
.legal-rule b{font-size:9px;color:var(--navy)}.legal-rule span{font-size:8px;color:var(--muted);line-height:1.35}
.legal-list{display:grid;gap:8px}.legal-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #edf1f2}.legal-row:last-child{border-bottom:0}.legal-row b,.legal-row span{display:block}.legal-row b{font-size:9px;color:var(--navy)}.legal-row span{font-size:8px;color:var(--muted);margin-top:3px}
.legal-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.legal-facts>div{padding:11px;border:1px solid #e3ebec;border-radius:9px;background:#fbfdfd}.legal-facts small,.legal-facts b{display:block}.legal-facts small{font-size:7px;text-transform:uppercase;letter-spacing:.06em;color:#83939a}.legal-facts b{font-size:10px;color:#294653;margin-top:5px}
.checklist{display:grid;gap:9px}.checklist>div{padding:10px 12px;border:1px solid #e1e9ea;border-radius:9px;background:#fbfdfd;font-size:9px;color:#48616b}.checklist b{float:right;color:var(--navy)}
.close-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.close-flow>div{padding:12px;border:1px solid #e1e9ea;border-radius:9px;background:#f8fbfb}.close-flow small,.close-flow b{display:block}.close-flow small{font-size:7px;color:#83939a;letter-spacing:.06em}.close-flow b{font-size:11px;color:var(--navy);margin-top:5px}
.review-actions{display:flex;gap:8px;flex-wrap:wrap}.table code{font-size:8px;color:#526a74;background:#f2f6f6;padding:3px 5px;border-radius:5px}.section-title{margin-top:18px}
@media(max-width:900px){.legal-rule-strip{grid-template-columns:1fr 1fr}.legal-facts{grid-template-columns:1fr}.close-flow{grid-template-columns:1fr}}
@media(max-width:600px){.legal-rule-strip{grid-template-columns:1fr}.review-actions{display:grid}.review-actions .btn{width:100%}}
.matrix-edit-row.v050{grid-template-columns:minmax(210px,1.6fr) 1fr 1fr 1fr 72px 65px 100px 78px}
@media(max-width:1250px){.matrix-edit-row.v050{grid-template-columns:1.5fr 1fr 1fr 1fr}.matrix-edit-row.v050 .toggle-field{align-self:center}}
@media(max-width:760px){.matrix-edit-row.v050{grid-template-columns:1fr}}
.alert-button{width:100%;background:#fff;color:inherit;text-align:left;cursor:pointer;font:inherit}.alert-button:hover{background:#f7fbfb;border-color:#cbdede}.section-title{margin:18px 0 8px;color:var(--navy);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.legal-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:14px}.legal-facts>div{background:#f7faf9;border:1px solid #e2ebeb;border-radius:9px;padding:10px}.legal-facts small,.legal-facts b{display:block}.legal-facts small{font-size:7px;color:#7d8f96;text-transform:uppercase;letter-spacing:.05em}.legal-facts b{font-size:9px;color:#294653;margin-top:5px}.review-actions{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:760px){.legal-facts{grid-template-columns:1fr 1fr}}

/* V0.6.0 · ciclo documental clínico */
.lifecycle-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:10px;align-items:center}
.life-step{border:1px solid #dde8e9;border-radius:11px;padding:13px;background:#fbfdfd;min-height:72px}.life-step.done{background:#f0faf8;border-color:#9ed6d2}.life-step small,.life-step b,.life-step span{display:block}.life-step small{font-size:7px;color:#82979d;text-transform:uppercase}.life-step b{font-size:10px;color:#294653;margin:4px 0}.life-step span{font-size:8px;color:#71858c;line-height:1.35}.life-arrow{font-size:16px;color:#8aa3a8;text-align:center}
.clinic-profile-mini,.clinical-context{margin-top:12px;border:1px solid #dde8e9;border-radius:10px;padding:11px 13px;background:#f8fbfb}.clinic-profile-mini b,.clinic-profile-mini span,.clinical-context b,.clinical-context span{display:block}.clinic-profile-mini b,.clinical-context b{font-size:9px;color:var(--navy)}.clinic-profile-mini span,.clinical-context span{font-size:8px;color:var(--muted);margin-top:4px}
.cycle-explain{display:grid;gap:10px}.cycle-explain>div{border-left:3px solid #65bdb8;padding:8px 10px;background:#f8fbfb;border-radius:0 8px 8px 0}.cycle-explain b,.cycle-explain span{display:block}.cycle-explain b{font-size:9px;color:var(--navy)}.cycle-explain span{font-size:8px;color:var(--muted);margin-top:3px;line-height:1.45}
.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.profile-grid>div{border:1px solid #e1e9ea;border-radius:9px;padding:11px;background:#fbfdfd}.profile-grid small,.profile-grid b{display:block}.profile-grid small{font-size:7px;color:#83949a;text-transform:uppercase;letter-spacing:.05em}.profile-grid b{font-size:10px;color:#294653;margin-top:5px}.tag-row{display:flex;gap:7px;flex-wrap:wrap}
.flag-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0 16px}.flag-grid label{border:1px solid #dce7e8;border-radius:8px;padding:9px;background:#fbfdfd;font-size:9px;color:#465f69;font-weight:700}.flag-grid input{margin-right:6px}
.matrix-section{margin-bottom:22px;border:1px solid #e1e9ea;border-radius:12px;overflow:hidden}.matrix-section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px;background:#f7fbfb;border-bottom:1px solid #e1e9ea}.matrix-section-head h3{font-size:11px;color:var(--navy);margin:5px 0 2px}.matrix-section-head p{font-size:8px;color:var(--muted);margin:0}.matrix-section-head>b{font-size:20px;color:#69848e}.phase-badge{font-size:7px;font-weight:900;letter-spacing:.08em;border-radius:999px;padding:4px 7px}.phase-badge.startup{background:#e8f4fb;color:#286a8c}.phase-badge.monthly{background:#eaf8f4;color:#267b68}
.activation-box{display:flex;align-items:center;justify-content:space-between;gap:16px}.activation-box b,.activation-box span{display:block}.activation-box b{font-size:11px;color:var(--navy)}.activation-box span{font-size:8px;color:var(--muted);margin-top:4px}.quick-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.review-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.review-summary>div,.review-trace>div{border:1px solid #e1e9ea;border-radius:8px;padding:10px;background:#fbfdfd}.review-summary small,.review-summary b{display:block}.review-summary small{font-size:7px;color:#83949a;text-transform:uppercase}.review-summary b{font-size:9px;color:#294653;margin-top:4px}.review-trace{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}.review-trace b,.review-trace span{display:block}.review-trace b{font-size:9px;color:var(--navy)}.review-trace span{font-size:8px;color:var(--muted);margin-top:4px}.wide-field{display:grid;gap:5px;font-size:8px;font-weight:800;color:#5e747c;margin:10px 0}.wide-field textarea,.wide-field input{border:1px solid #d3e0e2;border-radius:8px;padding:9px;font:inherit;background:#fff}
.matrix-edit-row.v060{grid-template-columns:minmax(210px,1.5fr) 1fr 1fr 1fr 72px 70px 90px 75px 75px}
.btn.danger{background:#fff3f2;border-color:#efc4c0;color:#a24238}.btn.danger:hover{background:#fde6e3}.btn:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:1180px){.lifecycle-flow{grid-template-columns:1fr 1fr}.life-arrow{display:none}.matrix-edit-row.v060{grid-template-columns:1.4fr 1fr 1fr}.flag-grid{grid-template-columns:1fr 1fr}.review-summary{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.lifecycle-flow,.profile-grid,.flag-grid,.review-summary,.review-trace{grid-template-columns:1fr}.activation-box{display:grid}.matrix-edit-row.v060{grid-template-columns:1fr}}

/* V0.6.1 · corrección modal de creación/edición */
#modal-root:empty{display:none}
.modal-backdrop{
 position:fixed;inset:0;z-index:120;
 display:grid;place-items:center;
 padding:24px;
 background:rgba(7,31,49,.66);
 backdrop-filter:blur(3px);
 overflow:auto;
}
.modal-backdrop .modal{
 width:min(900px,96vw);
 max-height:92vh;
 display:flex;flex-direction:column;
 overflow:hidden;
 background:#fff;
 border:1px solid #d7e3e5;
 border-radius:14px;
 box-shadow:0 28px 90px rgba(7,31,49,.34);
}
.modalhead{
 flex:0 0 auto;
 display:flex;align-items:flex-start;justify-content:space-between;gap:18px;
 padding:18px 20px;
 border-bottom:1px solid #e6eeee;
 background:#fff;
}
.modalhead h2{margin:5px 0 0;color:var(--navy);font-size:18px}
.modalclose{
 flex:0 0 auto;width:34px;height:34px;
 display:grid;place-items:center;
 border:1px solid #d7e3e5;border-radius:8px;
 background:#fff;color:#526a75;
 font-size:22px;line-height:1;cursor:pointer;
}
.modalclose:hover{background:#f2f7f7;color:var(--navy)}
.modalbody{padding:20px;overflow:auto;overscroll-behavior:contain}
.modalfoot{
 flex:0 0 auto;
 display:flex;align-items:center;justify-content:flex-end;gap:8px;
 padding:14px 20px;
 border-top:1px solid #e6eeee;
 background:#fbfdfd;
}
.modal-backdrop .section-title{margin:20px 0 10px;color:#2d4b57;font-size:11px}
.modal-backdrop .flag-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 14px}
.modal-backdrop .flag-grid label{display:flex;align-items:center;gap:8px;font-size:9px;color:#526b75;font-weight:700}
.modal-backdrop .flag-grid input[type="checkbox"]{width:auto;margin:0}
.modal-backdrop .wide-field{display:block;font-size:9px;color:#5b7078;font-weight:700}
.modal-backdrop .wide-field textarea{width:100%;margin-top:6px;border:1px solid #d1dfe1;border-radius:8px;padding:10px;font:inherit}
@media(max-width:760px){
 .modal-backdrop{padding:10px;place-items:start center}
 .modal-backdrop .modal{width:100%;max-height:96vh}
 .modal-backdrop .flag-grid{grid-template-columns:1fr}
 .modalfoot{position:sticky;bottom:0}
}

/* V0.6.2 · código automático de contrato */
.code-explain{margin:10px 0 18px;padding:12px 14px;border:1px solid #c7e2e3;background:#f2fbfb;border-radius:10px;display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap;color:#31505a}.code-explain b{color:#007f86}.code-explain span{font-size:12px}.formgrid input[readonly]{background:#f3f6f7;color:#46616a;font-weight:700}.formgrid select:disabled{background:#f3f6f7;color:#46616a;opacity:1}.formgrid label small{display:block;margin-top:4px;color:#71858c;font-size:10px}

/* V0.7.0 · nómina masiva de trabajadores por CSV */
.worker-actions{flex-wrap:wrap}
.import-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0 18px}
.csv-picker{display:inline-flex;align-items:center;gap:8px;border:1px solid #d4e0e1;border-radius:8px;padding:9px 12px;background:#fff;color:#3f5c66;font-size:9px;font-weight:800;cursor:pointer}
.csv-picker input{display:none}
.import-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:10px 0 14px}
.import-summary>div{border:1px solid #dce7e8;border-radius:10px;background:#f8fbfb;padding:12px}
.import-summary b{display:block;color:var(--navy);font-size:19px}
.import-summary span{display:block;margin-top:3px;color:#748890;font-size:8px;text-transform:uppercase;letter-spacing:.05em;font-weight:800}
.import-preview{max-height:360px;overflow:auto;border:1px solid #e2eaea;border-radius:10px}
.import-preview .table{min-width:760px}
.import-more{display:block;margin-top:8px;color:#70858d;font-size:9px}
@media(max-width:760px){.import-summary{grid-template-columns:1fr 1fr}.worker-actions .btn{flex:1 1 145px}.import-toolbar>*{width:100%;justify-content:center}}

/* V0.8.0 · historial y trazabilidad documental */
.history-year{display:flex;align-items:center;gap:8px;font-size:8px;font-weight:900;color:#617982;text-transform:uppercase;letter-spacing:.05em}
.history-year select,.history-subfilters select{border:1px solid #d4e0e1;border-radius:8px;background:#fff;color:#294653;padding:8px 10px;font:inherit;font-weight:800}
.history-view-switch{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.history-legend{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin:0 0 14px;padding:10px 12px;border:1px solid #e0e9ea;border-radius:9px;background:#fbfdfd;font-size:8px;font-weight:800;color:#5c737c}
.history-legend span{display:inline-flex;align-items:center;gap:6px}.history-legend i{width:10px;height:10px;border-radius:50%;display:inline-block;border:1px solid transparent}
.history-legend i.approved{background:#dff4ec;border-color:#78c5ad}.history-legend i.review{background:#e6f2fb;border-color:#7db1d7}.history-legend i.observed{background:#fff2d8;border-color:#e3b759}.history-legend i.rejected{background:#fde5e3;border-color:#df8c85}.history-legend i.pending{background:#f1f4f5;border-color:#c7d2d5}.history-legend i.na{background:#fff;border-color:#ccd7da}
.history-scroll{width:100%;overflow:auto;border:1px solid #e1e9ea;border-radius:11px;background:#fff}
.history-matrix{border-collapse:separate;border-spacing:0;min-width:1120px;width:100%;font-size:8px}
.history-matrix th,.history-matrix td{border-right:1px solid #e8eeee;border-bottom:1px solid #e8eeee;padding:8px;text-align:center;vertical-align:middle;background:#fff}
.history-matrix thead th{position:sticky;top:0;z-index:3;background:#f4f8f8;color:#526a74;text-transform:uppercase;letter-spacing:.04em;font-size:7px}
.history-matrix .history-doc-name{position:sticky;left:0;z-index:2;text-align:left;min-width:250px;max-width:320px;background:#fbfdfd}
.history-matrix thead .history-doc-name{z-index:4;background:#eef5f5}
.history-doc-name b{display:block;color:#294653;font-size:9px;line-height:1.25}.history-doc-name small{display:block;color:#83969d;font-size:7px;margin-top:3px;font-weight:600}
.history-cell{width:30px;height:30px;border-radius:8px;border:1px solid #d9e4e5;display:inline-grid;place-items:center;background:#f4f7f7;color:#70838a;font-weight:900;cursor:pointer;transition:.12s ease;font-size:11px}
.history-cell:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 3px 9px #09283a18}.history-cell:disabled{cursor:default;opacity:.5}
.history-cell.approved{background:#e6f7f0;border-color:#8dcdb7;color:#187457}.history-cell.review{background:#eaf4fb;border-color:#91bddb;color:#286a91}.history-cell.observed{background:#fff4db;border-color:#e5bd68;color:#946900}.history-cell.rejected{background:#fde9e7;border-color:#e29a93;color:#a43e35}.history-cell.pending{background:#f5f7f7;border-color:#ccd8da;color:#809198}.history-cell.na{background:#fff;border-color:#d6dfe1;color:#9aabad}
.history-na{color:#a6b4b8}.history-help{font-size:8px;color:#71868e;margin:10px 2px 0}
.history-subfilters{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:0 0 14px}.history-subfilters label{display:grid;gap:5px;min-width:260px;font-size:8px;font-weight:900;color:#667d85;text-transform:uppercase;letter-spacing:.04em}
.history-text-status{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;font-size:7px;font-weight:900}.history-text-status.approved{background:#e6f7f0;color:#187457}.history-text-status.review{background:#eaf4fb;color:#286a91}.history-text-status.observed{background:#fff4db;color:#946900}.history-text-status.rejected{background:#fde9e7;color:#a43e35}.history-text-status.pending{background:#f1f4f5;color:#71858c}.history-text-status.na,.history-text-status.none{background:#f7f8f8;color:#8b9a9f}
.history-events{display:grid;gap:8px}.history-event{border-left:3px solid #65bdb8;background:#f8fbfb;padding:10px 12px;border-radius:0 9px 9px 0}.history-event b,.history-event span{display:block}.history-event b{font-size:9px;color:#294653}.history-event span{font-size:8px;color:#748890;margin-top:4px}.history-event p{font-size:8px;color:#526a74;margin:7px 0 0;line-height:1.45}
.history-version-table{min-width:980px}
@media(max-width:760px){.history-view-switch .btn{flex:1 1 130px}.history-year{width:100%;justify-content:space-between}.history-year select{flex:1}.history-subfilters label{width:100%;min-width:0}.history-legend{gap:8px 12px}}
.history-scope{display:grid;grid-template-columns:minmax(220px,1fr) minmax(300px,1.4fr);gap:10px;margin:0 0 14px}.history-scope label{display:grid;gap:5px;font-size:8px;font-weight:900;color:#667d85;text-transform:uppercase;letter-spacing:.04em}.history-scope select{border:1px solid #d4e0e1;border-radius:9px;background:#fff;color:#294653;padding:9px 10px;font:inherit;font-weight:800;min-width:0}@media(max-width:760px){.history-scope{grid-template-columns:1fr}}
