@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-normal-BbWidj28.woff) format("woff")}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-700-normal-BK6Glc0m.woff) format("woff")}:root{--color-primary: #356b51;--color-secondary: #f2b84b;--color-on-primary: #ffffff;--color-on-secondary: #232823;--color-primary-soft: color-mix(in srgb, var(--color-primary) 12%, #ffffff);--color-primary-strong: color-mix(in srgb, var(--color-primary) 82%, #000000);--color-bg: #f6f6f3;--color-surface: #ffffff;--color-border: #dfe2dc;--color-border-strong: #b9beb6;--color-text: #1f2420;--color-muted: #5b625c;--color-success: #2c6046;--color-success-soft: #e4efe8;--color-warning: #7a5200;--color-warning-soft: #fdf1d8;--color-danger: #a83e37;--color-danger-soft: #fbe6e4;--color-info: #44687f;--color-info-soft: #e8eff5;--color-future: #6a479e;--color-future-soft: #efeaf8;--radius-sm: 8px;--radius-md: 12px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--hit: 44px;--shadow-pop: 0 12px 32px rgb(20 30 20 / .16), 0 2px 6px rgb(20 30 20 / .08);--dur-press: 90ms;--dur-in: .22s;--dur-out: .16s;--ease-in: cubic-bezier(.2, .8, .2, 1);--ease-out: cubic-bezier(.4, 0, 1, 1);--sidebar-width: 232px;--topbar-height: 58px;--bottom-nav-height: 64px;--font-sans: "Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);font-size:15px;line-height:1.5;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}h1{margin:0 0 var(--space-1);font-size:28px;line-height:1.2;letter-spacing:-.01em;text-wrap:balance}h2{margin:0;font-size:19px;line-height:1.3;text-wrap:balance}.icon{flex:none;width:20px;height:20px}a{color:var(--color-primary);font-weight:600}:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.muted{color:var(--color-muted)}.small{font-size:13px}.stack{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4)}.stack>*{min-width:0}.card{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-5)}.badge{display:inline-block;width:fit-content;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700}.badge-danger{background:var(--color-danger-soft);color:var(--color-danger)}.brand{display:flex;align-items:center;gap:var(--space-3)}.brand strong{display:block;font-size:18px}.brand small{color:var(--color-muted);font-size:10px;font-weight:700}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-on-primary);font-size:12px;font-weight:700}.workspace{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2)}.workspace strong{display:block;font-size:13px}.workspace small{font-size:11px}.workspace-logo{display:grid;flex:none;place-items:center;width:32px;height:32px;border-radius:var(--radius-sm);background:var(--color-primary-soft);color:var(--color-primary);font-size:11px;font-weight:700;object-fit:contain}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:100vh}.skip-link{position:fixed;top:var(--space-2);left:var(--space-2);z-index:60;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);background:var(--color-text);color:#fff;transform:translateY(-200%)}.skip-link:focus{transform:none}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;height:100vh;overflow-y:auto;background:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--space-4) var(--space-3)}.sidebar-brand{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:0 var(--space-2)}.icon-button.sidebar-close{display:none}.sidebar-section,.eyebrow{margin:var(--space-5) var(--space-2) var(--space-2);font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--color-muted)}.eyebrow{margin:0 0 var(--space-2);color:var(--color-primary)}.sidebar-footer{display:grid;gap:var(--space-2);margin-top:auto;padding:var(--space-4) var(--space-2) 0;border-top:1px solid var(--color-border)}.sidebar-person{display:flex;align-items:center;gap:var(--space-3)}.sidebar-person strong{display:block;font-size:14px}.sidebar-person small{color:var(--color-muted);font-size:13px}.nav-list{display:grid;gap:2px}.nav-link{display:flex;align-items:center;gap:var(--space-3);min-height:var(--hit);padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--color-text);font-weight:400;text-decoration:none;transition:background-color var(--dur-out) ease-out,color var(--dur-out) ease-out}.nav-link .icon{color:var(--color-muted)}.nav-link:hover{background:var(--color-bg)}.nav-link.active{background:var(--color-primary-soft);color:var(--color-primary);font-weight:700}.nav-link.active .icon{color:currentColor}.nav-contador{min-width:22px;height:22px;margin-left:auto;padding:0 6px;border-radius:999px;background:var(--color-danger);color:#fff;font-size:12px;font-weight:700;line-height:22px;text-align:center}.seccion-pestanas{display:flex;gap:var(--space-1);margin-bottom:var(--space-5);overflow-x:auto;border-bottom:1px solid var(--color-border);scrollbar-width:thin}.seccion-pestana{display:inline-flex;flex:none;align-items:center;gap:var(--space-2);min-height:var(--hit);padding:0 var(--space-3);border:0;border-bottom:3px solid transparent;background:none;color:var(--color-muted);font:inherit;font-weight:600;text-decoration:none;white-space:nowrap;cursor:pointer;transition:color var(--dur-out) ease-out,border-color var(--dur-in) var(--ease-in)}.seccion-pestana:hover{color:var(--color-text)}.seccion-pestana.active{border-bottom-color:var(--color-primary);color:var(--color-primary);font-weight:700}.app-main{display:flex;flex-direction:column;min-width:0}.topbar{position:sticky;top:0;z-index:15;display:flex;align-items:center;gap:var(--space-4);height:var(--topbar-height);padding:0 var(--space-6);background:var(--color-surface);border-bottom:1px solid var(--color-border);font-size:14px}.topbar-brand,.icon-button.menu-button{display:none}.topbar-context{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-user,.account-actions{display:flex;align-items:center;gap:var(--space-3)}.role-chip{padding:3px 10px;border-radius:999px;background:var(--color-primary-soft);color:var(--color-primary);font-weight:700}.avatar{display:grid;flex:none;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);font-size:12px;font-weight:700}.cuenta-boton{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--hit);padding:0 var(--space-2) 0 var(--space-1);border:0;border-radius:999px;background:none;color:var(--color-text);font:inherit;cursor:pointer}.cuenta-boton:hover,.cuenta-boton[aria-expanded=true]{background:var(--color-bg)}.content{padding:var(--space-5) var(--space-6) var(--space-6);outline:none}.page-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:var(--space-3) var(--space-4);padding-bottom:var(--space-4);margin-bottom:var(--space-5);border-bottom:1px solid var(--color-border)}.page-header>div:first-child{min-width:0;max-width:72ch}.page-back{display:inline-flex;align-items:center;gap:2px;min-height:var(--hit);margin:calc(var(--space-2) * -1) 0 var(--space-1) calc(var(--space-1) * -1);padding-right:var(--space-2);font-weight:700;text-decoration:none}.page-back:hover{text-decoration:underline}.page-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.bottom-nav,.scrim{display:none}@media(max-width:1024px){:root{--sidebar-width: 200px}.topbar,.content{padding-inline:var(--space-5)}}@media(max-width:767px){body{font-size:16px}.app-shell{grid-template-columns:minmax(0,1fr)}.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;width:min(320px,86vw);padding-top:calc(var(--space-4) + env(safe-area-inset-top));padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom));border-right:0;box-shadow:var(--shadow-pop);transform:translate(-100%);visibility:hidden;transition:transform var(--dur-out) var(--ease-out),visibility 0s linear var(--dur-out)}.app-shell[data-menu-open] .sidebar{transform:none;visibility:visible;transition:transform var(--dur-in) var(--ease-in)}.icon-button.sidebar-close{display:grid}.scrim{position:fixed;inset:0;z-index:30;display:block;background:#12171273;opacity:0;pointer-events:none;transition:opacity var(--dur-out) ease-in}.scrim[data-open]{opacity:1;pointer-events:auto;transition:opacity var(--dur-in) ease-out}.topbar{gap:var(--space-2);height:calc(var(--topbar-height) + env(safe-area-inset-top));padding:env(safe-area-inset-top) var(--space-3) 0}.icon-button.menu-button{display:grid}.topbar-brand{display:block;flex:1;min-width:0;overflow:hidden}.topbar-context,.role-chip,.cuenta-nombre{display:none}.topbar-user{flex-shrink:0;gap:var(--space-1)}.content{padding:var(--space-4) var(--space-4) calc(var(--bottom-nav-height) + var(--space-6) + env(safe-area-inset-bottom))}h1{font-size:24px}.page-header{align-items:stretch;margin-bottom:var(--space-4)}.page-actions{width:100%}.page-actions>.btn,.page-actions>a.btn,.page-actions>.row-actions{flex:1 1 auto}.bottom-nav{position:fixed;inset:auto 0 0;z-index:20;display:flex;height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom));padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:var(--color-surface);border-top:1px solid var(--color-border)}.bottom-nav-link{position:relative;display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;border:0;background:none;color:var(--color-muted);font:inherit;font-size:12px;font-weight:600;text-decoration:none;cursor:pointer}.bottom-nav-link .icon{width:24px;height:24px}.bottom-nav-link:before{content:"";position:absolute;top:0;width:32px;height:3px;border-radius:0 0 3px 3px;background:var(--color-primary);transform:scaleX(0);transition:transform var(--dur-in) var(--ease-in)}.bottom-nav-link.active{color:var(--color-primary);font-weight:700}.bottom-nav-link.active:before{transform:scaleX(1)}.bottom-nav-link .nav-contador{position:absolute;top:5px;left:calc(50% + 6px);min-width:18px;height:18px;margin:0;font-size:11px;line-height:18px}}.field{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}.field label{font-size:14px;font-weight:700;color:var(--color-text)}.field input{height:44px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;font-size:16px}.field input:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.field input[aria-invalid=true]{border-color:var(--color-danger)}.field-error{margin:0;font-size:14px;font-weight:600;color:var(--color-danger)}.field-hint{margin:0;font-size:13px;color:var(--color-muted)}.checkbox{display:flex;align-items:center;gap:var(--space-2);color:var(--color-muted)}.checkbox input{width:18px;height:18px;accent-color:var(--color-primary)}.carga-inicial{padding:var(--space-4)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);width:fit-content;min-height:var(--hit);padding:0 var(--space-4);border:1.5px solid transparent;border-radius:var(--radius-sm);font:inherit;font-weight:700;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;transition:background-color var(--dur-out) ease-out,border-color var(--dur-out) ease-out,color var(--dur-out) ease-out,transform var(--dur-press) ease-out}.btn:active:not(:disabled){transform:scale(.97)}form .btn{width:auto}.btn:disabled,.btn[aria-disabled=true]{background:var(--color-border);border-color:transparent;color:var(--color-muted);cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-on-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-strong)}.btn-secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text)}.btn-secondary:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger-outline{background:var(--color-surface);border-color:color-mix(in srgb,var(--color-danger) 40%,#ffffff);color:var(--color-danger)}.btn-danger-outline:hover:not(:disabled){border-color:var(--color-danger)}.btn-spinner{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:girar .7s linear infinite}@keyframes girar{to{transform:rotate(1turn)}}.link-button{display:inline-flex;align-items:center;gap:var(--space-1);border:0;background:none;padding:0;font:inherit;font-weight:700;color:var(--color-primary);text-decoration:none;cursor:pointer}.link-button:hover{text-decoration:underline}.icon-button{position:relative;display:grid;flex:none;place-items:center;width:var(--hit);height:var(--hit);border:0;border-radius:var(--radius-sm);background:none;color:var(--color-text);cursor:pointer;transition:background-color var(--dur-out) ease-out}.icon-button:hover,.icon-button[aria-expanded=true]{background:var(--color-primary-soft);color:var(--color-primary)}.alert{margin:0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm)}.alert-danger{background:var(--color-danger-soft);color:var(--color-danger)}.access-denied{display:grid;gap:var(--space-3);max-width:560px}.auth-page{display:grid;place-items:center;min-height:100vh;padding:var(--space-4)}.auth-card{display:grid;gap:var(--space-2);width:100%;max-width:420px}.auth-card h1{margin-top:var(--space-6)}.auth-card form,.profile-list{margin-top:var(--space-5)}.profile-option{display:grid;gap:var(--space-1);padding:var(--space-5);border:2px solid transparent;border-radius:var(--radius-md);background:var(--color-surface);font:inherit;text-align:left;cursor:pointer}.profile-option strong{font-size:18px}.profile-option:hover:not(:disabled),.profile-option[aria-current]{border-color:var(--color-primary)}.full-page-message{display:grid;place-content:center;justify-items:center;gap:var(--space-2);min-height:100vh;padding:var(--space-4);text-align:center}.offline-banner{margin:0;padding:var(--space-2) var(--space-6);background:var(--color-warning-soft);color:var(--color-warning);font-size:13px;font-weight:600}.toast-actions{display:flex;align-items:center;gap:var(--space-4)}.toast{position:fixed;right:var(--space-5);bottom:var(--space-5);z-index:40;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) var(--space-4);max-width:min(440px,calc(100vw - 2 * var(--space-4)));padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-text);color:#fff;box-shadow:0 10px 30px #0003}.toast .link-button{color:#fff}@media(max-width:767px){.offline-banner{padding-inline:var(--space-4)}.toast{right:var(--space-4);left:var(--space-4);bottom:calc(var(--bottom-nav-height) + var(--space-3) + env(safe-area-inset-bottom))}}.pending-sync{position:relative}.pending-chip{display:inline-flex;align-items:center;gap:var(--space-2);min-height:32px;padding:0 var(--space-3);border:0;border-radius:999px;background:var(--color-warning-soft);color:var(--color-warning);font:inherit;font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer}.pending-chip-error{background:var(--color-danger-soft);color:var(--color-danger)}.pending-dot{width:8px;height:8px;border-radius:50%;background:currentColor}.pending-dot-sync{animation:pending-pulse 1s ease-in-out infinite}@keyframes pending-pulse{50%{opacity:.25}}.pending-panel{position:absolute;top:calc(100% + var(--space-2));right:0;z-index:35;display:grid;gap:var(--space-3);width:min(360px,calc(100vw - 2 * var(--space-4)));max-height:70vh;overflow-y:auto;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:0 10px 30px #00000026;font-size:13px}.pending-panel header p{margin:var(--space-1) 0 0}.pending-panel ul{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}.pending-panel li{display:grid;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-bg)}.pending-panel li>div:first-child{display:grid;gap:2px}.pending-panel li[data-status=failed]{background:var(--color-danger-soft)}.pending-error{color:var(--color-danger)}.pending-actions{display:flex;gap:var(--space-4)}.link-button.danger{color:var(--color-danger)}.pending-panel .btn{width:100%}@media(prefers-reduced-motion:reduce){.pending-dot-sync{animation:none}}@media(max-width:767px){.pending-panel{position:fixed;top:calc(var(--topbar-height) + var(--space-2));right:var(--space-4);left:var(--space-4);width:auto}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.num{text-align:right;font-variant-numeric:tabular-nums}.badge-success{background:var(--color-success-soft);color:var(--color-success)}.badge-muted{background:var(--color-border);color:var(--color-muted)}.alert-success{margin-bottom:var(--space-4);background:var(--color-success-soft);color:var(--color-success)}.field select{width:100%;max-width:100%;height:44px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;font-size:16px}.field select:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.span-2{grid-column:span 2}.obra-form{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--space-5);align-items:start}.obra-form-side{position:sticky;top:calc(var(--topbar-height) + var(--space-4))}.obra-form-side .btn{width:100%}.partidas{display:grid;gap:var(--space-4)}.partidas-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4)}.partidas-head p{margin:var(--space-1) 0 0}.partidas-table{display:grid}.partidas-row{display:grid;grid-template-columns:1.45fr 1.45fr .55fr .7fr .9fr .95fr 52px;gap:var(--space-2);align-items:start;padding:var(--space-2) 0;border-bottom:1px solid var(--color-border)}.partidas-header{padding-top:0;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted)}.partidas-cell{display:grid;gap:4px;min-width:0}.partidas-cell input{width:100%;height:40px;padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;font-size:15px}.partidas-cell input:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.partidas-cell input[aria-invalid=true]{border-color:var(--color-danger)}.cell-cantidad input,.cell-precio_unitario input{text-align:right}.cell-total{align-self:center}.cell-actions{align-self:center;justify-items:end}.cell-label{display:none}.partidas-actions{display:flex;flex-wrap:wrap;gap:var(--space-5)}.link-button:disabled{opacity:.4;cursor:not-allowed}.resumen-presupuesto dl{display:grid;gap:var(--space-2);margin:0}.resumen-presupuesto dl>div,.resumen-total{display:flex;justify-content:space-between;gap:var(--space-3)}.resumen-presupuesto dd{margin:0;font-variant-numeric:tabular-nums}.resumen-total{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border);font-size:16px}.resumen-total strong{color:var(--color-primary);font-size:20px;font-variant-numeric:tabular-nums}.obras-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-4)}.tabs{display:flex;gap:var(--space-2)}.tab{min-height:var(--hit);padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-muted);font:inherit;font-weight:600;cursor:pointer}.tab[aria-selected=true]{border-color:transparent;background:var(--color-primary-soft);color:var(--color-primary)}.search-field{flex:0 1 320px}.search-field input{width:100%}.obras-list{display:grid;gap:var(--space-3);margin:0;padding:0;list-style:none}.obras-list[aria-busy=true]{opacity:.6}.obra-card{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);color:inherit;font-weight:400;text-decoration:none}.obra-card:hover{outline:1px solid var(--color-primary)}.obra-card>div:first-child{display:grid;gap:var(--space-1);min-width:0}.obra-card-meta{display:grid;justify-items:end;gap:var(--space-1);white-space:nowrap}.empty-state{display:grid;justify-items:start;gap:var(--space-3)}.obra-detalle{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4)}.obra-detalle h2{margin-bottom:var(--space-4)}.ficha{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-4);margin:0}.ficha dt{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--color-muted)}.ficha dd{margin:var(--space-1) 0 0}.ficha-total{color:var(--color-primary);font-size:20px;font-weight:700}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--color-border);text-align:left}.data-table .num{text-align:right}.data-table thead th{font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted)}.data-table .group-row th,.data-table .group-row td{background:var(--color-bg);font-weight:700}.data-table tfoot th,.data-table tfoot td{border-bottom:0;font-size:16px;font-weight:700}@media(max-width:1024px){.obra-form{grid-template-columns:minmax(0,1fr)}.obra-form-side{position:static}}@media(max-width:767px){.form-grid{grid-template-columns:minmax(0,1fr)}.span-2{grid-column:auto}.partidas-header{display:none}.partidas-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);margin-bottom:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md)}.cell-capitulo,.cell-descripcion{grid-column:span 2}.cell-label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;color:var(--color-muted)}.cell-total{justify-items:start;text-align:left}.partidas-cell input{height:44px;font-size:16px}.obra-card{flex-direction:column;align-items:flex-start}.obra-card-meta{justify-items:start}.search-field{flex-basis:100%}}.alert-warning{background:var(--color-warning-soft);color:var(--color-warning)}.auth-links{display:grid;justify-items:start;gap:var(--space-3);margin-top:var(--space-4)}.code-input{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:26px!important;letter-spacing:.35em;text-align:center;height:56px!important}.code-input::placeholder{color:#cfd2cc}.code-input-backup{font-size:22px!important;letter-spacing:.15em}.code-field{max-width:320px}.seguridad{display:grid;gap:var(--space-4);max-width:900px}.seguridad h2{margin-bottom:var(--space-1)}.mfa-setup{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-6)}.mfa-step{display:grid;align-content:start;gap:var(--space-3)}.mfa-instructions{margin:0;padding-left:1.2em;line-height:1.6}.qr,.qr-placeholder{display:block;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff}.qr-placeholder{background:var(--color-bg)}.mfa-manual summary{color:var(--color-primary);font-weight:600;cursor:pointer}.mfa-manual[open]{display:grid;gap:var(--space-2)}.secret{display:block;padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-bg);font-size:15px;letter-spacing:.08em;word-break:break-all;-webkit-user-select:all;user-select:all}.row-actions,.backup-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.backup-codes{display:grid;grid-template-columns:repeat(2,minmax(0,max-content));gap:var(--space-2) var(--space-6);margin:0;padding:var(--space-4) var(--space-4) var(--space-4) 2.4em;border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-bg)}.backup-codes code{font-size:17px;letter-spacing:.08em}@media(max-width:767px){.mfa-setup{grid-template-columns:minmax(0,1fr)}.code-field{max-width:none}}@media print{.sidebar,.topbar,.bottom-nav,.offline-banner,.page-header,.backup-actions,.checkbox,.seguridad .btn,.seguridad .alert{display:none!important}.app-shell{display:block}.card{padding:0}}.block{display:block}.badge-warning{background:var(--color-warning-soft);color:var(--color-warning)}.chips{display:flex;flex-wrap:wrap;gap:var(--space-1);margin:0;padding:0;list-style:none}.chips .role-chip{display:inline-block;font-size:11px}.usuarios-table td{vertical-align:top}.roles-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);margin:0;padding:0;border:0}.role-option{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer}.role-option>span{display:grid;gap:2px}.role-option input{width:18px;height:18px;margin-top:2px;accent-color:var(--color-primary)}.role-option[data-checked]{border-color:var(--color-primary);background:var(--color-primary-soft)}.role-option:focus-within{outline:2px solid var(--color-primary);outline-offset:2px}.permisos,.permisos ul{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}.permisos ul{gap:2px;margin-top:var(--space-1);font-size:13px}.duplicado{display:grid;gap:var(--space-2)}@media(max-width:767px){.roles-grid{grid-template-columns:minmax(0,1fr)}.usuarios-table thead{display:none}.usuarios-table,.usuarios-table tbody,.usuarios-table tr,.usuarios-table td{display:block}.usuarios-table tr{padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.usuarios-table td{padding:var(--space-1) 0;border:0;text-align:left}}.login-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-3)}.stack-sm{display:grid;gap:var(--space-1)}.info-box{display:grid;gap:var(--space-1);margin-top:var(--space-5);padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-warning-soft);color:var(--color-warning);font-size:13px}.password-rules{display:grid;gap:2px;margin:calc(-1 * var(--space-2)) 0 0;padding:0;list-style:none;font-size:13px;color:var(--color-muted)}.password-rules li[data-ok]{color:var(--color-success)}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:var(--space-4);background:#00000073}.modal{display:grid;gap:var(--space-3);width:min(420px,100%);padding:var(--space-5);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:0 20px 50px #00000040}.auth-card>.badge{margin-top:var(--space-6)}.auth-card>.badge+h1{margin-top:var(--space-2)}.acciones{white-space:nowrap}.acciones>*+*{margin-left:var(--space-4)}.consecuencias{display:grid;gap:var(--space-1);margin:0;padding-left:1.2em;color:var(--color-muted)}@media(max-width:767px){.acciones{white-space:normal}}.asignadas-lista{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}.asignada-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md)}.badge-info{background:var(--color-info-soft);color:var(--color-info)}.filtros-auditoria{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-4);align-items:start;margin-bottom:var(--space-4)}.filtros-auditoria .limpiar{grid-column:1 / -1;justify-self:start}.auditoria-table td{vertical-align:top}.auditoria-table time{white-space:nowrap}.cambios ul{display:grid;gap:2px;margin:0;padding:0;list-style:none;font-size:13px}.cambios .campo{color:var(--color-muted)}.cambios .valor{font-weight:600;overflow-wrap:anywhere}.cambios details summary{margin-top:var(--space-1);color:var(--color-primary);font-size:13px;font-weight:600;cursor:pointer}.paginacion{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-4)}.inmutable{margin-top:var(--space-4)}@media(max-width:1024px){.filtros-auditoria{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767px){.filtros-auditoria{grid-template-columns:minmax(0,1fr)}.auditoria-table thead{display:none}.auditoria-table,.auditoria-table tbody,.auditoria-table tr,.auditoria-table td{display:block}.auditoria-table tr{padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.auditoria-table td{padding:var(--space-1) 0;border:0}}.filtros-auditoria select,.filtros-auditoria input{width:100%;min-width:0}.campana{border-radius:50%}.campana:hover,.campana.active{background:var(--color-primary-soft);color:var(--color-primary)}.campana-contador{position:absolute;top:1px;right:0;min-width:18px;height:18px;padding:0 4px;border:2px solid var(--color-surface);border-radius:999px;background:var(--color-danger);color:#fff;font-size:10px;font-weight:700;line-height:14px;text-align:center}.invitacion-push{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-4);margin:0;padding:var(--space-3) var(--space-6);background:var(--color-primary-soft);color:var(--color-primary);font-size:13px;font-weight:600}.avisos-push{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.avisos-push>div{flex:1 1 320px;min-width:0}.avisos-push h2{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:0 0 var(--space-1);font-size:16px}.notificaciones-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.notificaciones-header h2{margin:0}.notificaciones .tabs{margin-bottom:var(--space-3)}.notificaciones-lista{margin:0;padding:0;list-style:none}.notificacion{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.notificacion:last-child{border-bottom:0}.notificacion p{margin:0;overflow-wrap:anywhere}.notificacion-titulo{font-weight:700}.notificacion[data-leida] .notificacion-titulo{font-weight:500}.notificacion[data-leida] .notificacion-punto{opacity:.45}.notificacion-punto{display:grid;place-items:center;width:34px;height:34px;border-radius:var(--radius-sm);font-size:18px;line-height:1}.tono-ok{background:var(--color-primary-soft);color:var(--color-primary)}.tono-atencion{background:var(--color-warning-soft);color:var(--color-warning)}.tono-critico{background:var(--color-danger-soft);color:var(--color-danger)}.notificacion-acciones{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-3)}@media(max-width:767px){.invitacion-push{padding-inline:var(--space-4)}.notificacion{grid-template-columns:34px minmax(0,1fr)}.notificacion-acciones{grid-column:2;justify-content:flex-start}.notificacion-acciones .link-button{min-height:44px}.campana{width:44px;height:44px}}.field-label{font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--color-muted)}.field-static{display:flex;align-items:center;min-height:44px;margin:0;font-weight:600}.encargo-form{max-width:760px}.encargos-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.obra-detalle .encargos-header h2{margin-bottom:var(--space-2)}.encargos-table td{vertical-align:top}.encargos-table .acciones{text-align:right;white-space:nowrap}@media(max-width:767px){.encargos-header .btn{width:100%}.encargos-table thead{display:none}.encargos-table,.encargos-table tbody,.encargos-table tr,.encargos-table td{display:block}.encargos-table tr{padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.encargos-table td{padding:2px 0;border:0}.encargos-table td.num,.encargos-table .acciones{text-align:left}.encargos-table .acciones .link-button{min-height:44px}}.captura{max-width:640px}.captura-encargo p{margin:0}.captura-visor{display:grid;place-items:center;gap:var(--space-2);min-height:260px;padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-primary-soft);text-align:center}.captura-visor p{margin:0}.captura-visor img{max-width:100%;max-height:420px;border-radius:var(--radius-sm);object-fit:contain;background:#fff}.captura-icono{font-size:40px;color:var(--color-primary)}.captura-pdf{font-weight:700;overflow-wrap:anywhere}.captura-acciones{display:flex;flex-wrap:wrap;gap:var(--space-3)}.captura-total{font-size:20px}.captura-aviso{margin:0;color:var(--color-warning);font-weight:700}.captura-ok{margin:0;color:var(--color-primary);font-weight:700}.captura-error{margin:0;color:var(--color-danger);font-weight:700}.medio-pago{display:grid;gap:var(--space-2);margin:0;padding:0;border:0}.medio-pago legend{margin-bottom:var(--space-2);font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--color-muted)}.opcion{display:flex;align-items:flex-start;gap:var(--space-3);min-height:44px;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer}.opcion[data-elegida]{border-color:var(--color-primary);background:var(--color-primary-soft)}.opcion input{margin-top:3px}.opcion-boton{display:block;width:100%;font:inherit;text-align:left;color:inherit}@media(max-width:767px){.captura-acciones .btn{width:100%}.captura-visor{min-height:220px}.captura-visor img{max-height:320px}}.lista-envios{margin:0;padding:0;list-style:none}.lista-envios li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.lista-envios li:last-child{border-bottom:0}.lista-envios li>div:first-child{flex:1 1 240px;min-width:0;overflow-wrap:anywhere}.lista-envios li[data-status=failed] strong{color:var(--color-danger)}.ficha-vertical{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3);margin:0}.ficha-vertical dd{margin:0;font-weight:600}@media(max-width:767px){.topbar-brand{min-width:0;overflow:hidden}.topbar-user{flex-shrink:0;gap:var(--space-2)}}.anticipo-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--space-4);align-items:start}.medios-anticipo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.medios-anticipo .opcion{align-items:center}.saldo-rendir{background:var(--color-primary-soft)}.saldo-rendir h2{font-size:15px;color:var(--color-primary)}.saldo-formula{margin:var(--space-2) 0 0;font-weight:600}.saldo-total{margin:var(--space-1) 0;font-size:28px;font-weight:800;color:var(--color-primary)}.encargos-table .acciones>*+*{margin-left:var(--space-3)}@media(max-width:1024px){.anticipo-layout{grid-template-columns:minmax(0,1fr)}}@media(max-width:767px){.encargos-table .acciones{justify-content:flex-start}}.reparto{display:grid;gap:var(--space-3);margin:0;padding:0;border:0;min-width:0}.reparto legend{margin-bottom:var(--space-2);font-weight:600}.reparto-lineas{display:grid;gap:var(--space-3);margin:0;padding:0;list-style:none}.reparto-linea{display:grid;grid-template-columns:minmax(0,1fr) 140px auto;align-items:end;gap:var(--space-2) var(--space-3)}.reparto-linea:only-child{grid-template-columns:minmax(0,1fr)}.reparto-linea .field{margin:0}.reparto-linea .link-button{min-height:44px}.reparto-pie{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2)}.reparto-pie p{margin:0;font-weight:600}.reparto-cuadra{color:var(--color-success)}.reparto-falta{color:var(--color-warning)}@media(max-width:767px){.reparto-linea{grid-template-columns:minmax(0,1fr) auto}.reparto-linea .field:first-child{grid-column:1 / -1}}.modal-fondo{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:var(--space-4);background:#0000008c}.modal{width:min(560px,100%);max-height:calc(100dvh - 2 * var(--space-4));overflow:auto;padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface);outline:none}.modal-amplio{width:min(960px,100%)}.modal-cabecera{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.modal-cabecera h2{margin:0;font-size:16px}.bandeja-lista{display:grid;gap:var(--space-4);margin:0;padding:0;list-style:none}.bandeja-item{display:grid;gap:var(--space-4)}.bandeja-resumen{display:grid;grid-template-columns:120px minmax(0,1fr);gap:var(--space-4)}.bandeja-foto{display:block;width:120px;height:160px;padding:0;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);cursor:zoom-in}.bandeja-foto img{width:100%;height:100%;object-fit:cover}.bandeja-foto-vacia{display:grid;place-items:center;color:var(--color-muted);font-size:12px;cursor:default}.bandeja-foto-grande{display:block;width:100%;height:auto}.bandeja-titulo{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);margin:0}.bandeja-total{margin:var(--space-1) 0 var(--space-2);font-size:22px;font-weight:700}.bandeja-ficha{display:grid;gap:var(--space-1);margin:0}.bandeja-ficha div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:var(--space-2)}.bandeja-ficha dt{color:var(--color-muted);font-size:13px}.bandeja-ficha dd{margin:0}.bandeja-accion{padding-top:var(--space-4);border-top:1px solid var(--color-border)}.bandeja-accion textarea{width:100%;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit}.bandeja-resultado{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2)}@media(max-width:767px){.bandeja-resumen{grid-template-columns:88px minmax(0,1fr);gap:var(--space-3)}.bandeja-foto{width:88px;height:118px}.bandeja-ficha div{grid-template-columns:minmax(0,1fr);gap:0}.bandeja-item .row-actions .btn{flex:1}}.compra-detalle{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--space-4);align-items:start}.respaldo-pdf{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:600}.compra-detalle-foto{width:100%;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.historial{display:grid;gap:var(--space-3);margin:0;padding:0;list-style:none}.historial li{padding-left:var(--space-3);border-left:3px solid var(--color-danger)}.historial p{margin:0}.historial-motivo{font-weight:600}@media(max-width:767px){.compra-detalle{grid-template-columns:minmax(0,1fr)}.compra-detalle-foto{max-height:320px;object-fit:contain}}.advertencia-boleta{display:grid;gap:var(--space-2)}.advertencia-boleta p{margin:0}.advertencia-empresa{display:grid;gap:var(--space-1);margin:0;padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text)}.advertencia-empresa div{display:flex;flex-wrap:wrap;gap:var(--space-2)}.advertencia-empresa dt{min-width:100px;color:var(--color-muted)}.advertencia-empresa dd{margin:0;font-weight:600;-webkit-user-select:all;user-select:all}.indicador-iva{margin:0;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.reembolso-cabecera{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.reembolso-cabecera h2{margin:0}.reembolso-cabecera strong{font-size:20px}.reembolso-todas{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;color:var(--color-muted)}.reembolso-lista{display:grid;margin:0;padding:0;list-style:none}.reembolso-lista li+li{border-top:1px solid var(--color-border)}.reembolso-lista label{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-2) 0;cursor:pointer}.reembolso-lista input,.reembolso-todas input{width:20px;height:20px;accent-color:var(--color-primary)}.reembolso-monto{text-align:right;font-weight:600}.reembolso-accion{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.texto-peligro{color:var(--color-danger)}.mis-saldos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.saldo-destacado h2{margin:0;font-size:14px;color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em}.saldo-destacado .saldo-total{margin:var(--space-2) 0;font-size:32px;font-weight:700}.saldo-destacado p{margin:var(--space-1) 0 0}.filtros-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{min-height:var(--hit);padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-text);font:inherit;font-size:13px;cursor:pointer}.chip[aria-pressed=true]{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary-strong);font-weight:600}.compra-enlace{min-width:0;color:inherit;text-decoration:none}.lista-envios li[data-situacion=OBSERVADA]{border-left:3px solid var(--color-danger);padding-left:var(--space-3)}@media(max-width:767px){.mis-saldos{grid-template-columns:minmax(0,1fr);gap:var(--space-3)}}.acciones-documentos{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-4);margin:0;padding:0;list-style:none}.accion-documento{display:grid;gap:var(--space-1);height:100%;color:inherit;text-decoration:none;transition:border-color .15s}.accion-documento:hover,.accion-documento:focus-visible{border-color:var(--color-primary)}.accion-documento strong{font-size:16px}.lista-rcv{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}.periodo-campos{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:var(--space-3)}.periodo-campos>.field{min-width:0}.periodo-campos input{width:100%;min-width:0;box-sizing:border-box}.tabla-errores{width:100%;border-collapse:collapse;font-size:13px;color:var(--color-text);background:var(--color-surface)}.tabla-errores th,.tabla-errores td{padding:var(--space-2);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top}.conciliacion-lista{display:grid;gap:var(--space-2);padding-left:var(--space-3);border-left:3px solid var(--color-border)}.conciliacion-lista[data-tono=peligro]{border-left-color:var(--color-danger)}.conciliacion-lista[data-tono=atencion]{border-left-color:var(--color-warning)}.conciliacion-lista h3{display:flex;align-items:center;gap:var(--space-2);margin:0;font-size:15px}.conciliacion-lista ul{display:grid;margin:0;padding:0;list-style:none}.conciliacion-fila{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border)}.conciliacion-monto{font-weight:600;white-space:nowrap}@media(max-width:767px){.conciliacion-fila{grid-template-columns:minmax(0,1fr) auto}.conciliacion-fila>:nth-child(3){grid-column:1 / -1}.tabla-errores{display:block;overflow-x:auto}}.btn.btn-sm{min-height:var(--hit);padding:0 var(--space-3);font-size:14px}.referencia-elegida{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-primary-soft)}.referencia-elegida p{margin:0}.plazos-lista{display:grid;gap:var(--space-3);margin:0;padding:0;list-style:none}.plazo-item{display:grid;gap:var(--space-2);border-left:4px solid var(--color-border)}.plazo-item[data-urgencia=critica]{border-left-color:var(--color-danger)}.plazo-item[data-urgencia=alta]{border-left-color:var(--color-warning)}.plazo-item[data-urgencia=normal]{border-left-color:var(--color-success)}.plazo-item p{margin:0}.plazo-cabecera{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.plazo-estado{display:grid;justify-items:end;gap:var(--space-1);text-align:right}.plazo-accion textarea{width:100%;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit}@media(max-width:767px){.plazo-estado{justify-items:start;text-align:left}}.alert-info{background:var(--color-info-soft);color:var(--color-info)}.alertas-cabecera{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2)}.alertas-cabecera h2{margin:0}.alertas-lista{display:grid;gap:var(--space-3);margin:0;padding:0;list-style:none}.alerta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);border-left:4px solid var(--color-info)}.alerta[data-urgencia=CRITICA]{border-left-color:var(--color-danger)}.alerta[data-urgencia=ALTA]{border-left-color:var(--color-warning)}.alerta-texto{display:grid;gap:var(--space-1);min-width:0;flex:1 1 280px}.alerta-texto p{margin:0}.alerta-titulo{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.checklist-cabecera{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-3)}.checklist-cabecera h2{margin:0}.checklist-cabecera .periodo-campos{width:min(320px,100%)}.checklist{display:grid;margin:0;padding:0;list-style:none}.checklist li{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.checklist-marca{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--color-warning-soft);color:var(--color-warning);font-weight:700}.checklist li[data-ok] .checklist-marca{background:var(--color-success-soft);color:var(--color-success)}@media(max-width:767px){.checklist li{grid-template-columns:32px minmax(0,1fr)}.checklist li>:last-child{grid-column:2;justify-self:start}}.paquetes{display:grid;margin:0;padding:0;list-style:none}.paquete-fila{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.provisorio{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.tabla-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.tabla-tributaria{width:100%;min-width:720px;border-collapse:collapse;font-size:14px}.tabla-tributaria th,.tabla-tributaria td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top}.tabla-tributaria th{color:var(--color-muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.tabla-tributaria .num{text-align:right;white-space:nowrap}.iva-resumen{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}.iva-resumen div{display:grid;gap:var(--space-1);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.iva-resumen strong{font-size:20px}@media(max-width:767px){.iva-resumen{grid-template-columns:minmax(0,1fr)}}.filtros-cotizaciones{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-3)}.filtros-cotizaciones .field{width:min(320px,100%);margin:0}.lista-cotizaciones{display:grid;gap:var(--space-3);margin:0;padding:0;list-style:none}.cotizacion-fila{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);color:inherit;text-decoration:none}.cotizacion-fila:hover{border-color:var(--color-primary)}.cotizacion-fila-estado{display:flex;align-items:center;gap:var(--space-3)}.estado-cotizacion{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin:0}.cotizacion-error{display:flex;justify-content:space-between;gap:var(--space-3)}.chip[aria-current=page]{border-color:var(--color-primary);background:var(--color-primary-soft);font-weight:600}a.chip{display:inline-flex;align-items:center;color:var(--color-text);text-decoration:none}.datos-cotizacion{display:grid;grid-template-columns:2fr 2fr 1fr 1fr 1fr;gap:var(--space-3);align-items:end}.datos-cotizacion .field{margin:0}.nuevo-cliente{padding:var(--space-3);border:1px dashed var(--color-border);border-radius:var(--radius-sm)}.planilla-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.planilla{width:100%;min-width:860px;border-collapse:collapse;font-size:14px}.planilla th{padding:var(--space-2);border-bottom:2px solid var(--color-border);color:var(--color-muted);font-size:12px;font-weight:600;text-align:left;text-transform:uppercase}.planilla th.num,.planilla-total{text-align:right}.planilla td{padding:2px var(--space-1);border-bottom:1px solid var(--color-border);vertical-align:middle}.planilla-num{width:48px;color:var(--color-muted);font-variant-numeric:tabular-nums}.planilla-total{width:130px;padding-right:var(--space-2)!important;font-weight:600;white-space:nowrap}.planilla-capitulo td{background:var(--color-primary-soft)}.planilla-partida[data-guardando]{opacity:.6}.celda{width:100%;min-height:36px;padding:4px var(--space-2);border:1px solid transparent;border-radius:4px;background:transparent;color:inherit;font:inherit}.celda:hover:not(:disabled){border-color:var(--color-border)}.celda:focus{border-color:var(--color-primary);outline:none;background:var(--color-surface)}.celda:disabled{color:inherit}.celda-num{text-align:right;font-variant-numeric:tabular-nums}.celda-capitulo{font-weight:700}.planilla-acciones{width:1%;white-space:nowrap}.icono{min-width:32px;min-height:32px;border:0;border-radius:4px;background:transparent;color:var(--color-muted);cursor:pointer}.icono:hover:not(:disabled){background:var(--color-bg);color:var(--color-text)}.icono:disabled{opacity:.3;cursor:default}.icono.peligro:hover{color:var(--color-danger)}.planilla-mover{max-width:120px;min-height:32px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);font:inherit;font-size:12px}.planilla-nueva td{background:var(--color-bg)}.planilla-nueva-form{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.3fr) auto;gap:var(--space-1);align-items:center}.planilla-nueva-form .celda{border-color:var(--color-border);background:var(--color-surface)}.planilla-nuevo-capitulo{display:flex;gap:var(--space-2);max-width:480px;margin-top:var(--space-3)}.planilla-nuevo-capitulo .celda{border-color:var(--color-border)}.planilla-vacia{padding:var(--space-3) 0}.totales-cotizacion{display:grid;gap:var(--space-1);max-width:420px;margin:0 0 0 auto}.totales-cotizacion div{display:flex;justify-content:space-between;gap:var(--space-3)}.totales-cotizacion dt{color:var(--color-muted)}.totales-cotizacion dd{margin:0;font-variant-numeric:tabular-nums}.totales-total{padding-top:var(--space-2);border-top:2px solid var(--color-border);font-size:18px;font-weight:700}.totales-total dt{color:var(--color-text)!important}@media(max-width:1023px){.datos-cotizacion{grid-template-columns:1fr 1fr}}@media(max-width:767px){.datos-cotizacion{grid-template-columns:minmax(0,1fr)}.totales-cotizacion{max-width:none}}.planilla-nuevo-capitulo .btn,.planilla-nueva-form .btn{white-space:nowrap}.cambiar-cliente{margin-left:var(--space-2)}.calendario-cabecera{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2)}.calendario-cabecera h2{margin:0}.calendario-tabla{min-width:680px}.calendario-pct{width:110px}.textarea{width:100%;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit;resize:vertical}.envio-canales{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-4);align-items:start}.mensaje-whatsapp{margin:0;padding:var(--space-3);border-left:3px solid #25d366;border-radius:var(--radius-sm);background:#e9f9ef;white-space:pre-wrap;font-size:14px}.btn-whatsapp{background:#1f9e4f;color:#fff}.btn-whatsapp:hover{background:#17803f}.mensaje-whatsapp{overflow-wrap:anywhere}.row-actions>.badge{align-self:center}.resumen-respuesta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-3)}.indicadores-cotizaciones{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}.indicadores-cotizaciones div{display:grid;gap:var(--space-1);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.indicadores-cotizaciones strong{font-size:24px}@media(max-width:767px){.indicadores-cotizaciones{grid-template-columns:repeat(2,minmax(0,1fr))}}.pasos{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0 0 var(--space-4);padding:0;list-style:none}.pasos li{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:999px;color:var(--color-muted);font-size:13px}.pasos li[aria-current=step]{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary-strong);font-weight:600}.pasos li[data-hecho]{color:var(--color-success)}.barra-avance{position:relative;height:8px;overflow:hidden;border-radius:999px;background:var(--color-bg)}.barra-avance span{position:absolute;inset:0 auto 0 0;border-radius:999px;background:var(--color-primary)}.barra-avance .barra-nuevo{background:var(--color-secondary);opacity:.8}.avance-total{display:grid;gap:var(--space-3)}.avance-total div{display:grid;gap:var(--space-1)}.avance-total strong{font-size:32px}.avance-lista{display:grid;margin:0;padding:0;list-style:none}.avance-partida{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:var(--space-4);align-items:center;padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.avance-partida[data-cambio]{background:var(--color-primary-soft);margin:0 calc(-1 * var(--space-3));padding-inline:var(--space-3)}.avance-partida-info{display:grid;gap:var(--space-2);min-width:0}.avance-partida-dato{display:grid;gap:var(--space-1);justify-items:end}.avance-actual{font-size:18px;font-weight:700}.avance-entrada{display:flex;gap:var(--space-1);width:100%}.avance-entrada select{min-height:40px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);font:inherit}.avance-entrada .celda{border-color:var(--color-border);background:var(--color-surface);min-height:40px}.avance-fecha{width:min(200px,100%);margin:0}.avance-guardar{position:sticky;bottom:0;display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-3) 0;background:var(--color-surface)}.hitos-lista{display:grid;margin:0;padding:0;list-style:none}.hitos-lista li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.hitos-lista li>div:first-child{flex:1 1 260px}.hito-confirmar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-2);width:100%}.hito-confirmar .field{margin:0}@media(max-width:767px){.avance-partida{grid-template-columns:minmax(0,1fr);gap:var(--space-2)}.avance-partida-dato{justify-items:stretch}.avance-guardar{bottom:64px}}.lista-contratos{display:grid;gap:var(--space-3);margin:0;padding:0;list-style:none}.contrato{display:grid;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md)}.contrato-cabecera{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:var(--space-2)}.ficha-contrato{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.subir-firmado{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-2)}.subir-firmado .field{margin:0}.subir-firmado input[type=file]{max-width:100%}.leyenda-parte{margin:0;padding:var(--space-3) var(--space-4);border-left:4px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-primary-soft)}.parte-filtros{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--space-3)}.parte-filtros .field{margin:0}.parte-lista,.parte-filas{display:grid;gap:var(--space-3);margin:0;padding:0;list-style:none}.parte-filas{gap:var(--space-2)}.parte-trabajador{display:grid;gap:var(--space-2);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.parte-trabajador[data-error] .parte-total{color:var(--color-danger)}.parte-trabajador-cabecera{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-2)}.parte-total{font-weight:700;white-space:nowrap}.parte-fila{display:grid;grid-template-columns:minmax(0,1fr) 88px auto;gap:var(--space-2);align-items:center}.parte-fila select,.parte-fila input{width:100%;height:44px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;font-size:16px}.parte-fila select:focus,.parte-fila input:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.parte-horas{text-align:right;font-variant-numeric:tabular-nums}.parte-trabajador>.link-button{justify-self:start}@media(max-width:767px){.parte-filtros{grid-template-columns:minmax(0,1fr)}}.parte-resumen,.parte-resumen ul,.parte-historial{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}.parte-resumen>li,.parte-historial>li{padding:var(--space-2) 0;border-bottom:1px solid var(--color-border)}.parte-resumen ul{gap:var(--space-1);margin-top:var(--space-1)}.parte-resumen ul li,.parte-historial-fila{display:flex;justify-content:space-between;gap:var(--space-3)}.parte-resumen .num,.parte-historial .num{white-space:nowrap;font-variant-numeric:tabular-nums}.parte-historial>li[data-vigente=false]{color:var(--color-muted)}.tabla-comparacion th[scope=row]{min-width:180px;text-align:left;text-transform:none;letter-spacing:normal;font-size:inherit;font-weight:600;color:inherit}.tabla-comparacion tr[data-destacada]{background:var(--color-danger-soft)}.tabla-comparacion tfoot th,.tabla-comparacion tfoot td{border-top:2px solid var(--color-border);font-weight:700}.texto-ok{color:var(--color-success)}.horas-obra{flex:1 1 240px;margin:0}.tabla-horas tr[data-sobre-jornada]{background:var(--color-warning-soft)}.lre-input{width:72px;height:40px;padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;font-size:16px}.lista-faltantes{margin:0;padding-left:var(--space-4)}.lista-faltantes li+li{margin-top:var(--space-1)}.finiquito-montos .parte-fila{grid-template-columns:minmax(0,1fr) 140px auto}.finiquito-total{display:flex;justify-content:space-between;margin:0;padding-top:var(--space-2);border-top:2px solid var(--color-border);font-size:18px}.mis-documentos-finiquito{padding-top:var(--space-3);border-top:1px solid var(--color-border)}.enlaces-documentos{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3)}.sugerencias-ventas{display:grid;gap:var(--space-2);margin:var(--space-2) 0 0;padding:0;list-style:none}.sugerencias-ventas li{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.gantt{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}.gantt-fila{display:grid;grid-template-columns:minmax(180px,1fr) minmax(0,2fr);gap:var(--space-3);align-items:center;padding-block:var(--space-2);border-bottom:1px solid var(--color-border)}.gantt-partida{display:grid;gap:var(--space-1);justify-items:start;min-width:0}.gantt-pista{position:relative;height:24px;border-radius:var(--radius-sm);background:var(--color-bg);box-shadow:inset 0 0 0 1px var(--color-border)}.gantt-barra{position:absolute;top:4px;bottom:4px;min-width:4px;overflow:hidden;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--color-primary) 35%,#ffffff);box-shadow:inset 0 0 0 1px var(--color-primary)}.gantt-barra span{display:block;height:100%;background:var(--color-primary)}.gantt-editor{display:grid;grid-column:1 / -1;gap:var(--space-2);justify-items:start}@media(max-width:767px){.gantt-fila{grid-template-columns:minmax(0,1fr)}}.desplegable-ancla{position:relative}.desplegable{position:absolute;top:calc(100% + var(--space-2));right:0;z-index:45;display:grid;width:max-content;min-width:240px;max-width:min(380px,calc(100vw - 2 * var(--space-4)));padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-pop);color:var(--color-text);font-size:15px;text-align:left;transform-origin:top right;opacity:0;transform:translateY(-4px) scale(.98);visibility:hidden;pointer-events:none;transition:opacity var(--dur-out) var(--ease-out),transform var(--dur-out) var(--ease-out),visibility 0s linear var(--dur-out)}.desplegable[data-open]{opacity:1;transform:none;visibility:visible;pointer-events:auto;transition:opacity var(--dur-in) var(--ease-in),transform var(--dur-in) var(--ease-in)}.desplegable:focus{outline:none}.hoja-cabecera,.hoja-fondo{display:none}.hoja-cabecera.visible{display:flex}.hoja-cabecera{align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-1) var(--space-1) var(--space-2) var(--space-2)}.hoja-cabecera strong{font-size:16px}.desplegable-lista{display:grid;gap:2px;margin:0;padding:0;list-style:none}.desplegable-item{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:var(--hit);padding:0 var(--space-3);border:0;border-radius:var(--radius-sm);background:none;color:var(--color-text);font:inherit;font-weight:600;text-align:left;text-decoration:none;cursor:pointer}.desplegable-item .icon{color:var(--color-muted)}.desplegable-item:hover,.desplegable-item.active{background:var(--color-primary-soft);color:var(--color-primary)}.desplegable-item:disabled{color:var(--color-muted);cursor:not-allowed}.desplegable-item.peligro,.desplegable-item.peligro .icon{color:var(--color-danger)}.desplegable-item.peligro:hover{background:var(--color-danger-soft)}.desplegable-item.separado{margin-top:var(--space-1);border-top:1px solid var(--color-border);border-radius:0 0 var(--radius-sm) var(--radius-sm)}.desplegable-persona{display:grid;padding:var(--space-2) var(--space-3) var(--space-3);margin-bottom:var(--space-1);border-bottom:1px solid var(--color-border)}.sidebar-footer{display:none}.sidebar-cuenta{display:grid;gap:2px}.panel-notificaciones{width:min(400px,calc(100vw - 2 * var(--space-4)));max-width:none;padding:0;overflow:hidden}.panel-notificaciones .hoja-cabecera{padding:var(--space-3) var(--space-2) var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border)}.panel-notificaciones .hoja-cabecera strong{margin-right:auto}.panel-notificaciones .cerrar-hoja{display:none}.panel-filtros{display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-4) var(--space-2)}.panel-cuerpo{max-height:min(60vh,460px);overflow-y:auto;overscroll-behavior:contain}.panel-estado{display:grid;justify-items:start;gap:var(--space-3);margin:0;padding:var(--space-4)}.panel-lista{margin:0;padding:0;list-style:none}.panel-aviso{position:relative;display:grid;grid-template-columns:10px minmax(0,1fr);gap:var(--space-1) var(--space-3);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border)}.panel-aviso:hover{background:var(--color-bg)}.panel-aviso .notificacion-punto{width:8px;height:8px;margin-top:7px;border-radius:50%;background:currentColor}.panel-aviso[data-leida] .notificacion-punto{visibility:hidden}.panel-aviso-texto{display:grid;gap:2px;min-width:0}.panel-aviso>.link-button{grid-column:2;justify-self:start;min-height:32px}.panel-aviso-abrir{padding:0;border:0;background:none;color:var(--color-text);font:inherit;font-weight:700;text-align:left;cursor:pointer}.panel-aviso-abrir:after{content:"";position:absolute;inset:0}.panel-aviso[data-leida] .panel-aviso-abrir,.panel-aviso[data-leida] strong{font-weight:400}.panel-pie{display:grid;padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border)}.panel-pie .btn{width:100%}@media(max-width:767px){.sidebar-footer{display:grid}.hoja-fondo{position:fixed;inset:0;z-index:44;display:block;background:#12171273;opacity:0;pointer-events:none;transition:opacity var(--dur-out) ease-in}.hoja-fondo[data-open]{opacity:1;pointer-events:auto;transition:opacity var(--dur-in) ease-out}.hoja-cabecera{display:flex}.desplegable{position:fixed;inset:auto 0 0;width:auto;min-width:0;max-width:none;max-height:85dvh;overflow-y:auto;padding:var(--space-3) var(--space-3) calc(var(--space-4) + env(safe-area-inset-bottom));border:0;border-radius:18px 18px 0 0;font-size:16px;opacity:1;transform:translateY(100%);transition:transform var(--dur-out) var(--ease-out),visibility 0s linear var(--dur-out)}.desplegable[data-open]{transform:none;transition:transform .26s cubic-bezier(.16,1,.3,1)}.panel-notificaciones{inset:env(safe-area-inset-top) 0 0 0;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;max-height:none;padding:0 0 env(safe-area-inset-bottom);overflow:hidden}.panel-notificaciones .cerrar-hoja{display:grid}.panel-cuerpo{max-height:none}.accion-fija{position:sticky;bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom) + var(--space-2));z-index:5;display:grid;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:0 -4px 16px #141e1414}.accion-fija .btn{width:100%;min-height:48px}.page-actions .desplegable-ancla{flex:1 1 auto}.page-actions .desplegable-ancla>.btn{width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}.btn-spinner{animation-duration:1.6s!important;animation-iteration-count:infinite!important}.desplegable,.desplegable[data-open]{transform:none!important}.desplegable{opacity:0!important;transition:opacity .1s linear,visibility 0s linear .1s!important}.desplegable[data-open]{opacity:1!important;transition:opacity .1s linear!important}.btn:active:not(:disabled){transform:none}}@media(prefers-reduced-motion:reduce)and (max-width:767px){.sidebar,.app-shell[data-menu-open] .sidebar{transform:none!important}.sidebar{opacity:0;transition:opacity .1s linear,visibility 0s linear .1s!important}.app-shell[data-menu-open] .sidebar{opacity:1;transition:opacity .1s linear!important}}.obra-pestanas{display:flex;align-items:flex-end;gap:var(--space-1);margin-bottom:var(--space-5);border-bottom:1px solid var(--color-border)}.obra-pestanas .seccion-pestanas{flex:0 1 auto;min-width:0;margin-bottom:-1px;border-bottom:0}.obra-pestanas-mas{flex:none;margin-bottom:-1px}.obra-pestanas-mas .seccion-pestana .icon{width:16px;height:16px}.plegable-titulo{margin:0}.plegable-titulo button{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;min-height:var(--hit);padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.plegable-flecha{color:var(--color-muted);transition:transform var(--dur-in) var(--ease-in)}.plegable-titulo button[aria-expanded=true] .plegable-flecha{transform:rotate(180deg)}.plegable-cuerpo{overflow:hidden}.plegable-contenido{padding-top:var(--space-3)}.lista-filas{display:grid;margin:0;padding:0;list-style:none}.fila{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:56px;padding:var(--space-2) 0;border-top:1px solid var(--color-border)}.fila-texto{display:grid;gap:2px;min-width:0}.fila a.fila-texto{color:inherit;font-weight:inherit;text-decoration:none}.ver-todos{justify-self:start;min-height:var(--hit)}.encargos-resumen{display:grid;gap:var(--space-3)}.encargos-resumen .encargos-header{margin:0}@media(max-width:767px){.tabla-tarjetas thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.tabla-tarjetas,.tabla-tarjetas tbody,.tabla-tarjetas tr,.tabla-tarjetas td{display:block;width:100%}.tabla-tarjetas tr{display:grid;gap:var(--space-1);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.tabla-tarjetas td{padding:0;border:0;text-align:left}.tabla-tarjetas td.num{text-align:left}.tabla-tarjetas td[data-label]{display:flex;justify-content:space-between;gap:var(--space-3)}.tabla-tarjetas td[data-label]:before{content:attr(data-label);color:var(--color-muted);font-size:14px}.tabla-tarjetas td.acciones{display:flex;flex-wrap:wrap;gap:var(--space-2);padding-top:var(--space-2)}.tabla-tarjetas td.acciones .link-button{min-height:var(--hit);padding:0 var(--space-3);border:1.5px solid var(--color-border-strong);border-radius:var(--radius-sm)}.obra-pestanas{margin-inline:calc(var(--space-4) * -1);padding-inline:var(--space-2)}.encargos-resumen .encargos-header .btn{width:100%}}.inicio-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:var(--space-4);align-items:start;margin-bottom:var(--space-4)}.inicio-principal{min-width:0}.accesos{display:grid;margin:0;padding:0;list-style:none}.acceso{display:flex;align-items:center;gap:var(--space-3);min-height:52px;padding:var(--space-2) var(--space-2);border-top:1px solid var(--color-border);color:var(--color-text);font-weight:400;text-decoration:none}.acceso>span{flex:1;min-width:0}.acceso .icon:first-child{color:var(--color-primary)}.acceso-flecha{color:var(--color-muted);transition:transform var(--dur-out) ease-out}.acceso:hover{background:var(--color-bg)}.acceso:hover .acceso-flecha{transform:translate(3px)}.fila-acciones{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2)}@media(max-width:900px){.inicio-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:767px){.fila-obra{flex-direction:column;align-items:stretch}.fila-acciones{display:grid;grid-template-columns:1fr 1fr}.fila-acciones .btn{width:100%}}.aviso-accion{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}.alert[role=status],.alert[role=alert]{animation:aparecer var(--dur-in) var(--ease-in)}@keyframes aparecer{0%{opacity:0;transform:translateY(-4px)}}.notificacion-acciones .link-button{min-height:var(--hit);padding:0 var(--space-2)}table .link-button,.usuarios-table .link-button{min-height:var(--hit)}@media(max-width:767px){.ficha{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}}.topbar:has(.desplegable[data-open]),.bottom-nav:has(.desplegable[data-open]){z-index:50}@media(max-width:767px){.seccion-pestanas{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent)}}.acciones-fila{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-2)}.acciones-fila .btn{white-space:nowrap}td>.link-button+.link-button{margin-left:var(--space-4)}@media(max-width:767px){.acciones-fila{justify-content:flex-start;padding-top:var(--space-2)}}.seccion-pestana{position:relative}.seccion-pestana.active{border-bottom-color:transparent}.pestana-raya{position:absolute;right:0;bottom:0;left:0;height:3px;border-radius:3px 3px 0 0;background:var(--color-primary)}.avisos{position:fixed;right:0;bottom:var(--space-5);left:0;z-index:55;display:grid;justify-items:center;padding:0 var(--space-4);pointer-events:none}.aviso-guardado{display:flex;align-items:center;gap:var(--space-2);max-width:min(440px,100%);margin:0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-text);color:#fff;font-weight:700;box-shadow:var(--shadow-pop)}.aviso-guardado .icon{color:#9fd7b7}@media(max-width:767px){.avisos{bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom) + var(--space-3))}.aviso-guardado{width:100%}}.captura-partes{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--space-3);width:100%;margin:0;padding:0;list-style:none}.captura-parte{display:grid;gap:var(--space-1);justify-items:center}.captura-parte img{max-height:160px}.lineas-editor ol{margin:0;padding:0;list-style:none}.linea-producto{display:grid;grid-template-columns:minmax(0,3fr) repeat(4,minmax(0,1fr)) minmax(0,2fr) auto;gap:var(--space-2);align-items:end;padding:var(--space-2) 0;border-bottom:1px solid var(--color-border)}.linea-producto label{display:grid;gap:2px;min-width:0}.linea-producto input,.linea-producto select{width:100%;min-width:0}.linea-producto[data-corregida]{background:var(--color-primary-soft)}.lineas-revision{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:var(--space-4);align-items:start}.lineas-documento{position:sticky;top:var(--space-4);display:grid;gap:var(--space-2)}.lineas-documento iframe,.lineas-documento img{width:100%;height:70vh;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;object-fit:contain}.tabla-comparacion td[data-estado=OK]{color:var(--color-success, #2e7d4f)}.tabla-comparacion td[data-estado=MAS],.tabla-comparacion td[data-estado=PRECIO],.tabla-comparacion td[data-estado=NO_ENCARGADO]{color:var(--color-warning-strong, #9a6200)}.tabla-comparacion td[data-estado=MENOS],.tabla-comparacion td[data-estado=NO_COMPRADO]{color:var(--color-danger, #b3261e)}@media(max-width:760px){.linea-producto{grid-template-columns:1fr 1fr}.linea-producto label:first-child{grid-column:1 / -1}.lineas-revision{grid-template-columns:1fr}.lineas-documento{position:static}.lineas-documento iframe,.lineas-documento img{height:50vh}}.productos-aprobar .producto-aprobar,.producto-aprobar{display:grid;gap:var(--space-2, .5rem);padding-block:var(--space-2, .5rem);border-top:1px solid var(--color-border, #e5e5e5)}.producto-partida{display:grid;grid-template-columns:minmax(0,1fr) 7rem auto;gap:var(--space-2, .5rem);align-items:end}.opciones-en-linea{display:flex;flex-wrap:wrap;gap:var(--space-3, .75rem)}.tabla-inventario tr[data-falta] td:nth-child(6){color:var(--color-danger, #b42318)}.material-fila{display:flex;justify-content:space-between;gap:var(--space-2, .5rem);flex-wrap:wrap}.material-fila[data-inactivo]{opacity:.6}.material-edicion{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) 6rem auto auto;gap:var(--space-2, .5rem);align-items:center;width:100%}@media(max-width:640px){.producto-partida,.material-edicion{grid-template-columns:minmax(0,1fr)}}.lista-simple{list-style:none;margin:0;padding:0}.lista-simple>li{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;padding-block:.5rem;border-top:1px solid var(--color-border)}.zona-archivo{display:grid;justify-items:center;gap:.5rem;padding:1.5rem 1rem;border:2px dashed var(--color-border-strong);border-radius:12px;text-align:center;transition:background-color .15s,border-color .15s}.zona-archivo[data-encima]{border-color:var(--color-primary, #2f6b4f);background:var(--color-primary-soft, #e7f1ec)}.zona-archivo[data-disabled]{opacity:.6}.zona-archivo p{margin:0}[data-encima]>td,li.fila[data-encima]{background:var(--color-primary-soft, #e7f1ec);outline:2px dashed var(--color-primary, #2f6b4f)}.tabla-comparacion tr[data-estado=NO_COMPRADO] td:nth-child(4),.tabla-comparacion tr[data-estado=MENOS] td:nth-child(4){color:var(--color-warning, #8a5a00)}.lista-materiales{min-width:0;margin:0;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.lista-materiales legend{padding:0 var(--space-2);font-size:17px;font-weight:700}.buscador-catalogo{position:relative;display:grid;gap:var(--space-2)}.buscador-campo{position:relative}.buscador-campo>.icon{position:absolute;top:50%;left:var(--space-3);color:var(--color-muted);transform:translateY(-50%);pointer-events:none}.buscador-campo input{width:100%;height:48px;padding:0 var(--space-3) 0 calc(var(--space-3) * 2 + 20px);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;font-size:16px}.buscador-campo input:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.buscador-categorias{gap:var(--space-1) var(--space-2)}.buscador-categorias .chip{min-height:34px}.buscador-resultados{position:absolute;z-index:20;top:calc(100% + 4px);right:0;left:0;max-height:340px;margin:0;padding:var(--space-1);overflow-y:auto;list-style:none;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-pop)}.buscador-opcion{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:var(--hit);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer}.buscador-opcion[data-activa]{background:var(--color-primary-soft)}.buscador-opcion .icon{color:var(--color-primary)}.buscador-vacio{padding:var(--space-2) var(--space-3)}.lista-materiales-filas{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}.material-tarjeta{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-2) var(--space-3);align-items:center;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg)}.material-tarjeta input{height:40px;min-width:0;padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;font-size:16px}.material-tarjeta-nombre{display:flex;align-items:center;gap:var(--space-2);min-width:0}.material-tarjeta-nombre input{flex:1;font-weight:700}.material-tarjeta-datos{display:grid;grid-template-columns:auto 96px 150px auto;justify-content:start;gap:var(--space-2);align-items:center}.cantidad-stepper{display:flex;align-items:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.cantidad-stepper .icon-button{width:36px;height:38px}.cantidad-stepper input{width:56px;height:38px;border:0;text-align:center}.icon-button.peligro:hover{background:var(--color-danger-soft);color:var(--color-danger)}.lista-materiales-vacia{margin:0;padding:var(--space-4);border:1px dashed var(--color-border-strong);border-radius:var(--radius-sm);text-align:center}.lista-materiales-resumen{margin:0;color:var(--color-muted)}.encargo-productos-cabecera{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2)}.encargo-resumen{margin:0;color:var(--color-muted)}.encargo-resumen strong{color:var(--color-primary-strong);font-size:18px}.progreso{display:block;height:6px;margin-top:var(--space-1);overflow:hidden;border-radius:999px;background:var(--color-border)}.progreso>span{display:block;height:100%;border-radius:inherit;background:var(--color-primary);transition:width var(--dur-in) var(--ease-in)}@media(max-width:720px){.material-tarjeta{grid-template-columns:minmax(0,1fr)}.material-tarjeta-datos{grid-template-columns:auto minmax(0,1fr) auto}.material-tarjeta-datos .material-precio{grid-column:1 / -1;grid-row:2}}.tabla-comparacion th{text-align:left}.tabla-comparacion th.num{text-align:right}.tabla-comparacion .progreso{min-width:120px}.tabla-comparacion th.num,.tabla-comparacion td.num{padding-left:var(--space-4)}.opcion-compacta{display:flex;align-items:center;gap:var(--space-2);min-height:0;padding:var(--space-1) 0}.buscador-alias{color:var(--color-info)}.auth-card-ancha{max-width:560px}.auth-card fieldset{min-width:0;margin:0;padding:0;border:0}.auth-card legend{margin-bottom:var(--space-2);font-weight:700}
