:root{--color-bg:#f4f5f8;--color-bg-deep:#eceef3;--color-surface:#fff;--color-surface-muted:#f2f3f6;--color-surface-glass:#ffffffb8;--color-ink:#14171c;--color-ink-soft:#5c6470;--color-border:#e4e6ec;--color-border-input:#d3d7e0;--color-navy:#1e3a5f;--color-navy-deep:#16293f;--color-accent:#2f5d8c;--color-accent-strong:#244a72;--color-accent-bright:#3d76ad;--color-brand-soft:#eaf1f9;--color-brand-tint:#f1f5fa;--color-primary-weak:#2f5d8c4d;--color-primary:#1b2330;--color-primary-strong:#0f1620;--color-info:var(--color-accent);--color-review:#8a909c;--color-danger:#d6443a;--color-danger-soft:#fdeeed;--color-success:#1f9255;--color-success-soft:#e9f6ee;--shadow-xs:0 1px 2px #141c2e0d;--shadow-soft:0 1px 2px #141c2e0d, 0 4px 12px #141c2e0f;--shadow-hover:0 2px 6px #141c2e12, 0 16px 36px #141c2e21;--shadow-raised:0 8px 24px #141c2e1a, 0 24px 60px #141c2e1f;--shadow-brand:0 8px 22px #1e3a5f38;--ring-focus:0 0 0 3px #2f5d8c47;--sidebar-w:244px;--content-max:1120px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.4, .64, 1);--ease-std:cubic-bezier(.4, 0, .2, 1);--t-fast:.13s var(--ease-std);--t:.22s var(--ease-out);--t-slow:.38s var(--ease-out);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--radius-1:7px;--radius-2:11px;--radius-3:14px;--radius-4:18px;--radius-pill:999px;--font-main:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-main);color:var(--color-ink);letter-spacing:-.011em;background-color:var(--color-bg);background-image:radial-gradient(1100px 620px at 78% -8%, #3d76ad1a, transparent 60%), radial-gradient(900px 540px at 0% 108%, #1e3a5f12, transparent 58%), linear-gradient(180deg, #fbfcfe 0%, var(--color-bg) 46%, var(--color-bg-deep) 100%);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-attachment:fixed}button{cursor:pointer;font-family:inherit}.app-shell{flex-direction:column;max-width:520px;min-height:100dvh;margin:0 auto;display:flex}.app-body{flex-direction:column;flex:1;min-width:0;display:flex}.app-topbar{z-index:10;justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface-glass);border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:saturate(160%)blur(18px);display:flex;position:sticky;top:0}.app-brand{filter:drop-shadow(0 6px 12px #141c2e2e);display:block}.app-main{padding:var(--space-4) var(--space-4) calc(112px + var(--space-4));flex:1}.app-main-inner{animation:screen-in .42s var(--ease-out) both}.app-main-inner>.screen>*{animation:rise-in .46s var(--ease-out) both}.app-main-inner>.screen>:first-child{animation-delay:20ms}.app-main-inner>.screen>:nth-child(2){animation-delay:70ms}.app-main-inner>.screen>:nth-child(3){animation-delay:.12s}.app-main-inner>.screen>:nth-child(4){animation-delay:.17s}.app-main-inner>.screen>:nth-child(5){animation-delay:.22s}.app-main-inner>.screen>:nth-child(n+6){animation-delay:.26s}.sidenav{display:none}@keyframes screen-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.placeholder{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-3);padding:var(--space-6);box-shadow:var(--shadow-soft)}.placeholder-fase{color:var(--color-accent);background:var(--color-brand-soft);border-radius:var(--radius-pill);margin-bottom:var(--space-3);padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.placeholder-titulo{margin:0 0 var(--space-2);font-size:20px}.placeholder-desc{margin:0 0 var(--space-3);color:var(--color-ink-soft)}.placeholder-nota{color:var(--color-ink-soft);margin:0;font-size:13px}.placeholder-nota code{background:var(--color-surface-muted);border-radius:var(--radius-1);padding:1px 5px}.app-shell-centro{justify-content:center;align-items:center}.auth-shell{background:radial-gradient(1200px 760px at 50% -12%,#3d76ad29,#0000 62%),linear-gradient(#fbfcfe 0%,#eef1f6 56%,#e6e9f0 100%);min-height:100dvh;position:relative;overflow:hidden}.auth-shell:before,.auth-shell:after{content:"";filter:blur(60px);pointer-events:none;z-index:0;border-radius:50%;position:absolute}.auth-shell:before{background:radial-gradient(circle,#3d76ad57,#0000 68%);width:460px;height:460px;animation:13s ease-in-out infinite orb-float;top:-140px;right:-120px}.auth-shell:after{background:radial-gradient(circle,#1e3a5f42,#0000 68%);width:420px;height:420px;animation:16s ease-in-out infinite reverse orb-float;bottom:-150px;left:-130px}@keyframes orb-float{0%,to{transform:translate(0)scale(1)}50%{transform:translate(26px,30px)scale(1.08)}}.app-centro{justify-content:center;align-items:center;min-height:100dvh;display:flex}.tab-bar{z-index:10;background:var(--color-surface-glass);border-top:1px solid var(--color-border);-webkit-backdrop-filter:saturate(160%)blur(18px);grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:sticky;bottom:0}.tab-item{padding:var(--space-2) 0 calc(var(--space-2) + env(safe-area-inset-bottom,0px));color:var(--color-ink-soft);white-space:nowrap;min-width:0;transition:color var(--t-fast), transform var(--t-fast);background:0 0;border:0;flex-direction:column;align-items:center;gap:3px;font-size:11px;font-weight:600;display:flex}.tab-item:active{transform:scale(.9)}.tab-item.is-active{color:var(--color-accent)}.tab-item.is-active svg{animation:pop .34s var(--ease-spring) both}@keyframes pop{0%{transform:scale(.7)}60%{transform:scale(1.16)}to{transform:scale(1)}}.brandmark{display:block;overflow:visible}.brandmark-app{filter:drop-shadow(0 6px 12px #141c2e2e)}.brandmark-app .brandmark-body{animation:mark-in .6s var(--ease-out) both}.brandmark-login{filter:drop-shadow(0 14px 26px #141c2e42);animation:5.6s ease-in-out 1.1s infinite logo-breathe}.brandmark-login .brandmark-halo{transform-origin:64px 60px;animation:4.6s ease-in-out infinite halo-breathe}.brandmark-login .brandmark-body,.brandmark-login .brandmark-grain{opacity:0;transform-box:fill-box;transform-origin:50%;animation:mark-reveal .9s var(--ease-out) .15s both}.brandmark-login .brandmark-grain{animation-delay:.28s}.brandmark-login .brandmark-sheen{opacity:0;transform-box:fill-box;transform-origin:50%;animation:mark-sheen 1.1s var(--ease-out) .5s both}@keyframes mark-in{0%{opacity:0;transform:translateY(-4px)scale(.92)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes mark-reveal{0%{opacity:0;transform:scale(.8)}60%{opacity:1}to{opacity:1;transform:scale(1)}}@keyframes mark-sheen{0%{opacity:0;transform:translate(-90%)skew(-12deg)}35%{opacity:.55}to{opacity:0;transform:translate(90%)skew(-12deg)}}@keyframes halo-breathe{0%,to{opacity:.6;transform:scale(.92)}50%{opacity:1;transform:scale(1.06)}}@keyframes logo-breathe{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@media (width>=960px){.app-shell{grid-template-columns:var(--sidebar-w) 1fr;max-width:none;min-height:100dvh;display:grid}.tab-bar{display:none}.sidenav{border-right:1px solid var(--color-border);-webkit-backdrop-filter:saturate(150%)blur(14px);background:linear-gradient(#ffffffeb,#f8fafddb);flex-direction:column;height:100dvh;display:flex;position:sticky;top:0;box-shadow:inset 1px 0 #fff9}.sidenav-brand{border-bottom:1px solid var(--color-border);align-items:center;gap:11px;padding:20px 18px;display:flex}.sidenav-mark{transition:transform var(--t);flex-shrink:0}.sidenav-brand:hover .sidenav-mark{transform:translateY(-2px)rotate(-2deg)}.sidenav-wordmark{letter-spacing:.14em;color:var(--color-navy);font-size:19px;font-weight:800}.sidenav-nav{flex-direction:column;flex:1;gap:3px;padding:14px 12px;display:flex}.sidenav-item{border-radius:var(--radius-2);color:var(--color-ink-soft);text-align:left;transition:background var(--t-fast), color var(--t-fast), transform var(--t-fast);background:0 0;border:0;align-items:center;gap:11px;padding:10px 14px;font-size:14px;font-weight:500;display:flex;position:relative}.sidenav-item svg{opacity:.8;transition:transform var(--t), opacity var(--t-fast);flex-shrink:0}.sidenav-item:hover{background:var(--color-brand-tint);color:var(--color-ink);transform:translate(2px)}.sidenav-item:hover svg{opacity:1;transform:scale(1.08)}.sidenav-item.is-active{background:var(--color-brand-soft);color:var(--color-accent-strong);font-weight:650}.sidenav-item.is-active:before{content:"";border-radius:var(--radius-pill);background:linear-gradient(180deg, var(--color-accent-bright), var(--color-accent));width:3px;height:18px;margin-top:-9px;position:absolute;top:50%;left:4px}.sidenav-item.is-active svg{opacity:1;color:var(--color-accent)}.sidenav-foot{justify-content:space-between;align-items:center;gap:var(--space-2);border-top:1px solid var(--color-border);padding:14px 18px;display:flex}.sidenav-user{flex-direction:column;min-width:0;display:flex}.sidenav-user-name{color:var(--color-ink);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.sidenav-user-org{color:var(--color-ink-soft);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.sidenav-logout{border:1px solid var(--color-border-input);background:var(--color-surface);border-radius:var(--radius-2);color:var(--color-ink-soft);transition:background var(--t-fast), color var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast);align-items:center;gap:6px;padding:7px 11px;font-size:12px;font-weight:600;display:inline-flex}.sidenav-logout:hover{background:var(--color-surface-muted);color:var(--color-ink);border-color:var(--color-ink-soft);box-shadow:var(--shadow-xs)}.app-topbar{display:none}.app-main{padding:var(--space-8) var(--space-6);overflow-x:hidden}.app-main-inner{max-width:var(--content-max);margin:0 auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.app-main-inner,.app-main-inner>.screen>*,.tab-item.is-active svg,.brandmark-login,.brandmark-login .brandmark-halo,.brandmark-login .brandmark-body,.brandmark-login .brandmark-grain,.brandmark-app .brandmark-body,.auth-shell:before,.auth-shell:after{opacity:1!important;animation:none!important;transform:none!important}.brandmark-login .brandmark-sheen{display:none}}.screen{gap:var(--space-4);flex-direction:column;display:flex}.screen-titulo{letter-spacing:-.02em;margin:0;font-size:23px;font-weight:750}.screen-subtitulo{margin:0 0 var(--space-3);letter-spacing:-.01em;font-size:16px;font-weight:650}.screen-conteo{color:var(--color-ink-soft);margin:0;font-size:13px}.card{gap:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-3);padding:var(--space-5);box-shadow:var(--shadow-soft);transition:transform var(--t), box-shadow var(--t), border-color var(--t);background:linear-gradient(#fff 0%,#fcfdff 100%);flex-direction:column;display:flex}@media (hover:hover){.card:hover{box-shadow:var(--shadow-hover);border-color:#d8dce6;transform:translateY(-3px)}.card-muted:hover{box-shadow:none;border-color:var(--color-border);transform:none}}.card-muted{background:var(--color-surface-muted);box-shadow:none}.card-ok{background:linear-gradient(180deg, #fff 0%, var(--color-success-soft) 220%);border-color:#1f925552}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:12px var(--space-4);border-radius:var(--radius-2);letter-spacing:-.01em;width:100%;transition:transform var(--t-fast), box-shadow var(--t-fast), filter var(--t-fast), background var(--t-fast), border-color var(--t-fast), opacity var(--t-fast);border:1px solid #0000;font-size:15px;font-weight:650;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{box-shadow:var(--ring-focus);outline:none}.btn:not(:disabled):active{transform:translateY(1px)scale(.985)}@media (hover:hover){.btn-primary:not(:disabled):hover,.btn-success:not(:disabled):hover{background:var(--color-primary-strong);transform:translateY(-1px);box-shadow:0 10px 24px #141c2e38}.btn-secondary:not(:disabled):hover{background:var(--color-surface-muted);border-color:var(--color-border-input);box-shadow:var(--shadow-xs)}.btn-danger:not(:disabled):hover{background:var(--color-danger-soft);border-color:#d6443a52}.btn-ghost:not(:disabled):hover{color:var(--color-accent)}}.btn-primary{background:linear-gradient(180deg, #232c3a 0%, var(--color-primary) 100%);color:#fff;box-shadow:var(--shadow-xs)}.btn-secondary{background:var(--color-surface);color:var(--color-ink);border-color:var(--color-border)}.btn-success{background:linear-gradient(180deg, #232c3a 0%, var(--color-primary) 100%);color:#fff;box-shadow:var(--shadow-xs)}.btn-danger{color:var(--color-danger);background:#fff;border-color:#d7001538}.btn-ghost{color:var(--color-ink-soft);width:auto;padding:8px var(--space-3);background:0 0}.badge{border-radius:var(--radius-pill);white-space:nowrap;align-items:center;padding:2px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-info,.badge-accent{background:var(--color-brand-soft);color:var(--color-accent-strong)}.badge-success{background:var(--color-success-soft);color:var(--color-success)}.badge-danger{color:var(--color-danger);background:#d6443a1f}.badge-review{color:var(--color-review);background:#8a909c29}.badge-muted{background:var(--color-surface-muted);color:var(--color-ink-soft)}.loader{align-items:center;gap:var(--space-3);color:var(--color-ink-soft);padding:var(--space-5);justify-content:center;display:flex}.loader-spinner{border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-banner{justify-content:space-between;align-items:center;gap:var(--space-3);color:var(--color-danger);border-radius:var(--radius-2);padding:var(--space-3);background:#b4231814;border:1px solid #b4231840;font-size:14px;display:flex}.error-banner-retry{color:var(--color-danger);background:0 0;border:0;font-weight:600;text-decoration:underline}.empty-state{align-items:center;gap:var(--space-3);text-align:center;padding:var(--space-8) var(--space-4);color:var(--color-ink-soft);flex-direction:column;display:flex}.empty-state-icon{font-size:32px}.empty-state-titulo{color:var(--color-ink);margin:0;font-size:18px}.empty-state-desc{max-width:32ch;margin:0}.field{flex-direction:column;gap:6px;display:flex}.field-label{color:var(--color-ink-soft);font-size:13px;font-weight:600}.field-input{font:inherit;color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-border-input);border-radius:var(--radius-2);padding:11px var(--space-3);width:100%;transition:border-color var(--t-fast), box-shadow var(--t-fast)}.field-input:focus{border-color:var(--color-accent);box-shadow:var(--ring-focus);outline:none}.field-textarea{resize:vertical}.field-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%234b5563' d='M6 8 0 0h12z'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:34px}.field-hint{color:var(--color-ink-soft);font-size:12px}.field-error{color:var(--color-danger);font-size:12px}.field-row{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.resumen-grid{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.cifra{background:linear-gradient(180deg, #fff 0%, var(--color-surface-muted) 130%);border:1px solid var(--color-border);border-radius:var(--radius-3);padding:var(--space-4);box-shadow:var(--shadow-xs);flex-direction:column;gap:3px;display:flex}.cifra-destacada{background:linear-gradient(165deg, var(--color-brand-soft) 0%, #fff 130%);border-color:var(--color-primary-weak)}.cifra-destacada .cifra-valor{color:var(--color-accent-strong)}.cifra-danger{background:var(--color-danger-soft);border-left-color:var(--color-danger)}.cifra-danger .cifra-valor{color:var(--color-danger)}.cifra-valor{font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}.cifra-etiqueta{color:var(--color-ink-soft);font-size:12px}.resumen-pie{color:var(--color-ink-soft);margin:0;font-size:13px}.resumen-texto{white-space:pre-wrap;background:var(--color-surface-muted);border-radius:var(--radius-2);padding:var(--space-3);margin:0;font-family:inherit;font-size:14px}.parte-top{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.parte-ok{color:var(--color-success);text-align:center;margin:0;font-size:14px}.seg-control{background:var(--color-surface-muted);border-radius:var(--radius-pill);grid-auto-columns:1fr;grid-auto-flow:column;padding:3px;display:grid}.seg-item{border-radius:var(--radius-pill);color:var(--color-ink-soft);background:0 0;border:0;padding:8px;font-size:14px;font-weight:600}.seg-item.is-active{background:var(--color-surface);color:var(--color-ink);box-shadow:var(--shadow-soft)}.mov-lista{gap:var(--space-3);flex-direction:column;display:flex}.mov-card{text-align:left;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-3);width:100%;padding:var(--space-4);box-shadow:var(--shadow-soft);flex-direction:column;gap:6px;display:flex}.mov-card-top,.mov-card-bottom{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.mov-card-fecha{color:var(--color-ink-soft);font-size:12px}.mov-card-desc{margin:0;font-size:15px}.mov-card-meta{gap:var(--space-2);color:var(--color-ink-soft);flex-wrap:wrap;align-items:baseline;font-size:13px;display:flex}.mov-card-valor{color:var(--color-ink);font-size:16px}.mov-card-obra{color:var(--color-ink-soft);font-size:13px}.mov-card-nota{color:var(--color-ink-soft);margin:0;font-size:12px;font-style:italic}.hoy-feedback{margin:0;font-size:14px}.hoy-creados{padding-left:var(--space-4);flex-direction:column;gap:4px;margin:0;font-size:14px;display:flex}.detalle-header{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.detalle-volver{color:var(--color-accent);background:0 0;border:0;padding:0;font-size:14px;font-weight:650}.detalle-etiqueta{text-transform:uppercase;letter-spacing:.04em;color:var(--color-ink-soft);font-size:12px;font-weight:600}.detalle-original{white-space:pre-wrap;margin:0;font-size:14px}.detalle-acciones{gap:var(--space-2);flex-direction:column;display:flex}.detalle-aviso{color:var(--color-danger);text-align:center;margin:0;font-size:13px}.cuenta-row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.cuenta-org{color:var(--color-ink-soft);margin:2px 0 0;font-size:13px}.obra-lista{gap:var(--space-2);flex-direction:column;display:flex}.obra-item{justify-content:space-between;align-items:center;gap:var(--space-3);text-align:left;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-2);padding:var(--space-3) var(--space-4);display:flex}.obra-item.is-active{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent), var(--shadow-soft);background:linear-gradient(180deg, var(--color-brand-tint), #fff)}.obra-item-info{flex-direction:column;gap:2px;display:flex}.obra-item-sub{color:var(--color-ink-soft);font-size:13px}.obra-item-activa{color:var(--color-accent-strong);font-size:12px;font-weight:700}.avance-lista{gap:var(--space-4);flex-direction:column;display:flex}.avance-row{padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border);flex-direction:column;gap:8px;display:flex}.avance-row:last-child{border-bottom:0;padding-bottom:0}.avance-row-top{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.avance-cap{font-weight:600}.avance-pct{color:var(--color-accent-strong);font-variant-numeric:tabular-nums;font-weight:750}.avance-bar{border-radius:var(--radius-pill);background:var(--color-surface-muted);height:8px;overflow:hidden}.avance-bar>span{background:linear-gradient(90deg, var(--color-accent), var(--color-accent-bright));border-radius:var(--radius-pill);height:100%;transition:width var(--t);transform-origin:0;animation:.7s cubic-bezier(.22,1,.36,1) both bar-grow;display:block}@keyframes bar-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.dist{align-items:center;gap:var(--space-5);flex-wrap:wrap;display:flex}.donut{flex-shrink:0;animation:.5s cubic-bezier(.34,1.56,.64,1) both pop}.donut circle{transition:stroke-dashoffset var(--t)}.donut-valor{fill:var(--color-ink);font-size:18px;font-weight:800}.donut-label{fill:var(--color-ink-soft);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.dist-legend{flex-direction:column;flex:1;gap:10px;min-width:240px;margin:0;padding:0;list-style:none;display:flex}.dist-item{align-items:center;gap:var(--space-3);font-size:14px;display:flex}.dist-dot{border-radius:3px;flex-shrink:0;width:12px;height:12px}.dist-nombre{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.dist-pct{color:var(--color-ink-soft);font-variant-numeric:tabular-nums;text-align:right;width:44px}.dist-valor{font-variant-numeric:tabular-nums;text-align:right;width:120px;font-weight:600}@media (prefers-reduced-motion:reduce){.avance-bar>span,.donut{animation:none}}.avance-row-meta{color:var(--color-ink-soft);font-variant-numeric:tabular-nums;font-size:13px}.avance-row-meta em{font-style:normal}.avance-update{gap:var(--space-2);align-items:center;display:flex}.avance-input{max-width:110px}.avance-update .btn{flex-shrink:0;width:auto}.presupuesto-head{justify-content:space-between;gap:var(--space-3);align-items:flex-start;display:flex}.presupuesto-head strong{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:18px}.presupuesto-form,.presupuesto-row-fields{gap:var(--space-3);display:grid}.presupuesto-lista{gap:var(--space-3);flex-direction:column;display:flex}.presupuesto-row{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-2);background:var(--color-surface-muted);flex-direction:column;display:flex}.presupuesto-row-meta{justify-content:space-between;align-items:center;gap:var(--space-3);color:var(--color-ink-soft);font-variant-numeric:tabular-nums;font-size:13px;display:flex}.presupuesto-actions{gap:var(--space-2);display:flex}.presupuesto-actions .btn{width:auto;padding-inline:var(--space-3)}@media (width>=720px){.presupuesto-form{grid-template-columns:.7fr 1.4fr 1fr auto;align-items:end}.presupuesto-row-fields{grid-template-columns:.7fr 1.4fr 1fr;align-items:end}}.inv-form{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.inv-form .btn{grid-column:1/-1}.inv-lista{gap:var(--space-3);flex-direction:column;display:flex}.inv-row{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-2);background:var(--color-surface);transition:border-color var(--t-fast), box-shadow var(--t-fast);border-left:3px solid #0000;flex-direction:column;gap:8px;display:flex}.inv-row.is-bajo{border-left-color:var(--color-danger);background:var(--color-danger-soft)}.inv-row-top{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.inv-nombre{font-weight:600}.inv-row-meta{align-items:baseline;gap:var(--space-3);font-size:14px;display:flex}.inv-stock{font-variant-numeric:tabular-nums;font-weight:700}.inv-min{color:var(--color-ink-soft);font-size:13px}.inv-acciones{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.inv-cant{max-width:130px}.inv-acciones .btn{flex-shrink:0;width:auto}.inv-history-btn{align-self:flex-start}.inv-history{border:1px solid var(--color-border);border-radius:var(--radius-2);background:linear-gradient(180deg, #fbfbfd 0%, var(--color-surface-muted) 100%);color:var(--color-ink-soft);flex-direction:column;gap:8px;margin-top:2px;padding:10px;font-size:13px;display:flex}.inv-history-empty{align-items:flex-start}.inv-history-title{letter-spacing:.02em;color:var(--color-ink);font-size:12px;font-weight:700}.inv-mov{border-radius:var(--radius-1);background:#ffffffb8;border:1px solid #d2d2d7b8;grid-template-columns:26px 1fr auto;align-items:center;gap:8px;padding:8px;display:grid}.inv-mov-icon{border-radius:var(--radius-pill);background:var(--color-surface-muted);width:26px;height:26px;color:var(--color-ink-soft);justify-content:center;align-items:center;display:inline-flex}.inv-mov-entrada .inv-mov-icon{color:var(--color-success);background:#248a3d1c}.inv-mov-salida .inv-mov-icon{color:var(--color-danger);background:#d7001514}.inv-mov-main{flex-direction:column;gap:2px;min-width:0;display:flex}.inv-mov-line{color:var(--color-ink);flex-wrap:wrap;gap:6px;display:flex}.inv-mov-note{color:var(--color-ink-soft)}.inv-mov-date{color:var(--color-ink-soft);font-variant-numeric:tabular-nums}.auth{z-index:1;gap:var(--space-5);padding:var(--space-6) var(--space-4);flex-direction:column;justify-content:center;min-height:100dvh;display:flex;position:relative}.auth-brand{align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.auth-logo{width:104px;height:104px;margin:0 auto}.auth-wordmark{letter-spacing:.22em;color:var(--color-navy);margin:0;padding-left:.22em;font-size:26px;font-weight:800}.auth-tagline{color:var(--color-ink-soft);margin:-2px 0 0;font-size:13px;font-weight:500}.auth-form{gap:var(--space-3);border-radius:var(--radius-4);box-shadow:var(--shadow-raised);-webkit-backdrop-filter:saturate(140%)blur(8px);padding:var(--space-6);animation:card-rise .75s var(--ease-out) .1s both;background:linear-gradient(#fffffff5,#fcfdffeb);border-color:#e3e6eee6}@keyframes card-rise{0%{opacity:0;transform:translateY(22px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.auth-titulo{letter-spacing:-.02em;margin:0;font-size:21px;font-weight:750}.auth-switch{color:var(--color-accent);background:0 0;border:0;font-size:14px;font-weight:650}@media (prefers-reduced-motion:reduce){.auth-form{animation:none}}.cifra{transition:transform var(--t-fast), box-shadow var(--t-fast), border-color var(--t-fast)}@media (hover:hover){.cifra:hover{box-shadow:var(--shadow-soft);transform:translateY(-2px)}.mov-card:hover,.obra-item:hover{border-color:var(--color-primary-weak);box-shadow:var(--shadow-hover);transform:translateY(-2px)}}.mov-card,.obra-item{transition:transform var(--t-fast), box-shadow var(--t-fast), border-color var(--t-fast)}@media (width>=960px){.screen{gap:var(--space-5)}.screen-titulo{font-size:26px}.resumen-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.cifra{padding:var(--space-4) var(--space-5)}.cifra-valor{font-size:26px;font-weight:800}.cifra-etiqueta{font-size:13px}.auth{max-width:400px;margin:0 auto}}
