.desktop-shell{height:100vh;height:100dvh;overflow:hidden}.desktop-shell__header{display:flex;align-items:center;gap:8px;height:40px;line-height:40px;padding-inline:8px;background:var(--serconsa-navy)}.desktop-shell__logo{height:24px;width:24px;display:block}.menubar{display:flex;align-items:stretch;gap:2px;flex:1;min-width:0;overflow-x:auto;overflow-y:hidden}.menubar__trigger{background:none;border:none;color:#ffffffd9;font-size:13px;padding:0 10px;height:40px;cursor:pointer;white-space:nowrap}.menubar__trigger:hover,.menubar__trigger:focus-visible,.menubar__trigger.ant-dropdown-open{background:#ffffff1f;color:#fff}.desktop-shell__user{display:flex;align-items:center;gap:6px;background:none;border:none;color:#ffffffd9;font-size:13px;cursor:pointer;padding:0 8px;height:40px}.desktop-shell__user-name{white-space:nowrap}.tab-manager{background:var(--serconsa-surface);border-bottom:1px solid var(--serconsa-border);padding-inline:8px;display:flex;align-items:center;gap:8px}.tab-manager .ant-tabs{margin:0;flex:1 1 auto;min-width:0}.tab-manager__close-all{flex:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:4px;background:none;color:var(--serconsa-text-secondary);cursor:pointer}.tab-manager__close-all:hover,.tab-manager__close-all:focus-visible{color:var(--serconsa-text-primary);background:var(--serconsa-surface-alt)}.toolbar{display:flex;align-items:center;padding:2px 8px;background:var(--serconsa-surface);border-bottom:1px solid var(--serconsa-border)}.desktop-shell__body{flex-direction:column;background:var(--serconsa-surface-alt)}.desktop-shell__content{display:flex;flex-direction:column;min-height:0;overflow:auto}.desktop-shell__content>.app-container{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.menubar__config{display:inline-flex;align-items:center;margin-left:auto;padding:0 8px;font-size:13px}.menu-order-hint{margin:0 0 12px;color:var(--serconsa-text-secondary);font-size:13px}.menu-order-list{list-style:none;margin:0;padding:0;max-height:62vh;overflow-y:auto}.menu-order-row{display:flex;align-items:center;gap:8px;padding:4px 8px;border:1px solid var(--serconsa-border);border-radius:4px;margin-bottom:6px;background:var(--serconsa-surface)}.menu-order-row__handle{cursor:grab;color:var(--serconsa-text-secondary);display:inline-flex;align-items:center;touch-action:none}.menu-order-row__handle:active{cursor:grabbing}.menu-order-row__label{flex:1;color:var(--serconsa-text-primary)}.menu-order-row__actions{display:inline-flex;gap:2px}.menu-order-group{list-style:none}.menu-order-toggle--open{transform:rotate(180deg)}.menu-order-items{list-style:none;margin:-2px 0 8px 22px;padding:0}.menu-order-row--item{padding:2px 8px}.menu-order-row--divider{padding:0 8px;border-style:dashed}.menu-order-row__label--divider{color:var(--serconsa-text-secondary);font-size:12px;letter-spacing:2px}:root{--bp-sm: 480px;--bp-md: 768px;--bp-lg: 1024px;--bp-xl: 1440px;--bp-xxl: 1920px;--app-padding: 12px;--app-row-gap: 8px;--app-card-padding: 12px;--app-cell-padding-y: 6px;--app-cell-padding-x: 10px;--app-list-gap: 4px;--app-footer-height: 36px;--serconsa-primary: #1d4ed8;--serconsa-navy: #0f172a;--serconsa-surface: #ffffff;--serconsa-surface-alt: #f5f7fa;--serconsa-border: #e5e7eb;--serconsa-muted: #6b7280;--serconsa-text-primary: #1a1a1a;--serconsa-text-secondary: #6b7280;--serconsa-success: #16a34a;--serconsa-warning: #d97706;--serconsa-danger: #dc2626;--serconsa-info: #1d4ed8;--serconsa-font-mono: "IBM Plex Mono", "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--presto-surface: #ffffff;--presto-surface-alt: #f5f5f5;--presto-border: #d9d9d9;--presto-text: #333333;--presto-calculado-bg: #fff3cd;--presto-precio: #c000a0;--presto-edicion: #ff8c00;--presto-seleccion-fila: #dcecfb;--presto-capitulo: #1e5ba6;--presto-accent: #1e5ba6;--presto-hover: #e8f0fb;--presto-certificado: #e0218a}@media(min-width:768px){:root{--app-padding: 16px;--app-row-gap: 4px;--app-card-padding: 8px;--app-cell-padding-y: 4px;--app-cell-padding-x: 10px;--app-list-gap: 2px}}@media(min-width:1024px){:root{--app-padding: 28px}}@media(min-width:1440px){:root{--app-padding: 32px}}html,body,#root{margin:0;padding:0;height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--serconsa-surface-alt);color:var(--serconsa-text-primary)}h1,h2,h3{text-wrap:balance}.app-container{width:100%;max-width:1920px;margin-inline:auto;padding-inline:var(--app-padding)}.app-container--full{max-width:none;display:flex;flex-direction:column;min-height:0;flex:1}.app-container--full.gantt-page,.app-container--full.kanban-page,.app-container--full>.ant-spin-nested-loading,.app-container--full>.ant-spin-nested-loading>.ant-spin-container{display:flex;flex-direction:column;min-height:0;flex:1}.app-container--full>.ant-spin,.app-container--full>.ant-empty{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:0}.page-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:var(--app-row-gap)}.page-section{margin-bottom:var(--app-row-gap)}.sub-text{color:var(--serconsa-text-secondary);font-size:15px;margin:0}.text-center{text-align:center}.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--app-row-gap) 12px}.info-row{display:flex;justify-content:space-between;gap:12px}.info-line{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-block:var(--app-cell-padding-y)}.full-width{width:100%;grid-column:1 / -1}.compact-list{display:flex;flex-direction:column;gap:var(--app-list-gap)}.compact-card{margin:0}.compact-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--app-row-gap) 12px}.table-responsive{width:100%;overflow-x:auto}.num-cell{text-align:right;font-variant-numeric:tabular-nums}.ant-table-tbody .num-cell--importe{color:var(--presto-precio);font-weight:600}.code-cell{font-family:var(--serconsa-font-mono);font-variant-numeric:tabular-nums slashed-zero}.dato-cambiado-manualmente{background-color:#ffebee;color:var(--serconsa-text-primary);border-radius:2px;padding:1px 4px}.breakdown-row--ajuste{background-color:#fff8e1}.ant-table-tbody tr.cert-fila-certificada>td,.ant-table-tbody tr.cert-fila-certificada>td.ant-table-cell-row-hover{background-color:#d5f5e3}.mobile-only{display:block}.desktop-only{display:none}.grid-cell{min-height:21px;padding:1px 6px;line-height:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:cell}.grid-cell--active{outline:2px solid var(--presto-edicion);outline-offset:-2px;background:var(--presto-calculado-bg)}.grid-cell--selected{background:#fff8e1}.grid-row--editing{background:#fffbe6}.grid-row--partida{cursor:default}.grid-row--selected td{background:var(--presto-seleccion-fila)}.grid-table--dense tbody tr.grid-row--estado-negro td{color:inherit}.grid-table--dense tbody tr.grid-row--estado-rojo td{color:#c0392b}.grid-table--dense tbody tr.grid-row--estado-verde td{color:#1e7b3c}.grid-table--dense tbody tr.grid-row--estado-gris td{color:#8a8a8a}.presto-ctx-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000}.presto-ctx-menu{position:fixed;z-index:1001;background:#fff;border-radius:4px;box-shadow:0 4px 16px #0000002e;overflow:hidden}.presto-ctx-label{display:flex;justify-content:space-between;gap:16px}.presto-ctx-shortcut{color:#8a8a8a;font-size:11px}.grid-table--dense{font-size:12.5px;border:1px solid #d9d9d9;border-radius:2px}.grid-table--dense th{background:#f5f5f5;font-weight:600;color:#333;border-right:1px solid #e8e8e8;border-bottom:1px solid #d9d9d9;padding:4px 6px;position:sticky;top:0;z-index:1}.grid-table--dense td{padding:1px 6px;border-right:1px solid #f0f0f0;border-bottom:1px solid #f0f0f0}.grid-table--dense tbody tr:nth-child(2n){background:#fbfbfb}.grid-table--dense tbody tr:hover{background:#f5f7fa}.grid-table--dense tbody tr.grid-row--contenedor,.grid-table--dense tbody tr.grid-row--contenedor:hover{background:#f0f0f0}.grid-cell--calculada{color:var(--presto-precio);background:var(--presto-calculado-bg)}.grid-cell--importe{font-weight:600;color:var(--presto-precio);background:var(--presto-calculado-bg)}.grid-cell--ref{color:#8c8c8c}.grid-cell--capitulo{color:var(--presto-capitulo);font-weight:600}.grid-cell--certificado{color:var(--presto-certificado)}.grid-cell--aprobado{color:#1e7e34;font-weight:600}.grid-cell--pendiente{color:#c0392b;font-weight:600}.natc-dot{display:inline-block;width:8px;height:8px;border-radius:50%;vertical-align:middle;background:#9ca3af}.natc-dot[data-tipo=capitulo]{background:var(--presto-capitulo)}.natc-dot[data-tipo=subcapitulo]{background:#0e7490}.natc-dot[data-tipo=partida]{background:#d97706}.natc-dot[data-tipo=gg]{background:#7c3aed}.natc-dot[data-tipo=bi]{background:#c000a0}.natc-dot[data-tipo=recurso]{background:#6b7280}.natc-dot[data-tipo=indirecto]{background:#7c3aed}.grid-row--recurso .grid-cell{cursor:cell}.grid-row--add-recurso td{height:20px;padding:0 2px}.grid-row--add-recurso .ant-btn-link{color:#6b7280;font-size:12px}.grid-suggest{position:absolute;top:100%;left:0;z-index:10;margin:0;padding:2px 0;min-width:72px;max-height:176px;overflow-y:auto;list-style:none;background:#fff;border:1px solid #bfbfbf;border-radius:2px;box-shadow:0 2px 6px #0000002e;font-size:12px}.grid-suggest__item{padding:2px 8px;line-height:18px;cursor:pointer;white-space:nowrap}.grid-suggest__item--predefinido{color:var(--presto-precio)}.grid-suggest__item--usado{color:var(--presto-capitulo)}.grid-suggest__item--highlight{background:var(--presto-calculado-bg)}.presto-panels{display:flex;flex-direction:column;gap:4px;margin-top:8px;border-top:1px solid #d9d9d9;padding-top:6px}.presto-panels__row{display:flex;gap:4px}.presto-panel{flex:1;min-width:0;display:flex;flex-direction:column;border:1px solid #d9d9d9;border-radius:2px;background:#fff;overflow:hidden}.presto-panel--full{flex:none;width:100%}.presto-panel__title{flex-shrink:0;padding:3px 8px;font-size:12px;font-weight:600;color:#333;background:#f0f0f0;border-bottom:1px solid #e0e0e0;letter-spacing:.02em}.presto-panel__body{flex:1;min-height:96px;padding:4px;max-height:240px;overflow:auto}.presto-panel__hint{color:#999;font-size:12px;display:block;padding:4px}.presto-panels .ant-table-thead>tr>th{padding-top:3px;padding-bottom:3px}.presto-panels .ant-table-tbody>tr>td{padding-top:2px;padding-bottom:2px}.presto-panel__body .ant-input{font-size:12.5px}.presto-panels--modal{gap:8px;margin-top:0;border-top:none;padding-top:0}.presto-panels--modal .presto-panel__body{min-height:180px;max-height:56vh}.presto-panels--modal .presto-panels__row{gap:8px}@media(min-width:768px){.mobile-only{display:none}.desktop-only{display:block}}.app-footer{flex-shrink:0;display:flex;align-items:center;justify-content:center;height:var(--app-footer-height, 36px);padding:8px var(--app-padding);background:var(--serconsa-surface);border-top:1px solid var(--serconsa-border);color:var(--serconsa-text-secondary);font-size:13px}@media(min-width:768px){.app-footer{justify-content:flex-end}}.agenda-cal{border-collapse:collapse;width:100%;table-layout:fixed}.agenda-cal th,.agenda-cal td{border:1px solid var(--serconsa-border);text-align:left;padding:4px 6px;font-size:12.5px;vertical-align:top;height:52px}.agenda-cal th{background:var(--serconsa-surface-alt);font-weight:600;text-align:center;height:auto}.agenda-cal__dia--fuera{background:var(--serconsa-surface-alt)}.agenda-cal__num{font-weight:600;margin-right:4px}.agenda-cal__dia--nolaborable .agenda-cal__num{color:var(--serconsa-muted)}.agenda-cal__dia--festivo{background:#fff1f0}.agenda-cal__dia--festivo .agenda-cal__num{color:var(--serconsa-danger)}.agenda-cal__tag{display:block;color:var(--serconsa-danger);font-size:11px}.agenda-cal__tag--extra{color:var(--serconsa-success)}.agenda-cal__dia--extra{background:#f6ffed}.parte-paper{border:1px solid var(--presto-border);background:var(--presto-surface)}.parte-paper__title{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:8px var(--app-card-padding);background:var(--presto-capitulo);color:#fff}.parte-paper__title-text{font-size:14px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.parte-paper__header{padding:var(--app-card-padding);border-bottom:1px dashed var(--presto-border)}.parte-paper__header-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 16px}.parte-paper__header-fields .ant-select{width:100%}.parte-paper__meta{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:var(--app-row-gap);color:var(--serconsa-text-secondary);font-size:12.5px}.parte-paper__section{padding:var(--app-card-padding)}.parte-paper__section+.parte-paper__section{border-top:1px dashed var(--presto-border)}.parte-paper__section-title{font-weight:600;margin-bottom:var(--app-row-gap)}.parte-line-cols{display:none}.parte-line{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;align-items:start;margin-bottom:var(--app-list-gap);padding:var(--app-card-padding);border:1px solid var(--presto-border);border-radius:4px}.parte-line .ant-form-item{margin-bottom:0}.parte-line .ant-select,.parte-line .ant-input,.parte-line .ant-input-number,.parte-line .ant-picker{width:100%}.parte-line__num{grid-column:1 / -1;font-family:var(--serconsa-font-mono);font-size:12px;color:var(--serconsa-muted)}.parte-field--wide{grid-column:1 / -1}.parte-line__del{grid-column:1 / -1;justify-self:end}@media(min-width:768px){.parte-line-cols{display:grid;gap:8px;margin-bottom:4px;font-size:12px;font-weight:600;color:var(--serconsa-muted)}.parte-line-cols--empleado,.parte-line--empleado{grid-template-columns:24px minmax(0,1.7fr) minmax(0,1.5fr) minmax(0,1.4fr) 64px 56px 84px 64px 84px 32px}.parte-line-cols--material,.parte-line--material{grid-template-columns:24px minmax(0,1.8fr) 96px 96px 72px 96px minmax(0,1.2fr) 32px}.parte-line{align-items:center;gap:8px;margin-bottom:0;padding:6px 0;border:0;border-bottom:1px solid var(--presto-border);border-radius:0}.parte-line .ant-form-item-label{display:none}.parte-line__num,.parte-field--wide,.parte-line__del{grid-column:auto}.parte-line__num{text-align:right}.parte-line__del{justify-self:center}}.parte-paper__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:var(--app-card-padding);border-top:1px solid var(--presto-border);background:var(--presto-surface-alt)}@media(max-width:767px){.parte-paper__actions .ant-btn{flex:1 1 50%}}.parte-resumen__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--app-row-gap) 16px}.parte-resumen__item{display:flex;flex-direction:column;gap:2px}.parte-resumen__label{font-size:12.5px;color:var(--serconsa-text-secondary)}.parte-resumen__item strong{font-family:var(--serconsa-font-mono);font-size:15px}.parte-resumen__item--destacado strong{font-size:16px;font-weight:700}.parte-resumen__item--negativo strong{color:var(--serconsa-danger)}.timesheet-detail{display:flex;flex-direction:column;gap:var(--app-row-gap)}.timesheet-detail__meta{display:flex;flex-wrap:wrap;gap:4px 24px}.timesheet-detail__employee{cursor:pointer}.timesheet-detail__employee:hover{text-decoration:underline}.dashboard-header__right{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px}.header-clock{text-align:right}.header-clock__time{font-size:20px;font-weight:600;line-height:1.2;font-variant-numeric:tabular-nums}.company-logo{display:block;max-width:220px;height:auto;object-fit:contain}.dashboard-customize-bar{display:flex;justify-content:flex-end;margin-bottom:var(--app-row-gap)}.dashboard-customize{display:flex;flex-direction:column;gap:4px;min-width:280px}.dashboard-customize__row{display:flex;align-items:center;justify-content:space-between;gap:8px}.dashboard-customize__moves{display:inline-flex;gap:2px}.dashboard-customize__reset{align-self:flex-start;padding-left:0}.dashboard-block{position:relative}.dashboard-block__handle{position:absolute;top:6px;right:6px;z-index:3;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:1px solid var(--serconsa-border);border-radius:4px;background:var(--serconsa-surface);color:var(--serconsa-text-secondary);cursor:grab;opacity:0;transition:opacity .15s ease;touch-action:none}.dashboard-block:hover .dashboard-block__handle,.dashboard-block__handle:focus-visible,.dashboard-block--dragging .dashboard-block__handle{opacity:1}.dashboard-block__handle:hover{border-color:var(--serconsa-primary);color:var(--serconsa-primary)}.dashboard-block__handle:active{cursor:grabbing}.dashboard-block--dragging{z-index:10;box-shadow:0 6px 16px #0f172a26}.dashboard-block__resize{position:absolute;right:0;bottom:0;z-index:3;display:block;width:18px;height:18px;padding:0;border:0;background:transparent;color:var(--serconsa-text-secondary);cursor:nwse-resize;opacity:0;transition:opacity .15s ease;touch-action:none}.dashboard-block__resize:before{content:"";display:block;width:100%;height:100%;border-right:2px solid currentColor;border-bottom:2px solid currentColor;border-bottom-right-radius:4px}.dashboard-block:hover .dashboard-block__resize,.dashboard-block__resize:focus-visible{opacity:1}.dashboard-block__resize:hover{color:var(--serconsa-primary)}.dashboard-block--sized{overflow:auto}.dashboard-block--resizing,.dashboard-block--resizing *{cursor:nwse-resize;-webkit-user-select:none;user-select:none}
