.demo-identidad{position:fixed;bottom:12px;right:22px;z-index:12;border:1px solid var(--borde);background:var(--panel);color:var(--txt);border-radius:8px;padding:7px 12px;font:11px Inter,sans-serif;cursor:pointer;box-shadow:var(--sombra)}.demo-identidad b,.demo-identidad span{display:block}.demo-opciones{position:fixed;top:0;right:0;bottom:0;left:0;background:#0005;z-index:100;display:grid;place-items:center;padding:16px}.demo-opciones section{background:var(--panel);color:var(--txt);border-radius:12px;width:min(560px,100%);max-height:90vh;overflow:auto;padding:24px;box-sizing:border-box}.demo-opciones label{display:flex;gap:10px;margin:14px 0;align-items:start}.demo-opciones .acciones{display:flex;gap:8px;flex-wrap:wrap}.demo-opciones textarea{width:100%;box-sizing:border-box;min-height:80px}@media print{#demo-controles{display:none!important}.demo-web:after{content:"VECTO DEMO\aVersión de evaluación";white-space:pre;position:fixed;bottom:0;right:0;font:7pt Arial,sans-serif;color:#666;text-align:right}}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-Dc4VJyIJ.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-BPnxn4xp.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-BLGc9T1a.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-ZzOtrSSW.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-Bput3-QP.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-DCpCPQOf.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-DxZsaF_h.woff2) format("woff2"),url(/assets/inter-greek-400-normal-BZzXV7-1.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-BUNmGMP1.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-hnt3BR84.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-C1t-h-pH.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-BOOGhInR.woff2) format("woff2"),url(/assets/inter-latin-400-normal-gitzw0hO.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-BShVwWPj.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-CUiC4oBV.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-D4Vwzodn.woff2) format("woff2"),url(/assets/inter-cyrillic-500-normal-DH2hs3aW.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-B6guLgqG.woff2) format("woff2"),url(/assets/inter-greek-ext-500-normal-M2hEX8vc.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-CeQXL5ds.woff2) format("woff2"),url(/assets/inter-greek-500-normal-d_eO-yCQ.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2) format("woff2"),url(/assets/inter-vietnamese-500-normal-DQPw2Hwd.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CIS2RHJS.woff2) format("woff2"),url(/assets/inter-latin-ext-500-normal-UMdmhHu2.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-D2bGa7uu.woff2) format("woff2"),url(/assets/inter-latin-500-normal-deR1Tlfd.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-CaqZN2hq.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bt9VVOA-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-BGBWG807.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-BuzJQFbW.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-Cnui8OiR.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-C9WLioJ8.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-Dhlb-90d.woff2) format("woff2"),url(/assets/inter-greek-600-normal-CwicyhtI.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-Cm6aH8_k.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-BnYJhD27.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CAF0vJDd.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-D273HNI0.woff2) format("woff2"),url(/assets/inter-latin-600-normal-B5cFAncS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-ext-700-normal-ClVoMEGq.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-700-normal-Ced3hgUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-700-normal-bGtGjVdZ.woff2) format("woff2"),url(/assets/inter-cyrillic-700-normal-Bc8_fv8J.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-ext-700-normal-SzCdnevJ.woff2) format("woff2"),url(/assets/inter-greek-ext-700-normal-DXvzx4Na.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-700-normal-Cxpycf-U.woff2) format("woff2"),url(/assets/inter-greek-700-normal-BRYTaFLL.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-vietnamese-700-normal-CGpBpxLq.woff2) format("woff2"),url(/assets/inter-vietnamese-700-normal-dAnkLlTo.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-ext-700-normal-CzikT_rs.woff2) format("woff2"),url(/assets/inter-latin-ext-700-normal-6V9MnIL5.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Sckx8rpT.woff2) format("woff2"),url(/assets/inter-latin-700-normal-B8MtJ_2k.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAASIABAAAAAACQQAAAQuAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVF4AdBEICoRkhAALIAABNgIkAzoEIAWFAAeBFAwHG2oHKJ6DceNW4lJEFHn9tEOE37LNsvkjHr7f739rn3u+OSrSxLQytE91Dw2PYtNVq3Qaw/vJ7fUBMdOj/u2ImB98cT5WUx9F13ZKt06mU7tG1sAYcM26yCRX4f/0904bmwq8hwkUUMTRX61pa9C3xlpAGYw1vOu8C2SBZZFlld7DAW82RJWmwYMI1AJCKBNCIASqdZGFmtPSNQRhMpR0EKjWTwm6z6sJ+4jqhxjovTinVdRpZaQjaQzAYjI8NgAKDJCokgunCn9oUQE8VZd/F//+v6P4F1U9gLr58yNI/dJX9BAshEoJbTDogz7ocKoUsPvES8UK/aQIUQgpGgECBVLkOEV6iASTYgNAPKdNXayhDPL7IJuAZnEYSZ0eOLc9i5Rv5/+lEi3sW/kfnCf/+fTe0sxS7CKLx5erRJkKOixEqQaoqrvx5HN4iz4VhX0gS6DjFIWUzn/fIXJRVFY1NFRVNVeFt+SYmrK6vCU6eJsnKnJj5HTESMTQZOTI3Y/tzr3rUcOsiRy/ciP50s3Mycgxmhz9GMXhjzVH30ut796NHP0UUa31/Zoa6vCH6iPvdIM0IRANaT60FablmZlZd+UKNFy9NrvnFGxb5NC2CRxR0/rIyF/WNn+35sv9r+tHVhkseuWGKkCPPh96+GXt8Lc/Sh24ujfjf+tNw1lZWreiPuHb/PSpyjdv2rf/++ZE5TSKjFdZxYsBvr1sEHl5STuHZqYR7jGYGvGBBdjcaB5bODY1GAxMjsd0wDMIzXAXODRd74DxNMtO4YuYHclgLQRzp9KlUmxptCwv9bYgvWGD2xBW7r9413fdJu+mxzvzAUYeeONQvZP4kgfqZle4jhH/MWh+UbxgtJdrLdXLymNL53PRU0D3Q6FcXTfGqGcul6vrqhgLGAVSv+IVIfZOHpu+mlLqSlnj903j8mazXDsba/wbxhS/4Oubh1c5/uXDgt4j5KtnGEy5BIJHo0ur+jD+r2qCkuP1aRVM8EpUoRYSJyqNRA38uwDvHBNo0AejO2Z+ZYLLal1QiFyFh1EDQOgSCSCpjwwKU8yDbIjroEwne0G5Qca49cYp4AlqtQNZfWTQoFb1tRpFYAmRD+HXTkV4uQhG2bg4OKmyoypAsUGtWgQXyFxYrkpODeUxvGqIZA61erXo0sFG1UBGuPgpuon8RNUG2DhovAjZCBuZwtXrU3mQGki9+pm0eVZAXoWxLWTQoYHBPrJR4WunNxIFbCHfkTyPK+sqxjxDmGArZvf79JGJ3GwEqjwc7a7NIrl/7bJ7Nzu4+n1Ow6shEPnUrtVo7cnd5Wi5qCUbBIQbNKCP95FMCSZylEV5VCiiMqqiOmrKZ/I/C0gI1fyuulVcM2E1r4MhtcV/fbCD+HwEvVzH1dGNAzFE0FTbKzyQz3gootrNbN2a4PuG0j0JOgE=) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-400-normal-CIEtRijs.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2) format("woff2"),url(/assets/jetbrains-mono-greek-400-normal-CNojz0t3.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/jetbrains-mono-vietnamese-400-normal-BeU3T8wf.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-400-normal-DHMOLxAi.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-B11XCQ5g.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(data:font/woff2;base64,d09GMgABAAAAAASIABAAAAAACQAAAAQtAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVDYAdBEICoRkg3gLIAABNgIkAzoEIAWFIgeBFAwHG1wHKI7DuPEacDIiFJ/g+f47+1/7dIcdXTlD8DKqmcw4eIC+AOCPf6+qiWq3h6+aSCLNJDnkqX9Xl+rv/6dSBcwSBCzEoVqxNbp5SqPMYdKBQhBq1dK9ggSsgYUoGnHOqttMECvWjIJfPA8cjQAuAEAQLAiClASc7M6OkfbO/nHs6ACmCYBxZXKP4s9uXIHECh4AdEhX0yIHC6jzgAb65sshStMMChwEfWVjZe8Anset/6H93x8jOyL5fuS67z4Dlam+BPyH/pV2FLCZAOnU0XPzCQGiJ7AkXgSFhqDEB4AAoAAN2ExDgM10joCNfDQUbvxaXM8LovT79D9MEyYU9+q/myT9p/m8uWi2mLJBPbzcih2wYIPzBDFNvABt315OXwy8BaRnbo5hXsOS5taknX4FguiaZnd4vQ7HxnBnm3SPYXHrQbclvOgyDhsHnZPO8f3G5I2fbr34Y7+hzRozVzyw5bKHdu03plXgvE9FO/Uz4/xPUKd8/PHk+R+JODnlg1lDTv3Qed77zDNqRszaqHUQT248kUPGzBXXXHGFnHrVVdft2m8c4PhpjB+/QEqMU54xruc6m3w8++XNXx4sya9rMvNq88m6X1zeOMlRuQ+/nvNw4+ZrCt58yDdSVOQdfoi/jc/ePfZY+1taYaH21FH2Y4fGG+RVNJkIN4SSiWj3ZKGG1oojoYr2SNWFVbHvY1XX1PR+H6y+oKrqgmryqj1UXnmk5cKWysPM3R4Uh5svYo6saAtU3V297+d91U/X/frzLvUdqiqfruKvhx5+OeOYxbHI7SenQum+PTw/fvRLGQ/jiufOn3/S+vlsfGn9h4Zb96fekZ7xRups68FhVCYCWHHvZVIPxjanr3NABSALqkR7FMBOulF9ScHvV3np+6pK/eEzRx877K3/z65pvwN89eGtV3Ly5ft/25ngaiSYDVYUAAKvIKimMdLO6YBQEY+aZpbXZ5WinTBQXwAA4LMAXuNUBPCSTmMfjd6jpNLNjbToDuBpaR9AoTBbUeERO2o0erNeR6KFne5HK/nOQA+VBtFnt1LtBj6pJQIutnLwipz/Ix9OYNSqZQEreiQELIkKmRIRNWdewpiIZVGtVi0J6xWR0ComIGpFnN+AVStWzUtIWBNXq0iRuJCYqDUJcYXiopYUWhUzp8iQTv20dtO84Agw6YrhuOijfqUKlSpRAruvTq9WdeQw2vs5SUsCYhdt7icIt1nNkseKPZzgV6q4FfYbH4ZIBcThYTEgLIgIkYRbJLl7/rks+ObZDxydE8W9LymoUMiqZUVbtVv0GNkcispQM0IpEG7sBdK9IYr6aKKLRaxiQxO7OMQphrUlGIscFbElV6LF5S0dQN5RbRoUdRbWWOYCy8sB83RxS7FqG/UEQslE5Nsd5v93uF3T0bLiypD/uJhn3q9fCAA=) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-cyrillic-600-normal-EVf6-Yzo.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-600-normal-BB5xRk30.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-greek-600-normal-H7WoG9Et.woff2) format("woff2"),url(/assets/jetbrains-mono-greek-600-normal-3KAm9r92.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/jetbrains-mono-vietnamese-600-normal-CSpzN4cI.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-latin-ext-600-normal-BfB_LPfz.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-600-normal-DiQlUoE6.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-600-normal-DXv3JcnD.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(data:font/woff2;base64,d09GMgABAAAAAASAABAAAAAACNgAAAQlAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVEwAdBEICoRkg3gLIAABNgIkAzoEIAWEaAeBFAwHGzgHSJ4DbjN9OmtkIy0becnT/RjJ4uGfw99974/GXrhoTCqLok66NY3jTloEUdrmwCevn/Ls30xSpFlZ6UJMrW+fTNwAEdSuvSzCRANvEgnjUmw8swT+87+w7I/7qb8XlIB7NpGBjXiUjRX0b7ZpJ8+orRLzvGhWYCMdAU3BbRdPuqOeKAXuRKAWEEJJCIEQqNbLD9osq2kBviL8A4Fq4yLgAa+6DNaiAwcYOrqYHfgQcMgL3AFgG4fHHqREEUBSxUtmBfzNWxXADfviy8Kff7dA4QfFBQG6fnoX5Dh+gEEcIVRKtMIYhc/kCgsCDiarQY4QWpEKQoYTAAIJUcaHAHIXIN9BooBWhEAr0j7QzAkh1RnEWOY4wuRW8uX/f5o5W8gXcjriOUb9z/wjACRuWaWrpKIyLMQ/DUDN/TT+ErgHRpPBIRQrKCcZCvxBBCBEkSD4lKMjRblQlCvpQHPsSZE9R6K2o/vpXkGboKWbbltxx2feLT+a6KJb5293n7vTt53uwOzUO4gYc5eedhvS+a1bbdNuIiSA89cuGo25IZh6DXrJJIIUUibFUG0zt+ijO+cvnj8fjVm4cKlvN90DwzrdMmy8H9GjDyv90Xz2W10PVj3oTY7LLfwfmxMHoef+8n33R0duOxF3LPCYFXtymWNdcLBD3VF4S91+GWf8c9k7sZC6fPpnbENnCmayerBNki0ZbFUXiHV/wkxWklGmydCkaR5o0oZnlj3oSVdnZKjTITaXStOyWGYakzUgTSt1gvSs/otJL1FkzE/3e+aXvj7n+TOv9HkZ6evS4e3OXafCx8iqJfNGpQLM7rkt0ppRJ8N3gd1IjHLaROM0cLkhdf2NQjZ4bmjo2mBWKJ4CPA4IZXX9hFlPBnhxWhXzgBGQ88QeRD3j1/AD5a/JxMnL5gK5deaC2H7HvK98gngBbzfWLKD0g2ufeA7nMsQepBwDgpdhy90BzC+8DSCers8O6KKloYn0RCtKo9EM9LsAd7AgNBhFGEAsvl4K1LpCiCIF3IZHFUKvX5AqfUPBgkO+ovHpUNJtOJSN6hDWWxAigkCt9hbEXdaOHLvI6lM5gQA79LRYOpUsWBpKYu2klOQULGlGCwOzHIkSmYmZKBlQrlmCQ0mDv5SeiVyiemVqVJGyEDJhKemY1dLT0YsnpKch0UbKxExJTydIigQpkiUvYA3SVFDqFH2uNggh343VmPs2ycX0DIYwPYTigMak5AjS0ohI8zmoo4EJwypS4iVcDOuDuvRMgytHPa5LTjnoc1YiCcT0tBI3qjXxqqFomJf2PylAOHMDRp1HGBaDQCTiIC7iQSH4iEICRHMZkUlqk/KsOmVSGlOK7NIseRNZFp3NkbNaLateTmKScHGTAyu2WqQf6lD8rMNg1+lKTcpwkfvQ/7eRMwAA) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAAbMAA8AAAAACMAAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABWAAAABgAAAAcABQABEdQT1MAAAFwAAAAIAAAACBEaExjR1NVQgAAAZAAAAAqAAAAKrjmuNJPUy8yAAABvAAAAE0AAABgFpFcclNUQVQAAAIMAAAAPgAAAEzrJ8wpY21hcAAAAkwAAABRAAAAdAyHCodnYXNwAAACoAAAAAgAAAAIAAAAEGdseWYAAAKoAAAB6wAAAmCgFyn6aGVhZAAABJQAAAA2AAAANhke8XVoaGVhAAAEzAAAAB8AAAAkBlb/YGhtdHgAAATsAAAAHwAAADoe9gKVbG9jYQAABQwAAAAgAAAAIATdBZ9tYXhwAAAFLAAAABsAAAAgABgARW5hbWUAAAVIAAABEwAAAmg8iFt7cG9zdAAABlwAAABwAAAAlNdzMTB42mNgZGBg4GGAAEYgZAWTjCAeAAG0ABkAAQAAAA4ACgAMAAAAAAABREZMVAAIAAQAAAAA//8AAAABAAAADgAKAAwAAAAAAAJERkxUAA5sYXRuABIACAAAAAAAAAAA//8AAAAAeNpjYGGKYNrDwMrAwNTFFMHAwOANoRnjGIwYHYCiDAycDFDAxM6ABLycgMQCBl6Wl8x//l1hYGD+w6gDFGEEq1RjugWkFBhYAfurC2wAAAB42gXBsQ1AABQFwHufiI5CYQBDaVVIlBLLmckM7kT0CpPCop79uIPz3q4MojUrSFcvtVIfGlEZQfgB9IwGBAAAeNpVyEcBwkAQBdCXHnoVgJU44Y4pFIAFUAOJiS23ZOZ3lKhwVSlkr91xdlQp7dwMnr5FWb/rMQQW26v+h3xT+IRHGEIBCvNr9Wh0OUU7NxUUAAAAAAEAAf//AA942m0QNZQUMfQn2Zt1Gcdhd2Dt/DLJrOLu0OHu7u4uJf3D+odLhUOLu0MLJVQ7S3C4u+S7/w8EJgIgFz8XkgR+ACrH5V5xGaH4RHTSPY7q3KsCH+LnlWQLLrqAi4DBAsBM5HghBkBVqlopy6vSVDKZkiSvdenY5e3p6+k+R+qCMUKioe/Jp08j82bzGEUZ0wTV6s8K5AJOAgIQncPd2rNGBEVgCms/0U1oVCbUNAyTc8ehRP70eNfKsEI8cnjZzsfIj+5VuhVisUK3itvofhX1fmViCTwAQGBo9QuO4Y8QEZ4eADWJJJNtTlsMXdYkKdXCGbN0zSCU2UkrIemobtGGDYsWbcjNGcKd57ncc0c0DqybjfKz166d7d7pP9NZUrYXL7bLaMhkViox0TNTHYkbcVL09P/Tswlk6ATWj55Jxmz+vauh6/+2Tf1tO2huPj930E/KC2+LxbcFzooBNrPfoX4zGJ/+nfEFBdalCyu878DyeQbod2dQAUxGqNoNm6bDHQEqJfrnWzvmeQM+LJ7HXyPN3Xbz3DmcdM/pmR4B8WI9NR2Nqjw/B4DgOsmiM+QCEADVod7rC/euJNnDh4VnK0mgF8ITBkDielQzaAsXTEJ1o6fPyFpW7YzpJDG+fzydjvcfD98ArHSFeAAAAQAAAAI2BA7H5DpfDzz1AAMD6AAAAADb0qaaAAAAANva0PIAF/9MAkEDtgABAAYAAgAAAAAAAHjaY2BkYGD+8+8KAwNTBIP4P1UmR6AIKuADAH3HBLkAeNpjimCIAmJlJCwOxR5ArIlEM0AxCBxiqAMA3bsHpgAAAAAaADsARgBRAG4AdgCoALAA5QEKAQoBCgEKARcBMHjaY2BkYGDgZ1BhYGaQB2IQDwGYGBgBCHkAXgB42mJgYOBhmAZojBxwI4yiKPwNawS1bdu2Hafu2F5VFzAL6BIadyk9yfw183Lf/e555xkLJmsOkAaDTVSTNthMNo8ZVj/Kk8FWWk2lBtuoNE0bbKfZdGpwIaOmVIZN2st0b7D9bU1TkfS0wcXkmh5Ywk+AJCGc3OEgQj2D9KMQHUu5Ud5UH2FRrgv5fISl7eAX+UX70v245LkionqBqLIDv3Q5aRdH1AKqJulTu8OJHPJd0suVnF6pX3f5Rnvdt+PXUy0qPFwzSK9iQG1K/kWmflmx53XWr/d9dZ3KpRvKoRHpr3v9Z4/Pb6J8Jb9TSkTcq3DiUfZLvdP4Hqtsc8bN609tKC7wqL7iEL2hKt8zK7tdPwB42mNgYgCD/6kMRkCKkQEd8AOxCsNJRiYGG0ZmRhZGVkY2RnYGZkYORk5GLkZuNsekotSyVPbSvEwDE0dXCO1qAeW7QfmWrOmJubmJYJ6BowGTcxBfYnJpSWpyfm6SXnJicSoPSMbYwAzMAQCg7RyY) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-cyrillic-700-normal-BWTpRfYl.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-700-normal-D-pZprdT.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-greek-700-normal-C6CZE3T8.woff2) format("woff2"),url(/assets/jetbrains-mono-greek-700-normal-BKnG4yCd.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/jetbrains-mono-vietnamese-700-normal-DM-RtOcO.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-latin-ext-700-normal-CZipNAKV.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-700-normal-BgTT6JQy.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-latin-700-normal-BYuf6tUa.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-700-normal-TgaEE9cx.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--acento: #ffb100;--acento-osc: #e6a000;--acento-txt: #25282b;--azul: #946200;--azul-osc: #7a5100;--azul-claro: #fff6dc;--ambar: #d97706;--ambar-claro: #fffbeb;--sidebar: #25282b;--sidebar-2: #303437;--sidebar-act: #3a3e42;--sidebar-txt: #b1b3b5;--sidebar-txt-on: #ffffff;--fondo: #f8f9fa;--fondo-2: #f1f2f3;--panel: #ffffff;--borde: #dcdddf;--borde-2: #b1b3b5;--txt: #5a5e62;--txt-fuerte: #25282b;--txt-2: #73777b;--txt-3: #a0a3a6;--verde: #16a34a;--verde-claro: #f0fdf4;--rojo: #dc2626;--rojo-claro: #fef2f2;--mat: #1d4ed8;--mat-bg: #eff6ff;--equ: #b45309;--equ-bg: #fffbeb;--mo: #15803d;--mo-bg: #f0fdf4;--foco: rgba(255, 177, 0, .28);--radio: 10px;--radio-lg: 14px;--sombra: 0 1px 3px rgba(37, 40, 43, .08), 0 1px 2px rgba(37, 40, 43, .06);--mono: "JetBrains Mono", ui-monospace, Consolas, monospace;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--fondo: #1b1d1f;--fondo-2: #222527;--panel: #25282b;--sidebar: #17191b;--sidebar-2: #25282b;--sidebar-act: #303437;--txt: #e4e5e6;--txt-fuerte: #ffffff;--txt-2: #b1b3b5;--txt-3: #7e8285;--sidebar-txt: #9a9da0;--azul: #ffb100;--azul-osc: #ffc233;--azul-claro: #3a3016;--ambar-claro: #3b2800;--verde-claro: #052e16;--rojo-claro: #3b0a0a;--mat: #60a5fa;--mat-bg: #1e3a5f;--equ: #fbbf24;--equ-bg: #3b2800;--mo: #4ade80;--mo-bg: #052e16;--borde: #34383b;--borde-2: #4a4e52;--sombra: 0 1px 3px rgba(0, 0, 0, .3);color-scheme:dark}}:root[data-theme=dark]{--fondo: #1b1d1f;--fondo-2: #222527;--panel: #25282b;--sidebar: #17191b;--sidebar-2: #25282b;--sidebar-act: #303437;--txt: #e4e5e6;--txt-fuerte: #ffffff;--txt-2: #b1b3b5;--txt-3: #7e8285;--sidebar-txt: #9a9da0;--azul: #ffb100;--azul-osc: #ffc233;--azul-claro: #3a3016;--ambar-claro: #3b2800;--verde-claro: #052e16;--rojo-claro: #3b0a0a;--mat: #60a5fa;--mat-bg: #1e3a5f;--equ: #fbbf24;--equ-bg: #3b2800;--mo: #4ade80;--mo-bg: #052e16;--borde: #34383b;--borde-2: #4a4e52;--sombra: 0 1px 3px rgba(0, 0, 0, .3);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Inter,system-ui,sans-serif;font-size:13px;color:var(--txt);background:var(--fondo);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}.mono,.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.num{text-align:right;white-space:nowrap}.app{display:grid;grid-template-columns:220px 1fr;height:100%}.sidebar{background:var(--sidebar);color:var(--sidebar-txt);display:flex;flex-direction:column;overflow-y:auto}.marca{display:flex;align-items:flex-end;justify-content:space-between;gap:6px;padding:10px 12px 8px 4px;border-bottom:1px solid rgba(255,255,255,.08)}.marca-img{width:168px;height:auto;display:block}.marca-version{font-size:10px;color:var(--sidebar-txt);font-family:var(--mono);padding-bottom:12px}.marca-logo{width:32px;height:32px;border-radius:8px;background:var(--azul);display:grid;place-items:center;color:#fff;flex:none}.marca-txt b{display:block;color:var(--sidebar-txt-on);font-size:14px;font-weight:700;letter-spacing:.02em}.marca-txt span{font-size:10px;color:var(--sidebar-txt);letter-spacing:.06em;text-transform:uppercase;font-family:var(--mono)}.nav-grupo{padding:12px 8px 4px;display:flex;flex-direction:column;gap:1px}.nav-sec{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--sidebar-txt);padding:0 8px;margin-bottom:4px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:6px;font-size:13px;font-weight:500;color:var(--sidebar-txt);cursor:pointer;border:0;background:none;width:100%;text-align:left;transition:background .15s}.nav-item:hover{background:var(--sidebar-2);color:var(--sidebar-txt-on)}.nav-item.activo{background:var(--sidebar-act);color:var(--sidebar-txt-on);box-shadow:inset 3px 0 0 var(--acento)}.nav-item.activo svg{color:var(--acento)}.nav-item svg{flex:none}.nav-badge{margin-left:auto;font-size:10px;font-family:var(--mono);background:#ffffff1a;color:var(--sidebar-txt);padding:1px 6px;border-radius:10px}.sidebar-pie{margin-top:auto;padding:12px 8px;border-top:1px solid rgba(255,255,255,.08)}.sidebar-pie .empresa{padding:8px 10px 0;font-size:11px;line-height:1.5}.sidebar-pie .empresa b{color:var(--sidebar-txt-on);font-weight:600}.obra-activa{margin:12px 8px 0;background:#ffffff14;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:8px 12px;cursor:pointer;display:flex;align-items:center;gap:8px}.obra-activa:hover{background:#ffffff24}.obra-activa div{min-width:0;flex:1}.obra-activa b{color:var(--sidebar-txt-on);display:block;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.obra-activa span{color:var(--sidebar-txt);font-family:var(--mono);font-size:11px}.main{overflow:auto;display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;gap:16px;padding:0 24px;min-height:52px;background:var(--panel);flex-wrap:wrap;border-bottom:1px solid var(--borde);box-shadow:var(--sombra);position:sticky;top:0;z-index:5}.migas{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--txt-2);min-width:0;padding:10px 0}.migas span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.migas .actual{color:var(--txt);font-weight:600}.migas .sep{color:var(--borde-2)}.topbar .acciones{margin-left:auto;display:flex;gap:8px;align-items:center;padding:8px 0;flex-wrap:wrap}.contenido{padding:20px 24px 40px;display:flex;flex-direction:column;gap:16px}.segmentado{display:flex;gap:4px;padding:4px;background:var(--fondo);border-radius:var(--radio)}.segmentado button{padding:5px 14px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;color:var(--txt-2);border:0;background:none}.segmentado button:hover{color:var(--txt);background:var(--panel)}.segmentado button.activo{background:var(--panel);color:var(--txt);box-shadow:var(--sombra);font-weight:600}.panel{background:var(--panel);border:1px solid var(--borde);border-radius:var(--radio-lg);box-shadow:var(--sombra)}.panel-cab{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--borde)}.panel-cab h2,.panel-cab h3{margin:0;font-size:14px;font-weight:650}.panel-cab .der{margin-left:auto;display:flex;gap:8px;align-items:center}.panel-cuerpo{padding:16px}.btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:7px;border:1px solid var(--borde-2);background:var(--panel);cursor:pointer;font-weight:550;white-space:nowrap}.btn:hover{background:var(--fondo-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primario{background:var(--acento);border-color:var(--acento);color:var(--acento-txt);font-weight:650}.btn.primario:hover{background:var(--acento-osc);border-color:var(--acento-osc)}.btn.ambar{background:var(--ambar);border-color:var(--ambar);color:#fff}.btn.peligro{color:var(--rojo)}.btn.peligro:hover{background:var(--rojo-claro)}.btn.chico{height:26px;padding:0 8px;font-size:12px}.btn.icono{width:28px;height:28px;padding:0;justify-content:center;border-color:transparent;background:transparent}.btn.icono:hover{background:var(--fondo-2)}.campo{display:flex;flex-direction:column;gap:4px;min-width:0}.campo .campo-label{font-size:11.5px;color:var(--txt-2);font-weight:550}.input,select.input,textarea.input{height:32px;border:1px solid var(--borde-2);border-radius:6px;padding:0 9px;background:var(--panel);outline:none;width:100%}textarea.input{height:auto;padding:8px 9px;resize:vertical}.input:focus{border-color:var(--acento);box-shadow:0 0 0 3px var(--foco)}.input.num{font-family:var(--mono)}.input:disabled{background:var(--fondo-2);color:var(--txt-2)}.check{display:inline-flex;gap:8px;align-items:center;cursor:pointer;font-size:12.5px}.grid{display:grid;gap:12px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g6{grid-template-columns:repeat(6,minmax(0,1fr))}.span2{grid-column:span 2}.span3{grid-column:span 3}.buscador{position:relative;flex:1;max-width:460px}.buscador svg{position:absolute;left:9px;top:8px;color:var(--txt-3)}.buscador .input{padding-left:32px}.buscador .input{padding-right:30px}.buscador .input::-webkit-search-cancel-button{display:none}.buscador .limpiar-busqueda{position:absolute;right:3px;top:3px;width:26px;height:26px}.buscador .limpiar-busqueda svg{position:static}.filtro-lista{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:10px 16px}.filtro-lista .buscador{flex:1 1 250px}.filtro-lista .muted{font-size:12px}.selector-buscable{display:inline-grid;grid-template-columns:minmax(0,1fr) 30px;align-items:center;gap:4px;width:100%;min-width:0;vertical-align:middle}.selector-buscable>select{width:100%!important;min-width:0}.selector-busqueda{grid-column:1 / -1;min-width:0;display:grid;gap:3px}.selector-busqueda .buscador{max-width:none}.selector-busqueda .muted{font-size:11px}.selector-resultados{display:grid;max-height:220px;overflow-y:auto;border:1px solid var(--borde);border-radius:5px;background:var(--panel)}.selector-resultados:empty{display:none}.selector-resultados button{border:0;border-bottom:1px solid var(--borde);background:transparent;color:var(--txt);font:inherit;font-size:12px;text-align:left;padding:7px 9px;cursor:pointer;white-space:normal}.selector-resultados button:last-child{border-bottom:0}.selector-resultados button:hover,.selector-resultados button:focus-visible,.selector-resultados button.seleccionada{background:var(--fondo-2);outline:2px solid var(--acento);outline-offset:-2px}.tablero-fin>button{cursor:pointer;text-align:left;color:var(--txt);font:inherit}.tablero-fin>button:hover,.tablero-fin>button:focus-visible{outline:2px solid var(--acento)}.tablero-fin .muted{font-size:11px}.fin-filtros>.selector-buscable{width:min(420px,100%)}.fin-filtros{align-items:flex-end}.leyenda-flujo,.acciones-flujo,.compromiso-importes{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:12px 0}.leyenda-flujo{font-size:12px}.leyenda-flujo span{display:inline-flex;gap:5px;align-items:center}.leyenda-flujo i{width:12px;height:12px;border-radius:2px}.grafico-flujo{display:flex;min-height:180px;gap:6px;overflow-x:auto;align-items:flex-end;padding:10px 2px;border-bottom:1px solid var(--borde)}.mes-flujo{min-width:64px;flex:1;border:1px solid transparent;border-radius:5px;padding:5px;background:transparent;color:var(--txt);cursor:pointer;font:inherit;font-size:10px}.mes-flujo:hover,.mes-flujo:focus-visible,.mes-flujo.seleccionado{border-color:var(--acento);background:var(--fondo-2)}.barras-mes{display:flex;height:130px;align-items:flex-end;justify-content:center;gap:3px;padding-bottom:5px}.barras-mes>span{width:13px;border-radius:3px 3px 0 0}.flujo-mensual{min-width:1350px}.compromiso{margin-top:14px}.compromiso .panel-cab h3{font-size:14px}.compromiso-importes{font-size:13px}@media (max-width: 900px){.tablero-fin{grid-template-columns:repeat(2,minmax(0,1fr))}}.gantt-caja .bar-wrapper.partida-localizada .bar{stroke:var(--acento);stroke-width:3px}@media print{.selector-buscable{display:inline-block}}table.tabla{width:100%;border-collapse:collapse}.tabla th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--txt-2);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--borde);background:var(--fondo-2);position:sticky;top:0;z-index:1}.tabla td{padding:7px 10px;border-bottom:1px solid var(--borde);vertical-align:middle}.tabla tr.clic{cursor:pointer}.tabla tr.clic:hover td{background:var(--azul-claro)}.tabla tr.sel td{background:#dbeafe}.tabla tfoot td{font-weight:650;background:var(--fondo-2);border-top:1px solid var(--borde)}.tabla .desc{max-width:520px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tabla input.celda{width:100%;min-width:70px;border:1px solid transparent;background:transparent;border-radius:5px;padding:4px 6px;font-family:var(--mono);text-align:right;outline:none}.tabla select.celda-select{height:28px;padding:2px 6px;font-size:12px;border-color:transparent;background:transparent}.tabla select.celda-select:hover,.tabla select.celda-select:focus{border-color:var(--borde-2);background:var(--panel)}.tabla input.celda:hover{border-color:var(--borde-2);background:var(--panel)}.tabla input.celda:focus{border-color:var(--acento);background:var(--panel);box-shadow:0 0 0 2px var(--foco)}.tabla-scroll{overflow:auto}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:99px;font-size:11px;font-weight:600;background:var(--fondo-2);color:var(--txt-2)}.badge.azul{background:var(--azul-claro);color:var(--azul)}.badge.ambar{background:var(--ambar-claro);color:#92400e}.badge.verde{background:var(--verde-claro);color:var(--verde)}.badge.rojo{background:var(--rojo-claro);color:var(--rojo)}.punto{width:8px;height:8px;border-radius:50%;display:inline-block}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--borde);padding:0 16px}.tab{padding:10px 14px;border:0;background:none;cursor:pointer;color:var(--txt-2);font-weight:550;border-bottom:2px solid transparent;margin-bottom:-1px}.tab.activo{color:var(--txt-fuerte);border-bottom-color:var(--acento)}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.kpi{padding:16px}.kpi small{color:var(--txt-2);font-size:12px}.kpi b{display:block;font-size:24px;font-family:var(--mono);margin-top:6px;letter-spacing:-.5px}.kpi span{color:var(--txt-3);font-size:11.5px}.vacio{padding:40px 20px;text-align:center;color:var(--txt-2)}.vacio svg{color:var(--txt-3);margin-bottom:8px}.aviso{padding:10px 14px;border-radius:7px;background:var(--ambar-claro);color:#78350f;font-size:12.5px;display:flex;gap:8px;align-items:flex-start}.aviso.info{background:var(--azul-claro);color:#1e3a8a}.aviso.error{background:var(--rojo-claro);color:#7f1d1d}.muted{color:var(--txt-2)}.paginador{display:flex;gap:8px;align-items:center;justify-content:flex-end;padding:10px 16px;border-top:1px solid var(--borde);color:var(--txt-2);font-size:12px}.modal-fondo{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:50;padding:clamp(8px,3vh,30px) clamp(8px,3vw,30px);overflow:hidden}.modal{background:var(--panel);border-radius:12px;width:min(980px,100%);max-height:100%;min-height:0;display:flex;flex-direction:column;box-shadow:0 20px 50px #00000040;overflow:hidden}.modal-cab,.modal-pie{flex:none}.modal.chico{width:min(560px,100%)}.modal-cab{display:flex;align-items:center;padding:14px 18px;border-bottom:1px solid var(--borde)}.modal-cab h3{margin:0;font-size:15px}.modal-cab .btn{margin-left:auto}.modal-cuerpo{padding:16px 18px;overflow:auto;flex:1 1 auto;min-height:0;overscroll-behavior:contain}.modal-pie{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 18px;border-top:1px solid var(--borde)}.toast{position:fixed;bottom:22px;right:22px;background:var(--sidebar);color:#fff;padding:11px 16px;border-radius:8px;z-index:60;box-shadow:0 8px 24px #0003;display:flex;gap:8px;align-items:center}.toast.error{background:var(--rojo)}.apu-cab{display:grid;grid-template-columns:1fr auto;gap:18px;padding:18px 20px}.apu-cod{display:flex;gap:10px;align-items:center;margin-bottom:6px}.apu-cod .codigo{font-family:var(--mono);font-weight:700;font-size:15px;color:var(--azul)}.apu-desc{font-size:15px;font-weight:600;line-height:1.4}.apu-datos{display:grid;grid-template-columns:repeat(4,130px);gap:10px;align-content:start}.apu-cuerpo{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}.apu-secciones{display:flex;flex-direction:column;gap:16px;min-width:0}.seccion-cab{display:flex;align-items:center;gap:10px;padding:11px 16px;border-bottom:1px solid var(--borde)}.seccion-cab h3{margin:0;font-size:13.5px}.seccion-cab .marca-color{width:4px;height:18px;border-radius:2px}.seccion-cab .der{margin-left:auto;display:flex;gap:8px;align-items:center}.seccion-pie{display:flex;gap:22px;justify-content:flex-end;padding:10px 16px;background:var(--fondo-2);border-top:1px solid var(--borde);border-radius:0 0 var(--radio) var(--radio);font-size:12.5px}.seccion-pie div{display:flex;gap:8px;align-items:baseline}.seccion-pie b{font-family:var(--mono);font-size:13.5px}.seccion-pie .unit b{color:var(--azul)}.resumen{position:sticky;top:84px}.resumen .fila{display:flex;justify-content:space-between;align-items:center;padding:7px 0;font-size:12.5px}.resumen .fila b{font-family:var(--mono);font-weight:600}.resumen .fila.sep{border-top:1px dashed var(--borde-2);margin-top:4px;padding-top:10px}.resumen .fila .pct{color:var(--txt-3);font-family:var(--mono);font-size:11.5px;margin-left:4px}.pu-caja{margin:14px -16px -16px;padding:16px;background:var(--sidebar);color:#fff;border-radius:0 0 var(--radio) var(--radio)}.pu-caja small{color:var(--sidebar-txt);text-transform:uppercase;letter-spacing:1px;font-size:10.5px}.pu-caja .pu{font-family:var(--mono);font-size:28px;font-weight:700;color:#fff;letter-spacing:-.5px;margin:4px 0 2px}.pu-caja .pu span{font-size:14px;color:var(--ambar);margin-right:6px}.pu-caja .alt{color:var(--sidebar-txt);font-family:var(--mono);font-size:12.5px}.pu-caja .total{display:flex;justify-content:space-between;margin-top:12px;padding-top:10px;border-top:1px solid #2b384b;font-size:12.5px}.pu-caja .total b{font-family:var(--mono);color:var(--ambar)}.otros{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.otros div{background:var(--fondo-2);border-radius:6px;padding:8px}.otros small{display:block;font-size:10.5px;color:var(--txt-2)}.otros b{font-family:var(--mono);font-size:12.5px}.cambiado{background:var(--ambar-claro)!important}.apu-cab .apu-desc{min-height:56px}@media (max-width: 1320px){.apu-cuerpo{grid-template-columns:minmax(0,1fr)}.resumen{position:static}.resumen .panel-cuerpo{display:grid;grid-template-columns:1fr 1fr;column-gap:28px}.resumen .pu-caja{grid-column:1 / -1;margin:14px -16px 0;border-radius:0}.resumen .otros{grid-column:1 / -1}.apu-cab{grid-template-columns:1fr}}.hoja{background:#fff;width:816px;margin:0 auto;padding:48px 52px;box-shadow:0 2px 12px #0000001f;color:#111;font-size:11px}.hoja h1{font-size:16px;margin:0}.hoja h2{font-size:12.5px;margin:16px 0 6px;text-transform:uppercase;letter-spacing:.5px}.hoja .encab{display:flex;justify-content:space-between;border-bottom:2px solid var(--sidebar);padding-bottom:10px;margin-bottom:12px;gap:20px}.hoja .encab .emp{font-weight:700;font-size:13px;color:#25282b}.hoja table{width:100%;border-collapse:collapse;margin-bottom:6px}.hoja th{background:#eef2f7;text-align:left;padding:4px 6px;font-size:10px;text-transform:uppercase;border:1px solid #d5dbe4}.hoja td{padding:3.5px 6px;border:1px solid #e3e8ef}.hoja .num{font-family:var(--mono);font-size:10.5px}.hoja .tot td{font-weight:700;background:#fafbfd}.hoja .kv{display:grid;grid-template-columns:140px 1fr 140px 1fr;gap:3px 10px;margin-bottom:8px}.hoja .kv b{font-weight:600}.hoja .pu-final{display:flex;justify-content:space-between;background:var(--sidebar);color:#fff;padding:8px 10px;font-weight:700;font-size:13px;margin-top:8px}.hoja .son{margin-top:10px;padding:6px 8px;border:1px solid #d5dbe4;background:#fafbfd;font-size:10.5px}.hoja .firmas{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:50px;text-align:center}.hoja .firmas div{border-top:1px solid #333;padding-top:4px}.salto{break-after:page}@media print{@page{margin:12mm}html,body{background:#fff!important}html,body,#root,.app,.main{height:auto!important;min-height:0!important}.app{display:block}.hoja>:last-child{margin-bottom:0!important}.sidebar,.topbar,.no-print,.toast,.barra-obra,.barra-seccion,.subpestanas,.aviso-lectura,.logo-rep-vacio{display:none!important}.main{overflow:visible}.contenido{padding:0}.hoja{box-shadow:none;width:auto;padding:0;margin:0}}.logo-carga{display:flex;flex-wrap:wrap;align-items:center;gap:10px;min-height:32px}.logo-carga img{max-height:56px;max-width:220px;object-fit:contain;border:1px solid var(--borde);border-radius:6px;padding:4px;background:#fff}textarea.input{height:auto;padding:8px 9px;resize:vertical;line-height:1.45}.hoja.formal{font-size:10.5px}.formal-cab{display:flex;justify-content:space-between;gap:24px;padding-bottom:12px;border-bottom:3px solid #25282B}.formal-emp{display:flex;gap:14px;align-items:center;line-height:1.45;color:#333}.formal-logo{max-height:64px;max-width:170px;object-fit:contain}.formal-emp-nombre{font-size:15px;font-weight:700;color:#25282b}.formal-doc{text-align:right;min-width:190px}.formal-titulo{font-size:20px;font-weight:800;letter-spacing:2px;color:#25282b;margin-bottom:4px}.hoja .formal-datos{width:auto;margin-left:auto}.hoja .formal-datos td{border:0;padding:1px 0 1px 12px}.hoja .formal-datos td:first-child{color:#666;text-align:left}.formal-obra{display:grid;grid-template-columns:1fr 1fr;gap:4px 20px;margin:12px 0;padding:8px 10px;background:#f5f7fa;border-left:3px solid #FFB100}.formal-obra div{display:flex;gap:8px}.formal-obra span{color:#666;min-width:64px}.hoja .formal-tabla thead{display:table-header-group}.hoja .formal-tabla th{background:#25282b;color:#fff;border-color:#25282b}.hoja .formal-tabla tr{break-inside:avoid}.hoja .formal-capitulo td{background:#fff4d6;font-weight:700;color:#25282b;border-color:#d5dbe4;padding-top:5px}.hoja .formal-subtotal td{font-weight:700;background:#fafbfd}.formal-pie-tabla{display:flex;gap:16px;align-items:flex-start;margin-top:8px;break-inside:avoid}.formal-letras{flex:1;display:grid;gap:4px;padding:6px 8px;border:1px solid #d5dbe4;background:#fafbfd}.hoja .formal-totales{width:auto;min-width:270px;margin:0}.hoja .formal-totales td:first-child{font-weight:600}.hoja .formal-total td{background:#25282b;color:#fff;font-weight:800;font-size:12px;border-color:#25282b}.formal-condiciones{margin-top:14px;break-inside:avoid}.formal-condiciones div{white-space:pre-wrap;line-height:1.5;color:#333}.formal-firmas{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:56px;text-align:center;break-inside:avoid}.formal-firmas div{display:grid;gap:2px}.formal-firmas .linea{border-top:1px solid #333;margin-bottom:4px}.formal-firmas span{color:#555}.avance{flex:1;height:8px;border-radius:4px;background:var(--borde);overflow:hidden;min-width:60px}.avance>div{height:100%;border-radius:4px}.gira{animation:girar .9s linear infinite}@keyframes girar{to{transform:rotate(360deg)}}.campo.crece{flex:1}.formal-nota{margin:-4px 0 10px;padding:6px 10px;border:1px dashed #d5dbe4;color:#333;white-space:pre-wrap}.fila-insumo{display:grid;grid-template-columns:42px 80px minmax(0,1fr) auto;gap:6px;align-items:center;width:100%;text-align:left;padding:6px 4px;border:0;border-bottom:1px solid var(--borde);background:none;cursor:pointer;font-size:12px;color:inherit}.fila-insumo:hover{background:var(--azul-claro)}.fila-insumo .desc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.memoria-seccion{margin-top:14px;break-inside:auto}.memoria-seccion h2{font-size:12.5px;color:#25282b;border-bottom:1px solid #d5dbe4;padding-bottom:3px;break-after:avoid}.memoria-seccion div{white-space:pre-wrap;line-height:1.6;text-align:justify;font-size:11px}.memoria-editor{display:grid;gap:12px}.memoria-editor .sec{border:1px solid var(--borde);border-radius:8px;padding:10px;display:grid;gap:8px;background:var(--panel)}.memoria-editor .sec-cab{display:flex;gap:6px;align-items:center}.utilitarios{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.util-tarjeta{display:flex;gap:12px;align-items:flex-start;text-align:left;padding:16px;border:1px solid var(--borde);border-radius:10px;background:var(--panel);cursor:pointer;color:inherit}.util-tarjeta:hover:not(:disabled){border-color:var(--acento);box-shadow:0 2px 10px #0000000f}.util-tarjeta:disabled{opacity:.55;cursor:not-allowed}.util-tarjeta b{display:block;margin-bottom:3px}.util-tarjeta span{font-size:12px;color:var(--txt-2);line-height:1.4}.util-icono{width:38px;height:38px;border-radius:8px;display:grid;place-items:center;background:var(--azul-claro);color:var(--azul);flex-shrink:0}.menu-wrap{position:relative}.menu{position:absolute;right:0;top:calc(100% + 4px);z-index:50;min-width:210px;background:var(--panel);border:1px solid var(--borde);border-radius:8px;box-shadow:0 8px 24px #00000024;padding:4px}.menu-item{display:flex;gap:8px;align-items:center;width:100%;padding:8px 10px;border:0;background:none;border-radius:6px;cursor:pointer;text-align:left;color:inherit;font-size:13px}.menu-item:hover{background:var(--azul-claro)}.panel-cab h2,.panel-cab h3,.migas .actual,.kpi b,.tarjeta h3{color:var(--txt-fuerte)}.hoja{color:#25282b}.encab-emp{display:flex;gap:12px;align-items:center}.logo-rep{max-height:52px;max-width:150px;object-fit:contain}.logo-rep-vacio,.formal-logo.logo-rep-vacio{width:110px;height:52px;border:1.5px dashed #B1B3B5;border-radius:6px;display:grid;place-items:center;color:#b1b3b5;font-size:10px;font-weight:700;letter-spacing:2px;flex-shrink:0}.formal-logo.logo-rep-vacio{height:64px;width:130px}.logo-vacio{display:inline-grid;place-items:center;width:110px;height:44px;border:1.5px dashed var(--borde-2);border-radius:6px;color:var(--txt-3);font-size:11px}.restablecer{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--borde)}.restablecer:last-of-type{border-bottom:0}.restablecer b{display:block;color:var(--txt-fuerte);margin-bottom:2px}.restablecer span{font-size:12px;color:var(--txt-2)}.restablecer.peligro b{color:var(--rojo)}.btn.peligro-lleno{background:var(--rojo);border-color:var(--rojo);color:#fff}.btn.peligro-lleno:disabled{opacity:.45}.formal-generado{margin-top:28px;text-align:center;font-size:7px;color:#b1b3b5;letter-spacing:.3px}.selector-cliente{position:relative}.selector-cliente .campo-label{display:flex;gap:6px;align-items:center}.selector-cliente .menu{max-height:320px;overflow:auto}.menu-item.activo{background:var(--azul-claro)}.chip-filtro{display:inline-flex;align-items:center;gap:6px;padding:2px 4px 2px 10px;border-radius:16px;background:var(--azul-claro);font-size:12px}.formal-obra .formal-obra-ancho{grid-column:1 / -1}.asistente{min-height:100vh;height:100%;overflow:auto;display:grid;place-items:center;padding:24px;background:linear-gradient(160deg,#25282B 0 38%,var(--fondo) 38%)}.asistente-caja{width:min(760px,100%);background:var(--panel);border-radius:16px;box-shadow:0 20px 60px #00000040;padding:26px 30px;display:grid;gap:16px}.asistente-logo{width:220px;justify-self:center}.asistente-pasos{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.asistente-pasos span{display:inline-flex;gap:5px;align-items:center;padding:4px 12px;border-radius:14px;background:var(--fondo-2);color:var(--txt-2);font-size:12px;font-weight:600}.asistente-pasos span.activo{background:var(--acento);color:var(--acento-txt)}.asistente-pasos span.hecho{background:var(--verde-claro);color:var(--verde)}.asistente-cuerpo h2{margin:0 0 4px;font-size:18px;color:var(--txt-fuerte)}.asistente-cuerpo>p{margin:0 0 12px}.asistente-paises{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-bottom:8px}.asistente-pais{display:grid;gap:3px;text-align:left;padding:12px 14px;border:1.5px solid var(--borde);border-radius:10px;background:var(--panel);cursor:pointer;color:inherit}.asistente-pais b{font-size:14px;color:var(--txt-fuerte)}.asistente-pais span{font-size:11.5px;color:var(--txt-2)}.asistente-pais:hover{border-color:var(--borde-2)}.asistente-pais.sel{border-color:var(--acento);box-shadow:0 0 0 3px var(--foco)}.asistente-resumen{display:grid;gap:6px;margin-bottom:10px}.asistente-resumen div{display:flex;gap:10px}.asistente-resumen span{width:90px;color:var(--txt-2)}.asistente-pie{display:flex;justify-content:space-between;gap:8px;border-top:1px solid var(--borde);padding-top:14px}.aviso-lectura{background:var(--azul-claro);color:var(--txt-fuerte);font-size:12px;padding:6px 24px;border-bottom:1px solid var(--borde)}.tabla.cierre th,.tabla.cierre td{font-size:11.5px;padding:4px 6px}.cierre-grupo td{background:var(--azul-claro);font-weight:700;color:var(--txt-fuerte, #25282B)}.hoja-cierre{font-size:8.5px}.hoja-cierre .tabla.cierre th,.hoja-cierre .tabla.cierre td{font-size:7.6px;padding:2px 3px}.hoja-cierre .tabla.cierre .desc{max-width:150px;white-space:normal}.hoja-cierre .cierre-grupo td{background:#fff4d6;color:#25282b}.hoja-cierre .cierre-total td{background:#25282b;color:#fff}.hoja-cierre .tabla-scroll{overflow:visible;max-height:none}.capitulos-resumen{display:flex;flex-direction:column;gap:6px}.capitulo-fila{display:grid;grid-template-columns:minmax(180px,2fr) 3fr 170px 56px;gap:12px;align-items:center;font-size:13px}.capitulo-nombre{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.capitulo-barra{height:8px;border-radius:4px;background:var(--borde);overflow:hidden}.capitulo-barra span{display:block;height:100%;background:var(--acento);border-radius:4px}.capitulo-monto,.capitulo-pct{text-align:right}.hoja .encab,.formal-cab{border-bottom:3px solid #25282B;box-shadow:0 3px #ffb100;margin-bottom:16px}.hoja th{background:#25282b;color:#fff;border-color:#25282b;letter-spacing:.3px}.hoja td{border-color:#e4e5e7}.hoja h2{color:#25282b;border-left:3px solid #FFB100;padding-left:7px}.hoja .tot td{background:#fff8e6;color:#25282b}.hoja .pu-final{background:#25282b;border-left:4px solid #FFB100}.hoja .son{background:#fafafa;border-color:#e4e5e7}.hoja .firmas div{border-top-color:#25282b}.hoja .kv span{color:#6b6f73}.hoja table:not(.formal-datos) tbody tr:nth-child(2n):not(.tot):not(.formal-capitulo):not(.formal-subtotal):not(.formal-total):not(.cierre-grupo) td{background-color:#fcfcfc}.zona-peligro{margin-top:8px;border:1.5px solid var(--rojo);border-radius:12px;background:var(--rojo-claro);padding:4px 18px 6px}.zona-peligro h3{margin:12px 0 2px;font-size:14px;color:var(--rojo)}.buscar-comandos{display:flex;align-items:center;gap:8px;margin:4px 12px 10px;padding:7px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:var(--sidebar-txt);cursor:pointer;font-size:12.5px}.buscar-comandos:hover{background:#ffffff1a}.buscar-comandos kbd,.buscador-comandos-entrada kbd{margin-left:auto;font-family:var(--mono);font-size:10.5px;padding:1px 6px;border-radius:4px;border:1px solid currentColor;opacity:.7}.nav-obra{padding-left:22px!important;font-size:12.5px}.nav-obra-texto{display:grid;min-width:0;text-align:left}.nav-obra-texto b,.nav-obra-texto span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-obra-texto span{font-size:11px;opacity:.7;font-family:var(--mono)}.barra-seccion,.barra-obra{background:var(--panel);border-bottom:1px solid var(--borde);padding:0 24px}.barra-seccion .tabs,.barra-obra .tabs{border-bottom:0}.barra-obra-cab{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0 4px}.barra-obra-id{display:grid;min-width:0}.barra-obra-id b{font-size:15px;color:var(--txt-fuerte);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:520px}.barra-obra-id>span{font-size:12px;color:var(--txt-2)}.barra-obra-acciones{margin-left:auto;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.subpestanas{padding:8px 24px 0}.enlace{background:none;border:0;padding:0;color:var(--azul);cursor:pointer;font:inherit;text-decoration:underline}.buscador-comandos{align-self:flex-start;margin-top:8vh}.buscador-comandos-entrada{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--borde)}.buscador-comandos-entrada input{flex:1;border:0;outline:0;font-size:15px;background:transparent;color:var(--txt-fuerte)}.buscador-comandos-lista{padding:6px;max-height:60vh}.buscador-comandos-grupo{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--txt-2);padding:8px 10px 4px}.buscador-comandos-item{display:flex;gap:10px;align-items:center;width:100%;text-align:left;padding:7px 10px;border:0;border-radius:6px;background:none;cursor:pointer;color:inherit;font:inherit}.buscador-comandos-item .desc{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.buscador-comandos-item.sel{background:var(--azul-claro)}.detalle-tecnico{margin-top:10px;padding:10px;border-radius:6px;background:var(--fondo-2, #f1f3f5);font-size:12px;word-break:break-all}.main>*{flex-shrink:0}.barra-seccion .tabs,.barra-obra .tabs,.subpestanas.tabs{flex-wrap:wrap;padding:0}.dialogo-fondo{z-index:80}.dialogo-texto{margin:0;white-space:pre-line;line-height:1.5}.sidebar{overflow-x:hidden}.sidebar-pie,.sidebar-pie .empresa{min-width:0}.sidebar-pie .empresa>b,.sidebar-pie .empresa>div{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.span4{grid-column:span 4}.span-todo{grid-column:1 / -1}textarea.condiciones{min-height:180px;resize:vertical;width:100%}.actualizar-grupo{display:grid;gap:8px;padding:10px 0;border-bottom:1px solid var(--borde)}.actualizar-grupo:last-child{border-bottom:0}.actualizar-sub{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;padding-left:26px}.opcion-radio{display:flex;align-items:center;gap:8px;flex-wrap:wrap;cursor:pointer}.tabla tr.fila-marcada td{background:var(--acento-claro, rgba(255, 184, 0, .08))}.tabla tr.fila-abierta td{border-bottom-color:transparent}.tabla tr.fila-composicion>td{background:var(--fondo);padding:10px 14px 14px}.composicion{display:grid;gap:10px}.composicion .apu-section{margin:0}.composicion-pie{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.donde-titulo{display:flex;align-items:center;gap:6px;font-weight:600;font-size:12.5px;margin-bottom:6px}.actualizar-infl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding-left:26px}.tabla tbody.grupo-repetidas{border-top:2px solid var(--borde-2)}.celda-alt{display:flex;align-items:center;gap:4px;margin-top:3px}.celda-alt>span{font-size:10.5px;color:var(--txt-3);font-family:var(--mono)}.conversor-jornal{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px}.aviso-dias{margin-top:8px;padding:8px 10px;border-radius:6px;background:var(--ambar-claro, #fff6dd);color:var(--txt);font-size:12px;line-height:1.45}.fila.subtitulo-ret span{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--txt-3)}.titulo-seccion{font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--txt-2);margin:10px 0 6px}.obra-reemplazo{padding:6px 0;border-top:1px solid var(--borde)}.deshacer-reemplazos{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.enlace-pie{color:var(--acento);font-weight:600;font-size:11px;padding:0;text-align:left}.badge.regimen-publico{background:#1d4ed8;color:#fff;letter-spacing:.04em}.badge.regimen-privado{background:#0f766e;color:#fff;letter-spacing:.04em}.menu-mas{position:relative}.menu-mas-lista{position:absolute;right:0;top:100%;z-index:20;background:var(--panel);border:1px solid var(--borde);border-radius:8px;box-shadow:var(--sombra);min-width:280px;padding:4px;display:grid}.menu-mas-lista button{text-align:left;background:none;border:0;padding:8px 10px;border-radius:6px;cursor:pointer;font:inherit;color:var(--txt)}.menu-mas-lista button:hover{background:var(--fondo)}.elegir-regimen{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.elegir-regimen button{text-align:left;border:2px solid var(--borde);border-radius:10px;background:var(--panel);padding:16px;cursor:pointer;font:inherit;color:var(--txt);display:grid;gap:6px}.elegir-regimen button:hover{border-color:var(--acento)}.elegir-regimen b{font-size:16px}.como-funciona{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.como-funciona ol{margin:6px 0 0;padding-left:18px;line-height:1.6}.nota-factor{font-size:11.5px;color:var(--txt-suave, #6b7280)}.nota-codigo{font-size:11px;color:var(--txt-suave, #6b7280);padding:0 16px 6px;display:flex;gap:4px;align-items:center}.barra-seleccion{display:flex;gap:10px;align-items:center;padding:8px 14px;background:var(--azul-claro);border-bottom:1px solid var(--borde);font-size:12.5px}.barra-avance{height:8px;border-radius:4px;background:var(--borde, #e3e6ea);overflow:hidden}.barra-avance>div{height:100%;background:#ffb100;transition:width .2s}.paginas-hoja{display:flex;align-items:center;gap:12px;margin-bottom:10px}.paginas-hoja .paginador{margin:0;padding:0;border-top:0}.salto-antes{break-before:page}.hoja.apu{font-size:9.5px;line-height:1.3}.hoja.apu .encab{padding-bottom:6px;margin-bottom:8px}.hoja.apu .encab h1{font-size:13px}.hoja.apu .encab .emp{font-size:11px}.hoja.apu .logo-rep{max-height:38px}.hoja.apu .logo-rep-vacio{height:38px;width:90px}.hoja.apu .kv{gap:1px 8px;margin-bottom:4px;grid-template-columns:110px 1fr 110px 1fr}.hoja.apu h2{font-size:10px;margin:7px 0 3px}.hoja.apu table{margin-bottom:3px}.hoja.apu th{padding:2px 5px;font-size:8.5px}.hoja.apu td{padding:1.5px 5px}.hoja.apu .num{font-size:9px}.hoja.apu tr{break-inside:avoid}.hoja.apu .pu-final{padding:5px 9px;font-size:11.5px;margin-top:5px}.hoja.apu .son{margin-top:5px;padding:4px 7px;font-size:9.5px}.hoja.apu .firmas{margin-top:30px;gap:50px}.apu-cierre{break-inside:avoid}.hoja .apu-nota{font-size:9.5px;margin:0 0 6px;padding:3px 7px;background:#fff4d6;border-left:3px solid #FFB100}.hoja .apu-cliente-titulo{font-size:9px;font-weight:600;color:#555;margin:4px 0 2px}.hoja table.apu-cliente td{color:#666;font-style:italic}.badge-sin-apu{background:#fff4d6;color:#8a5a00;border:1px solid #f0c060}.hoja .nota-libre{font-size:9.5px;color:#444;margin-top:6px}.kpi-parametros .kpi-pcts{display:grid;grid-template-columns:repeat(2,max-content);gap:2px 14px;margin-top:8px}.kpi-parametros .kpi-pcts span{color:var(--txt);font-family:var(--mono);font-size:13.5px;font-weight:600;white-space:nowrap}.barras-leyenda{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px 22px}.barras-item{display:grid;grid-template-columns:10px minmax(max-content,1fr) auto 58px;gap:8px;align-items:center}.barras-nombre{white-space:nowrap}.barras-monto,.barras-pct{text-align:right;white-space:nowrap}.condiciones-fondo{z-index:200}.modal.condiciones{max-width:620px}.condiciones-texto p{margin:0 0 9px;line-height:1.5}.tabla tr.fila-aviso td{background:var(--rojo-claro, #fdecec)}.lista-observaciones{list-style:none;margin:0;padding:0;display:grid;gap:8px}.lista-observaciones li{display:flex;gap:10px;justify-content:space-between;align-items:baseline;padding:7px 10px;border:1px solid var(--borde);border-radius:7px;background:var(--panel)}.lista-observaciones li.bloquea{border-color:var(--rojo);background:var(--rojo-claro, #fdecec)}.lista-observaciones li .enlace{white-space:nowrap}.tabla tr.fila-apagada td{opacity:.55}.ayuda-pie{position:relative;padding:0 2px 6px}.boton-ayuda{width:28px;height:28px;border-radius:50%;color:var(--sidebar-txt);border:1px solid rgba(255,255,255,.16);background:none}.boton-ayuda:hover,.boton-ayuda.activo{color:var(--sidebar-txt-on);background:var(--sidebar-2);border-color:#ffffff4d}.menu-ayuda{position:absolute;left:2px;bottom:calc(100% + 2px);z-index:50;min-width:210px;padding:6px;border-radius:8px;background:var(--panel);border:1px solid var(--borde);box-shadow:0 8px 24px #00000040}.menu-ayuda-item{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:0;border-radius:6px;background:none;color:var(--txt-fuerte);font-size:13px;text-align:left;cursor:pointer}.menu-ayuda-item:hover{background:var(--fondo-2)}.menu-ayuda-item svg{color:var(--txt-2);flex:none}.form-ayuda{display:grid;gap:12px}.form-ayuda textarea{resize:vertical;min-height:110px}.lista-adjuntos{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}.lista-adjuntos li{display:flex;align-items:center;gap:10px;padding:4px 4px 4px 10px;border:1px solid var(--borde);border-radius:6px;font-size:12px}.lista-adjuntos li .desc{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.se-incluira{border:1px solid var(--borde);border-radius:8px;padding:10px 12px;background:var(--fondo-2);display:grid;gap:6px}.se-incluira pre,.lista-licencias pre{margin:0;font-family:var(--mono);font-size:11px;line-height:1.45;white-space:pre-wrap;word-break:break-word;max-height:180px;overflow:auto;color:var(--txt)}.acerca-version{display:grid;gap:3px;margin-bottom:14px}.acerca-version b{font-size:16px;color:var(--txt-fuerte)}.acerca h4{margin:0 0 4px;font-size:13px;color:var(--txt-fuerte)}.lista-licencias{display:grid;gap:4px;max-height:420px;overflow:auto}.lista-licencias details{border:1px solid var(--borde);border-radius:6px;padding:6px 10px}.lista-licencias summary{cursor:pointer;font-size:12px}.lista-licencias details[open] pre{margin-top:6px;max-height:260px}.hoja.horizontal{width:1056px;padding:40px}.hoja .gantt-pagina{break-inside:avoid}.hoja .gantt-pagina+.gantt-pagina{margin-top:28px}.hoja .gantt-pagina.salto{break-after:page}.hoja .gantt-continua{height:22px;margin-bottom:8px;font-size:9.5px;font-weight:600;color:#25282b;border-bottom:2px solid #25282B}.hoja .gantt-impreso{display:block}.hoja .gantt-cierre{margin-top:10px}.hoja .leyenda-impresa{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:9.5px;color:#333;align-items:center}.hoja .gantt-cierre .firmas{margin-top:36px}.hoja .tabla-programacion-impresa thead{display:table-header-group}.hoja .tabla-programacion-impresa tr{break-inside:avoid}.hoja .tabla-programacion-impresa tr.critica td{color:#b91c1c}.hoja .tabla-programacion-impresa tr.cap td{background:#eef0f2;font-weight:700}.hoja .nota-impresa{font-size:9.5px;color:#555;margin-top:6px}.hoja .salto-antes{break-before:page}@media print{.hoja.horizontal{width:auto;padding:0}.hoja .gantt-pagina+.gantt-pagina{margin-top:0}}.fin-tab{border-left:1px solid var(--borde,#ddd);margin-left:10px;padding-left:20px}.fin-punto{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px}.fin-punto.sana{background:#16a34a}.fin-punto.atencion{background:#d97706}.fin-punto.critica{background:#dc2626}.fin-alerta{color:#b45309;font-size:11px}.fin-nota{font-size:12px;line-height:1.5}.fin-filtros{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.fin-filtros>.input{width:200px}.finanzas .tabla{font-size:12px}.finanzas .panel{overflow:auto}@media print{.fin-filtros,.finanzas .no-print{display:none!important}.finanzas .panel{overflow:visible;break-inside:avoid}.finanzas{padding:0!important}}.btn-ghost{background:transparent;border-color:transparent;color:var(--txt-2)}.btn-ghost:hover{background:var(--fondo);color:var(--txt)}.chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.02em;background:var(--fondo);color:var(--txt-2);white-space:nowrap}.chip:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.chip.verde{background:var(--verde-claro);color:var(--verde)}.chip.ambar{background:var(--ambar-claro);color:var(--ambar)}.partida-card{background:var(--panel);border:1px solid var(--borde);border-radius:var(--radio-lg);box-shadow:var(--sombra)}.partida-header{padding:16px 20px;border-bottom:1px solid var(--borde);display:flex;align-items:flex-start;gap:16px}.partida-code{font-family:var(--mono);font-size:12px;font-weight:500;background:var(--azul-claro);color:var(--azul);padding:4px 10px;border-radius:6px;white-space:nowrap;flex-shrink:0;border:0;outline:none}.partida-info{flex:1;min-width:0}.partida-nombre{width:100%;font-size:16px;font-weight:700;color:var(--txt);border:1px solid transparent;background:transparent;border-radius:6px;padding:2px 6px;margin:-3px -7px;resize:none;line-height:1.4;outline:none}.partida-nombre:hover:not(:disabled){border-color:var(--borde-2)}.partida-nombre:focus{border-color:var(--acento);background:var(--panel)}.partida-meta{display:flex;gap:22px;padding:12px 20px;background:var(--fondo);border-radius:0 0 var(--radio-lg) var(--radio-lg);flex-wrap:wrap}.meta-field{display:flex;flex-direction:column;gap:2px}.meta-label{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--txt-3)}.meta-value{font-size:14px;font-weight:600;font-family:var(--mono);font-variant-numeric:tabular-nums;padding:2px 0}.meta-input{font-size:14px;font-weight:600;font-family:var(--mono);width:110px;border:0;border-bottom:1px dashed var(--borde-2);background:transparent;padding:2px 0;outline:none;border-radius:0;color:var(--txt)}.meta-input:hover:not(:disabled),.meta-input:focus{border-bottom-color:var(--azul);color:var(--azul)}.meta-input:disabled{border-bottom-color:transparent}.apu-section{background:var(--panel);border:1px solid var(--borde);border-radius:var(--radio-lg);box-shadow:var(--sombra);overflow:hidden}.section-header{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--borde)}.section-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.section-dot.mat{background:var(--mat)}.section-dot.equ{background:var(--equ)}.section-dot.mo{background:var(--mo)}.section-title{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--txt-2)}.section-subtotal{margin-left:auto;font-family:var(--mono);font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.mat{color:var(--mat)}.equ{color:var(--equ)}.mo{color:var(--mo)}.tabla.insumos th{font-size:10px;letter-spacing:.08em;color:var(--txt-3);background:var(--panel)}.tabla.insumos td{padding:8px 12px}.fila-mat td{background:color-mix(in srgb,var(--mat-bg) 30%,transparent)}.fila-equ td{background:color-mix(in srgb,var(--equ-bg) 30%,transparent)}.fila-mo td{background:color-mix(in srgb,var(--mo-bg) 30%,transparent)}.fila-mat:hover td{background:color-mix(in srgb,var(--mat-bg) 60%,transparent)}.fila-equ:hover td{background:color-mix(in srgb,var(--equ-bg) 60%,transparent)}.fila-mo:hover td{background:color-mix(in srgb,var(--mo-bg) 60%,transparent)}.fila-derivada td{opacity:.85}.insumo-code{font-family:var(--mono);font-size:11px;color:var(--txt-3)}.insumo-name{font-weight:500}.mo-nota{display:block;font-size:11px;color:var(--mo);font-weight:600}.total-col{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.celda-badge{display:flex;align-items:center;justify-content:flex-end;gap:2px}.celda-badge span{font-size:10px;color:var(--ambar);font-family:var(--mono)}.tabla input.celda.desp{width:64px;min-width:0;background:var(--ambar-claro);color:var(--ambar);font-size:11px}.seccion-pie .unit.mat b{color:var(--mat)}.seccion-pie .unit.equ b{color:var(--equ)}.seccion-pie .unit.mo b{color:var(--mo)}.apu-inferior{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}.apu-lateral{display:flex;flex-direction:column;gap:16px}.cascade-card{background:var(--panel);border:1px solid var(--borde);border-radius:var(--radio-lg);box-shadow:var(--sombra);overflow:hidden}.cascade-header{padding:12px 20px;border-bottom:1px solid var(--borde);font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--txt-2)}.cascade-row{display:flex;align-items:center;padding:10px 20px;border-bottom:1px solid var(--borde);gap:12px}.cascade-row:last-child{border-bottom:none}.cascade-row.cd{background:var(--fondo)}.cascade-row.total-row{background:var(--azul-claro);border-top:2px solid var(--acento)}.cascade-label{flex:1;font-size:13px;font-weight:500}.cascade-label.mat,.cascade-label.equ,.cascade-label.mo{font-weight:600}.cascade-base{font-size:11px;color:var(--txt-3);width:150px}.cascade-pct{font-family:var(--mono);font-size:12px;color:var(--txt-3);width:84px;text-align:right;display:inline-flex;align-items:center;justify-content:flex-end;gap:3px}.cascade-pct.editable{color:var(--txt-2)}.cascade-pct{position:relative}.cascade-pct .pct-obra{position:absolute;right:0;top:100%;font-size:9.5px;color:#d97706;white-space:nowrap;line-height:1}.cascade-pct .pct-input{width:58px;border:0;border-bottom:1px dashed var(--borde-2);background:transparent;text-align:right;font-family:var(--mono);font-size:12px;color:var(--txt-2);outline:none;padding:1px 0}.cascade-pct .pct-input:hover,.cascade-pct .pct-input:focus{color:var(--azul);border-bottom-color:var(--azul)}.cascade-amount{font-family:var(--mono);font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;width:150px;text-align:right}.cascade-row.total-row .cascade-label{font-weight:700;font-size:14px}.cascade-row.total-row .cascade-amount{font-size:18px;color:var(--azul)}.tarjeta{background:var(--panel);border:1px solid var(--borde);border-radius:var(--radio-lg);box-shadow:var(--sombra);padding:16px 20px}.tarjeta h3{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--txt-3);margin:0 0 10px}.dato{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid var(--borde);gap:12px;font-size:12px;color:var(--txt-2)}.dato:last-child{border-bottom:none}.dato b{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--txt);font-variant-numeric:tabular-nums}.dato-check{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;font-weight:600;color:var(--txt);cursor:pointer}.dato-check input{accent-color:var(--azul)}.caja-pu{background:var(--sidebar);border-radius:var(--radio-lg);padding:20px;text-align:center;color:#fff}.caja-pu-tit{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#ffffffb3;margin-bottom:4px}.caja-pu-valor{color:var(--acento);font-size:28px;font-weight:800;font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.caja-pu-und{font-size:12px;color:#ffffffa6;margin-top:4px}.caja-pu-alt{font-size:12px;color:#fffc;margin-top:8px;font-family:var(--mono)}.caja-pu-total{display:flex;justify-content:space-between;margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.2);font-size:12px}.caja-pu-total b{font-family:var(--mono)}@media (max-width: 1180px){.apu-inferior{grid-template-columns:minmax(0,1fr)}}.gantt-caja{background:var(--panel);--g-bar-color: color-mix(in srgb, var(--azul) 72%, var(--panel));--g-bar-border: var(--azul);--g-arrow-color: var(--ambar);--g-header-background: var(--panel);--g-row-color: var(--panel);--g-border-color: var(--borde);--g-row-border-color: var(--borde);--g-tick-color: var(--borde);--g-tick-color-thick: var(--borde-2);--g-text-dark: var(--txt-fuerte);--g-text-muted: var(--txt-2);--g-text-light: #fff;--g-handle-color: var(--ambar);--g-today-highlight: var(--ambar);--g-actions-background: var(--fondo-2);--g-weekend-label-color: var(--fondo-2);--g-popup-actions: var(--fondo-2);--g-progress-color: var(--azul)}.gantt-caja .gantt-container{border-radius:0;font-family:Inter,sans-serif}.gantt-caja .gantt .grid-row:nth-child(2n){fill:var(--fondo-2)}.gantt-caja .gantt .bar-label{fill:#fff;font-family:Inter,sans-serif;font-weight:500;font-size:12px}.gantt-caja .gantt .bar-label.big{fill:var(--txt)}.gantt-caja .gantt .bar-wrapper .bar{outline:none}.gantt-caja .gantt .bar-wrapper:hover .bar,.gantt-caja .gantt .bar-wrapper.active .bar{fill:var(--azul)}.gantt-caja .gantt .bar-wrapper.gantt-critica .bar,.gantt-caja .gantt .bar-wrapper.gantt-critica-atrasada .bar{fill:#dc2626}.gantt-caja .gantt .bar-wrapper.gantt-critica:hover .bar,.gantt-caja .gantt .bar-wrapper.gantt-critica.active .bar{fill:#b91c1c}.gantt-caja .gantt .bar-wrapper.gantt-capitulo .bar{fill:var(--sidebar)}.gantt-caja .gantt .bar-wrapper.gantt-capitulo .bar-label{font-weight:700}.gantt-caja .gantt .bar-wrapper.gantt-capitulo .handle{display:none}.gantt-caja .gantt-container .popup-wrapper{background:var(--sidebar);color:#fff}.gantt-caja .gantt-container .popup-wrapper h5{margin:0 0 4px;font-size:13px;color:#fff}.gantt-caja .gantt-container .popup-wrapper p{margin:2px 0;font-size:12px;color:#d6d7d9}.leyenda-gantt{display:flex;flex-wrap:wrap;gap:14px;padding:8px 16px 12px;font-size:12px;align-items:center}.leyenda-gantt .muestra{display:inline-block;width:18px;height:9px;border-radius:2px;margin-right:5px;vertical-align:middle;background:color-mix(in srgb,var(--azul) 72%,var(--panel))}.leyenda-gantt .muestra.critica{background:#dc2626}.leyenda-gantt .muestra.capitulo{background:var(--sidebar)}.leyenda-gantt .muestra.feriado{background:#dc26262e}.tabla-programacion .fila-critica td:first-child{box-shadow:inset 3px 0 #dc2626}.tabla-programacion .fila-capitulo td{background:var(--fondo-2);font-size:12.5px}.tabla-programacion .aviso-fila{color:var(--ambar);font-size:11.5px;white-space:normal;margin-top:2px}.etiqueta-critica{display:inline-block;padding:1px 7px;border-radius:9px;background:#fee2e2;color:#b91c1c;font-size:11px;font-weight:600}.tabla td.cambio{font-weight:600;color:var(--azul)}.calendario-feriados{display:grid;gap:12px}.cal-anio{display:flex;align-items:center;gap:10px}.cal-anio b{font-size:16px;min-width:48px;text-align:center}.cal-meses{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}@media (max-width: 1100px){.cal-meses{grid-template-columns:repeat(3,1fr)}}.cal-mes-nombre{font-weight:600;font-size:12px;margin-bottom:4px;color:var(--txt-fuerte)}.cal-grilla{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-cab{font-size:10px;text-align:center;color:var(--txt-3)}.cal-dia{border:0;border-radius:4px;background:none;font-size:11px;height:22px;padding:0;color:var(--txt);cursor:pointer}.cal-dia:hover:not(:disabled){background:var(--fondo-2)}.cal-dia:disabled{cursor:default}.cal-dia.en-obra{box-shadow:inset 0 -2px 0 var(--ambar)}.cal-dia.no-laborable{color:var(--txt-3)}.cal-dia.nacional{background:#fee2e2;color:#b91c1c;font-weight:600}.cal-dia.agregado{background:#fef3c7;color:#92400e;font-weight:600}.cal-dia.quitado{text-decoration:line-through;color:var(--txt-3)}.cal-leyenda{display:flex;flex-wrap:wrap;gap:14px;font-size:11.5px;align-items:center}.cal-leyenda i.cal-dia{display:inline-block;width:16px;height:12px;margin-right:4px;vertical-align:middle}.lista-feriados{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:4px;max-height:220px;overflow:auto}.lista-feriados li{display:flex;gap:10px;align-items:center;font-size:12px}.lista-feriados li .desc{flex:1}.lista-feriados li.quitado span{text-decoration:line-through;color:var(--txt-3)}.lista-feriados li .input{flex:1}.gantt-caja .gantt .bar-expected-progress{display:none}.gantt-caja .gantt .bar-progress{fill:#00000052}.gantt-caja .gantt .bar-wrapper.gantt-capitulo .bar-progress{display:none}.gantt-caja .gantt .bar-wrapper.gantt-atrasada .bar,.gantt-caja .gantt .bar-wrapper.gantt-critica-atrasada .bar{stroke:#d97706;stroke-width:2.5}.leyenda-gantt .muestra.atrasada{background:transparent;border:2px solid #D97706}.leyenda-gantt .muestra.avance{background:linear-gradient(90deg,#00000073 55%,color-mix(in srgb,var(--azul) 72%,var(--panel)) 55%)}.barra-avance-obra{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 16px}.campo-linea{display:inline-flex;gap:8px;align-items:center;font-size:12.5px;color:var(--txt-2)}.campo-linea .input{width:150px}.tabla-avance .fila-atrasada td:first-child,.tabla-programacion .fila-atrasada td:first-child{box-shadow:inset 3px 0 #d97706}.texto-atraso{color:#b45309;font-weight:600}.carga-dia{display:flex;gap:6px;align-items:center}.carga-dia .input{height:28px;width:140px}.carga-dia .celda{width:80px}.chip-dia{display:inline-flex;align-items:center;gap:2px;margin:4px 6px 0 0;padding:0 2px 0 7px;border-radius:10px;background:var(--fondo-2);font-size:11px}.leyenda-curva{display:flex;gap:16px;flex-wrap:wrap;font-size:11.5px;color:var(--txt-2);padding:4px 0 10px}.leyenda-curva i{display:inline-block;width:16px;height:3px;vertical-align:middle;margin-right:4px}.titulo-seccion{margin:14px 0 8px;font-size:13px;color:var(--txt-fuerte)}.tabla-tablero .fila-atrasada td:first-child{box-shadow:inset 3px 0 #d97706}.etiqueta-atrasada{display:inline-block;margin-left:8px;padding:0 7px;border-radius:9px;background:#fef3c7;color:#92400e;font-size:10.5px;font-weight:600;vertical-align:1px}.sidebar .nav-grupo-separado{border-top:1px solid rgba(255,255,255,.08);margin-top:8px;padding-top:8px}.sidebar-pie>.nav-item{margin-bottom:6px}.franja-avisos{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.aviso-corto{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:8px;border:1px solid var(--borde);background:var(--panel);color:var(--txt-fuerte);font-size:13px;font-weight:500;cursor:pointer}.aviso-corto.ambar{background:#fef3c7;border-color:#f59e0b;color:#92400e}.aviso-corto.info{background:var(--azul-claro);border-color:var(--borde)}.aviso-corto:hover{filter:brightness(.97)}.hoja-seguimiento .tabla-tablero tr.clic:hover td{background:var(--fondo-2)}.dialogo-texto{white-space:pre-line}.opciones-elegir{display:grid;gap:8px;margin-top:12px}.opcion-elegir{display:flex;gap:10px;align-items:flex-start;padding:9px 11px;border:1px solid var(--borde);border-radius:8px;cursor:pointer}.opcion-elegir.activa{border-color:var(--acento);background:var(--azul-claro)}.opcion-elegir span{display:grid;gap:2px;font-size:13px}.opcion-elegir .muted{font-size:12px}.mediciones-distribucion{display:grid;grid-template-columns:380px minmax(0,1fr)}.valuacion-totales{display:grid;grid-template-columns:minmax(0,1fr) 360px}@media screen{.app{grid-template-columns:220px minmax(0,1fr)}.main{container-type:inline-size;container-name:contenido}.contenido,.panel,.panel-cuerpo,.panel-cab,.kpis{min-width:0;max-width:100%;box-sizing:border-box}.panel-cab{flex-wrap:wrap}.panel-cab .der{flex-wrap:wrap;max-width:100%}.topbar{padding:4px 16px;gap:4px 12px}.topbar .migas{flex:1 1 220px;padding:4px 0;flex-wrap:wrap}.topbar .acciones{padding:4px 0;gap:6px;max-width:100%}.topbar .acciones>.primario{order:-1}.tabla-scroll{width:100%;max-width:100%;overflow:auto;overscroll-behavior:contain;position:relative}.tabla-scroll:focus-visible{outline:2px solid var(--azul);outline-offset:2px}.tabla-scroll .tabla thead th{position:sticky;top:0;z-index:2}.apu-section>.tabla-scroll{max-height:min(52vh,480px)}.tabla-valuacion :is(th,td):nth-child(2),.tabla-programacion :is(th,td):nth-child(2){position:sticky;left:0;z-index:1;background:var(--panel);min-width:210px;max-width:260px}.tabla-valuacion th:nth-child(2),.tabla-programacion th:nth-child(2){z-index:3;background:var(--fondo-2)}.tabla-obras .tabla{min-width:850px}.tabla-clientes .tabla{min-width:950px}.tabla-clientes .tabla td:first-child{min-width:220px;max-width:300px}.tabla-clientes .tabla td:nth-child(3),.tabla-clientes .tabla td:nth-child(4){white-space:nowrap}.catalogo-distribucion{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}.catalogo-distribucion.con-detalle{grid-template-columns:minmax(0,1fr) 430px}.catalogo-filtros{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.catalogo-filtros>*{min-width:160px;max-width:100%;flex-shrink:0}.catalogo-filtros>.buscador{flex:1 1 280px;min-width:240px}.catalogo-filtros>:last-child{min-width:210px}.catalogo-filtros{width:100%}.panel-cab:has(.catalogo-filtros){display:block}.panel-cab:has(.catalogo-filtros) .der{margin-top:8px}.panel-cuerpo>div>div{max-width:100%;box-sizing:border-box}.kpi{min-width:0}.kpi b{white-space:nowrap}.kpi small,.kpi>span,.kpi .muted{overflow-wrap:anywhere}.kpi-parametros .kpi-pcts{grid-template-columns:repeat(2,minmax(0,1fr))}.hoja-seguimiento.hoja.horizontal{width:100%;max-width:100%;box-sizing:border-box;padding:16px}.hoja-seguimiento .encabezado{flex-wrap:wrap}.visor-reportes .hoja{zoom:var(--escala-vista, 1);flex-shrink:0}.tabs{max-width:100%;overflow-x:auto;overflow-y:hidden;box-sizing:border-box}.barra-seccion .tabs,.barra-obra .tabs,.subpestanas.tabs{flex-wrap:nowrap}.flujo-mensual :is(th,td):first-child,.tabla-clientes :is(th,td):first-child,.tabla-obras :is(th,td):first-child,.tabla.insumos :is(th,td):nth-child(2){position:sticky;left:0;background:var(--panel);z-index:1}.flujo-mensual th:first-child,.tabla-clientes th:first-child,.tabla-obras th:first-child,.tabla.insumos th:nth-child(2){z-index:3;background:var(--fondo-2)}.tabs .tab{flex-shrink:0}@container contenido (max-width: 1200px){.catalogo-distribucion.con-detalle{grid-template-columns:minmax(0,1fr)}.catalogo-distribucion.con-detalle>:first-child .tabla-scroll{max-height:34vh!important}}@container contenido (max-width: 900px){.mediciones-distribucion,.valuacion-totales{grid-template-columns:minmax(0,1fr)}}@container contenido (max-width: 1250px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@container contenido (max-width: 700px){.kpis{grid-template-columns:minmax(0,1fr)}.capitulo-fila{grid-template-columns:minmax(0,1fr) auto;gap:4px 10px}.capitulo-nombre{grid-column:1 / -1;white-space:normal}.capitulo-monto{grid-column:1;grid-row:2}.capitulo-pct{grid-column:2;grid-row:2}.capitulo-barra{grid-column:1 / -1;grid-row:3;margin-bottom:6px}.barras-leyenda{grid-template-columns:minmax(0,1fr)}.barras-item{grid-template-columns:10px minmax(0,1fr) auto;gap:4px 8px}.barras-nombre{grid-column:2 / -1;white-space:normal}.barras-monto{grid-column:2;grid-row:2}.barras-pct{grid-column:3;grid-row:2}}@container contenido (max-width: 650px){.contenido{padding:12px 14px 24px}.g3,.g4,.g6{grid-template-columns:repeat(2,minmax(0,1fr))}.span3,.span4{grid-column:1 / -1}.kpi b{font-size:20px}}@container contenido (max-width: 420px){.kpis,.g2,.g3,.g4,.g6{grid-template-columns:minmax(0,1fr)}.span2{grid-column:1 / -1}}}@media screen and (max-width: 1100px){.app{grid-template-columns:90px minmax(0,1fr)}.sidebar .marca{padding:14px 6px}.sidebar .marca-img{max-width:76px}.sidebar .nav-item{flex-direction:column;gap:4px;padding:9px 4px;font-size:11px;text-align:center}.sidebar .nav-badge,.sidebar .buscar-comandos kbd,.sidebar .nav-obra>svg{display:none}.sidebar .buscar-comandos{margin:8px 5px;padding:7px 3px;font-size:10px;gap:3px}.sidebar .nav-obra{padding-left:4px!important}.sidebar .nav-obra-texto{max-width:76px}.sidebar .empresa{padding:6px;font-size:10px;overflow-wrap:anywhere}.sidebar .sesion-usuario{flex-wrap:wrap}}@media print{.visor-reportes .hoja{zoom:1!important}.tabla-obras,.tabla-clientes{overflow:visible}.hoja-seguimiento>.tabla-scroll{display:contents}}:root{--g-arrow-color: #1f2937;--g-bar-color: #fff;--g-bar-border: #fff;--g-tick-color-thick: #ededed;--g-tick-color: #f3f3f3;--g-actions-background: #f3f3f3;--g-border-color: #ebeff2;--g-text-muted: #7c7c7c;--g-text-light: #fff;--g-text-dark: #171717;--g-progress-color: #dbdbdb;--g-handle-color: #37352f;--g-weekend-label-color: #dcdce4;--g-expected-progress: #c4c4e9;--g-header-background: #fff;--g-row-color: #fdfdfd;--g-row-border-color: #c7c7c7;--g-today-highlight: #37352f;--g-popup-actions: #ebeff2;--g-weekend-highlight-color: #f7f7f7}html[data-theme=dark]{--g-arrow-color: #e5e5e5;--g-bar-color: #2a2a2a;--g-bar-border: #3a3a3a;--g-tick-color-thick: #1a1a1a;--g-tick-color: #0a0a0a;--g-actions-background: #1a1a1a;--g-border-color: #2a2a2a;--g-text-muted: #999999;--g-text-light: #ffffff;--g-text-dark: #f5f5f5;--g-progress-color: #4a4a4a;--g-handle-color: #d0d0d0;--g-weekend-label-color: #3a3a3a;--g-expected-progress: #5a5a5a;--g-header-background: #0a0a0a;--g-row-color: #141414;--g-row-border-color: #2a2a2a;--g-today-highlight: #999999;--g-popup-actions: #1a1a1a;--g-weekend-highlight-color: #0f0f0f}.gantt-container{line-height:14.5px;position:relative;overflow:auto;font-size:12px;height:var(--gv-grid-height);width:100%;border-radius:8px;isolation:isolate}.gantt-container .popup-wrapper{position:absolute;top:0;left:0;background:var(--g-header-background);box-shadow:0 10px 24px -3px #0003;padding:10px;border-radius:5px;width:max-content;z-index:1000}.gantt-container .popup-wrapper .title{margin-bottom:2px;color:var(--g-text-dark);font-size:.85rem;font-weight:650;line-height:15px}.gantt-container .popup-wrapper .subtitle{color:var(--g-text-dark);font-size:.8rem;margin-bottom:5px}.gantt-container .popup-wrapper .details{color:var(--g-text-muted);font-size:.7rem}.gantt-container .popup-wrapper .actions{margin-top:10px;margin-left:3px}.gantt-container .popup-wrapper .action-btn{border:none;padding:5px 8px;background-color:var(--g-popup-actions);border-right:1px solid var(--g-border-color)}.gantt-container .popup-wrapper .action-btn:hover{filter:brightness(97%)}.gantt-container .popup-wrapper .action-btn:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}.gantt-container .popup-wrapper .action-btn:last-child{border-right:none;border-top-right-radius:4px;border-bottom-right-radius:4px}.gantt-container .grid-header{height:calc(var(--gv-lower-header-height) + var(--gv-upper-header-height) + 10px);background-color:var(--g-header-background);position:sticky;top:0;left:0;border-bottom:1px solid var(--g-row-border-color);z-index:1000}.gantt-container .lower-text,.gantt-container .upper-text{text-anchor:middle}.gantt-container .upper-header{height:var(--gv-upper-header-height)}.gantt-container .lower-header{height:var(--gv-lower-header-height)}.gantt-container .lower-text{font-size:12px;position:absolute;width:calc(var(--gv-column-width) * .8);height:calc(var(--gv-lower-header-height) * .8);margin:0 calc(var(--gv-column-width) * .1);align-content:center;text-align:center;color:var(--g-text-muted)}.gantt-container .upper-text{position:absolute;width:fit-content;font-weight:500;font-size:14px;color:var(--g-text-dark);height:calc(var(--gv-lower-header-height) * .66)}.gantt-container .current-upper{position:sticky;left:0!important;padding-left:17px;background:var(--g-header-background)}.gantt-container .side-header{position:sticky;top:0;right:0;float:right;z-index:1000;line-height:20px;font-weight:400;width:max-content;margin-left:auto;padding-right:10px;padding-top:10px;background:var(--g-header-background);display:flex}.gantt-container .side-header *{transition-property:background-color;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;background-color:var(--g-actions-background);border-radius:.5rem;border:none;padding:5px 8px;color:var(--g-text-dark);font-size:14px;letter-spacing:.02em;font-weight:420;box-sizing:content-box;margin-right:5px}.gantt-container .side-header *:last-child{margin-right:0}.gantt-container .side-header *:hover{filter:brightness(97.5%)}.gantt-container .side-header select{width:60px;padding-top:2px;padding-bottom:2px}.gantt-container .side-header select:focus{outline:none}.gantt-container .date-range-highlight{background-color:var(--g-progress-color);border-radius:12px;height:calc(var(--gv-lower-header-height) - 6px);top:calc(var(--gv-upper-header-height) + 5px);position:absolute}.gantt-container .current-highlight{position:absolute;background:var(--g-today-highlight);width:1px;z-index:999}.gantt-container .current-ball-highlight{position:absolute;background:var(--g-today-highlight);z-index:1001;border-radius:50%}.gantt-container .current-date-highlight{background:var(--g-today-highlight);color:var(--g-text-light);border-radius:5px}.gantt-container .holiday-label{position:absolute;top:0;left:0;opacity:0;z-index:1000;background:var(--g-weekend-label-color);border-radius:5px;padding:2px 5px}.gantt-container .holiday-label.show{opacity:100}.gantt-container .extras{position:sticky;left:0}.gantt-container .extras .adjust{position:absolute;left:8px;top:calc(var(--gv-grid-height) - 60px);background-color:var(--g-actions-background);color:var(--g-text-light);border:none;padding:8px;border-radius:3px}.gantt-container .hide{display:none}.gantt{user-select:none;-webkit-user-select:none;position:absolute}.gantt .grid-background{fill:none}.gantt .grid-row{fill:var(--g-row-color)}.gantt .row-line{stroke:var(--g-border-color)}.gantt .tick{stroke:var(--g-tick-color);stroke-width:.4}.gantt .tick.thick{stroke:var(--g-tick-color-thick);stroke-width:.7}.gantt .arrow{fill:none;stroke:var(--g-arrow-color);stroke-width:1.5}.gantt .bar-wrapper .bar{fill:var(--g-bar-color);stroke:var(--g-bar-border);stroke-width:0;transition:stroke-width .3s ease}.gantt .bar-progress{fill:var(--g-progress-color);border-radius:4px}.gantt .bar-expected-progress{fill:var(--g-expected-progress)}.gantt .bar-invalid{fill:transparent;stroke:var(--g-bar-border);stroke-width:1;stroke-dasharray:5}:is(.gantt .bar-invalid)~.bar-label{fill:var(--g-text-light)}.gantt .bar-label{fill:var(--g-text-dark);dominant-baseline:central;font-family:Helvetica;font-size:13px;font-weight:400}.gantt .bar-label.big{fill:var(--g-text-dark);text-anchor:start}.gantt .handle{fill:var(--g-handle-color);opacity:0;transition:opacity .3s ease}.gantt .handle.active,.gantt .handle.visible{cursor:ew-resize;opacity:1}.gantt .handle.progress{fill:var(--g-text-muted)}.gantt .bar-wrapper{cursor:pointer}.gantt .bar-wrapper .bar{outline:1px solid var(--g-row-border-color);border-radius:3px}.gantt .bar-wrapper:hover .bar{transition:transform .3s ease}.gantt .bar-wrapper:hover .date-range-highlight{display:block}.gantt .grid-column{fill:transparent;pointer-events:all}.gantt .grid-column:hover{fill:var(--g-weekend-highlight-color);transition:fill .1s ease}
