/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid}}}@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--radius-sm:.25rem;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.list-item{display:list-item}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}}:root{--bg:#0d0e13;--surface:#14151c;--surface-2:#1a1b24;--surface-3:#21222d;--fg:#eceef5;--fg-2:#b7bbcb;--muted:#858a9d;--border:#242634;--border-strong:#343749;--accent:#7b84ff;--accent-hover:#929aff;--accent-soft:#232648;--accent-fg:#0d0e13;--good:#0ca30c;--good-soft:#0ca30c29;--good-text:#4ed16a;--warn:#fab219;--warn-soft:#fab21929;--warn-text:#ffd07a;--serious:#ec835a;--crit:#d03b3b;--crit-soft:#d03b3b2e;--crit-text:#ff8d8d;--s1:#3987e5;--s2:#d95926;--grid:#262838;--axis:#3a3d4f;--fact:#b48cff;--fact-soft:#b48cff2e;--fact-text:#d6c2ff;--marca-2:#c6bcff;--e1:#d55181;--e2:#c98500;--e3:#199e70;--e4:#3987e5;--e5:#d95926;--e6:#9085e9;--e7:#008300;--shadow-hover:0 2px 4px #00000059,0 18px 40px -18px #000000a6;--shadow:0 1px 2px #0000004d,0 10px 30px -14px #00000080;--shadow-lg:0 24px 70px -20px #000000b3;--card-inset:inset 0 1px 0 #ffffff0a;--radius:10px;--radius-sm:7px;--font-display:"Sora",system-ui,-apple-system,"Segoe UI",sans-serif;--font-body:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;color-scheme:dark}:root[data-theme=light]{--bg:#f3f4f8;--surface:#fff;--surface-2:#f7f8fc;--surface-3:#eef0f7;--fg:#15161c;--fg-2:#454a5e;--muted:#7a7f93;--border:#e2e4ee;--border-strong:#cbcedd;--accent:#4a56e2;--accent-hover:#3d48cc;--accent-soft:#e9ebfc;--accent-fg:#fff;--good:#0ca30c;--good-soft:#e4f5e4;--good-text:#006300;--warn:#fab219;--warn-soft:#fff3d4;--warn-text:#7a5200;--serious:#ec835a;--crit:#d03b3b;--crit-soft:#fbe5e5;--crit-text:#9b1f1f;--s1:#2a78d6;--s2:#eb6834;--grid:#e6e8f0;--axis:#c3c5d3;--fact:#7a3fb3;--fact-soft:#efe6fb;--fact-text:#5b2d8e;--marca-2:#8f98ff;--e1:#e87ba4;--e2:#eda100;--e3:#1baf7a;--e4:#2a78d6;--e5:#eb6834;--e6:#6250d6;--e7:#008300;--shadow-hover:0 2px 4px #1416280f,0 18px 40px -18px #1416283d;--shadow:0 1px 2px #1416280d,0 10px 30px -14px #14162824;--shadow-lg:0 20px 60px -20px #14162859;--card-inset:inset 0 0 0 0 transparent;color-scheme:light}*,:after,:before{box-sizing:border-box}body,html{height:100%}body{font-family:var(--font-body);background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;margin:0;font-size:13.5px;line-height:1.45}[hidden]{display:none!important}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;padding:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;text-wrap:balance;margin:0;font-weight:600}h1{font-size:20px}h2{font-size:15px}h3{font-size:13px}p{margin:0}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12.5px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.fg2{color:var(--fg-2)}.small{font-size:12px}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}@media (prefers-reduced-motion:reduce){*,:after,:before{transition:none!important;animation:none!important}}.app{grid-template-columns:228px minmax(0,1fr);height:100%;display:grid}.sidebar{padding:14px 10px 12px max(10px,env(safe-area-inset-left,0px));border-right:1px solid var(--border);flex-direction:column;gap:2px;display:flex;overflow:auto}.brand{align-items:center;gap:10px;padding:4px 8px 14px;display:flex}.brand,.brand-text{min-width:0}.brand-mark{background:var(--accent);width:28px;height:28px;color:var(--accent-fg);border-radius:8px;flex:none;place-items:center;display:grid}.brand-mark svg{width:18px;height:18px}.brand-name{font-family:var(--font-display);font-size:15px;line-height:1.1}.brand-sub,.nav-label{color:var(--muted);font-size:11px}.nav-label{letter-spacing:.08em;text-transform:uppercase;padding:12px 10px 4px;font-weight:600}.nav-btn{border-radius:var(--radius-sm);width:100%;color:var(--fg-2);text-align:left;align-items:center;gap:10px;padding:7px 10px;font-weight:500;transition:background .12s;display:flex}.nav-btn svg{width:16px;height:16px;color:var(--muted);flex:none}.nav-btn:hover{background:var(--surface-3)}.nav-btn.active{background:var(--accent-soft);color:var(--fg)}.nav-btn.active svg{color:var(--accent)}.nav-btn .count{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}.side-foot{border-top:1px solid var(--border);flex-direction:column;gap:8px;margin-top:auto;padding-top:12px;display:flex}.theme-toggle{background:var(--surface-3);border-radius:8px;grid-template-columns:1fr 1fr;gap:2px;padding:3px;display:grid}.theme-toggle button{color:var(--muted);border-radius:6px;padding:5px 8px;font-size:12px;font-weight:500}.theme-toggle button.on{background:var(--surface);color:var(--fg);box-shadow:0 1px 2px #00000014}.demo-pill{color:var(--muted);align-items:center;gap:6px;padding:0 8px;font-size:11px;display:flex}.demo-pill i{background:var(--warn);border-radius:50%;width:6px;height:6px;display:inline-block}.main{flex-direction:column;min-width:0;display:flex;position:relative;overflow:auto}.topbar{z-index:5;padding:10px max(20px,env(safe-area-inset-right,0px)) 10px max(20px,env(safe-area-inset-left,0px));background:var(--bg);align-items:center;gap:12px;display:flex;position:sticky;top:0}@supports (color:color-mix(in lab,red,red)){.topbar{background:color-mix(in srgb,var(--bg) 82%,transparent)}}.topbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.crumbs{align-items:center;gap:6px;min-width:0;font-weight:500;display:flex}.crumbs .sep,.crumbs a,.crumbs button{color:var(--muted)}.crumbs a:hover,.crumbs button:hover{color:var(--fg)}.crumbs span.cur{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.topbar .spacer{flex:1}.search-btn{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:8px;align-items:center;gap:8px;min-width:200px;padding:6px 10px;font-size:12.5px;display:flex}.search-btn svg{width:14px;height:14px}.search-btn kbd{font-family:var(--font-mono);border:1px solid var(--border-strong);color:var(--muted);border-radius:4px;margin-left:auto;padding:1px 5px;font-size:10.5px}.avatar{color:#fff;background:var(--accent);letter-spacing:.02em;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:10.5px;font-weight:600;display:inline-grid}.avatar.sm{width:20px;height:20px;font-size:9px}.avatar.lg{width:38px;height:38px;font-size:14px}.avatar.c1{background:#4a56e2}.avatar.c2{background:#0e8a6b}.avatar.c3{background:#b4551c}.avatar.c4{background:#7a3fb3}.avatar.c5{background:#1f6fb8}.avatar.c6{background:#a22a5a}.avatar-stack{display:inline-flex}.avatar-stack .avatar{box-shadow:0 0 0 2px var(--surface);margin-left:-6px}.avatar-stack .avatar:first-child{margin-left:0}.content{padding-block:18px 32px;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px));flex-direction:column;gap:16px;width:100%;display:flex}@media (min-width:1600px){.content{padding-left:max(28px,env(safe-area-inset-left,0px));padding-right:max(28px,env(safe-area-inset-right,0px));gap:20px}.grid-2,.grid-3,.grid-kpi{gap:20px}}.view-head{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.view-head .sub{color:var(--muted);margin-top:2px}.view-head .actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.btn{border:1px solid var(--border);background:var(--surface);color:var(--fg);white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:6px 11px;font-size:12.5px;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover{background:var(--surface-3)}.btn svg{width:14px;height:14px}.btn.primary{background:var(--accent);color:var(--accent-fg)}.btn.primary:hover{background:var(--accent-hover)}.btn.ghost{color:var(--fg-2);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-3)}.btn.sm{padding:4px 8px;font-size:12px}.btn.danger{color:var(--crit-text)}.seg{background:var(--surface-3);border-radius:8px;gap:2px;padding:3px;display:inline-flex}.seg a,.seg button{color:var(--muted);border-radius:6px;padding:4px 10px;font-size:12.5px;font-weight:500}.seg a.on,.seg button.on{background:var(--surface);color:var(--fg);box-shadow:0 1px 2px #00000014}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);color:var(--fg-2);background:var(--surface);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:500}.chip.on{background:var(--fg);color:var(--bg);border-color:var(--fg)}.chip .n{opacity:.7;font-variant-numeric:tabular-nums;margin-left:4px}.field{flex-direction:column;gap:5px;display:flex}.field label{color:var(--fg-2);font-size:12px;font-weight:500}.input,select.input,textarea.input{border:1px solid var(--border);background:var(--surface);border-radius:8px;width:100%;min-width:0;padding:7px 10px;font-size:13px}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-grid .span2{grid-column:1/-1}.check{appearance:none;border:1.5px solid var(--border-strong);background:var(--surface);cursor:pointer;border-radius:4px;flex:none;place-items:center;width:15px;height:15px;margin:0;display:inline-grid}.check:checked{background:var(--accent);border-color:var(--accent)}.check:checked:after{content:"";border:2px solid var(--accent-fg);border-top:0;border-right:0;width:8px;height:5px;transform:translateY(-1px)rotate(-45deg)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow),var(--card-inset);min-width:0}.card-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:12px 14px;display:flex}.card-head h2{font-size:13.5px}.card-head .right{align-items:center;gap:6px;margin-left:auto;display:flex}.grid-kpi{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.kpi{flex-direction:column;gap:6px;min-width:0;padding:14px 16px;display:flex}.kpi .lbl{color:var(--muted);font-size:12px;font-weight:500}.kpi .val{font-family:var(--font-display);letter-spacing:-.02em;font-size:24px;font-weight:600;line-height:1.1}.kpi .delta{color:var(--muted);align-items:center;gap:5px;font-size:12px;display:flex}.kpi .delta.up{color:var(--good-text)}.kpi .delta.down{color:var(--crit-text)}.kpi .delta svg{width:12px;height:12px}.grid-2{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.grid-2,.grid-3{gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.stack{flex-direction:column;gap:16px;display:flex}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:9px 14px;font-size:11.5px;font-weight:600}td,th{border-bottom:1px solid var(--border);white-space:nowrap}td{vertical-align:middle;padding:10px 14px}tr:last-child td{border-bottom:0}tbody tr.row-link{cursor:pointer;transition:background .1s}tbody tr.row-link:hover{background:var(--surface-2)}td.r,th.r{text-align:right}td .primary{font-weight:500}td .sub{color:var(--muted);font-size:12px}tfoot td{background:var(--surface-2);border-top:1px solid var(--border);font-weight:600}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:2px 8px;font-size:11.5px;font-weight:600;display:inline-flex}.badge i{opacity:.9;background:currentColor;border-radius:50%;width:6px;height:6px;display:inline-block}.badge.neutral{background:var(--surface-3);color:var(--fg-2)}.badge.info{background:var(--accent-soft);color:var(--accent)}.badge.good{background:var(--good-soft);color:var(--good-text)}.badge.warn{background:var(--warn-soft);color:var(--warn-text)}.badge.crit{background:var(--crit-soft);color:var(--crit-text)}.badge.factoring{background:var(--fact-soft);color:var(--fact-text)}.etapa{color:var(--fg-2);white-space:nowrap;align-items:center;gap:6px;font-size:12px;font-weight:500;display:inline-flex}.etapa i{background:var(--ec);border-radius:2px;width:8px;height:8px;display:inline-block}.prio{color:var(--muted);align-items:center;gap:5px;font-size:11.5px}.prio,.prio b{display:inline-flex}.prio b{align-items:flex-end;gap:1.5px}.prio b s{background:var(--border-strong);border-radius:1px;width:3px;text-decoration:none;display:inline-block}.prio b s:first-child{height:5px}.prio b s:nth-child(2){height:8px}.prio b s:nth-child(3){height:11px}.prio.alta b s{background:var(--crit)}.prio.media b s:nth-child(-n+2){background:var(--warn)}.prio.baja b s:first-child{background:var(--good)}.progress{background:var(--surface-3);border-radius:3px;min-width:60px;height:5px;overflow:hidden}.progress b{background:var(--accent);border-radius:3px;height:100%;display:block}.progress.good b{background:var(--good)}.tramo{align-items:flex-start;gap:0;padding:4px 0;display:flex;overflow-x:auto}.tramo .st{min-width:84px;color:var(--muted);text-align:center;flex-direction:column;flex:1;align-items:center;gap:6px;font-size:11.5px;display:flex;position:relative}.tramo .st:before{content:"";background:var(--border);height:2px;position:absolute;top:9px;left:0;right:0}.tramo .st:first-child:before{left:50%}.tramo .st:last-child:before{right:50%}.tramo .st .dot{background:var(--surface);border:2px solid var(--border-strong);z-index:1;border-radius:50%;place-items:center;width:20px;height:20px;display:grid;position:relative}.tramo .st.done .dot:after{content:"";border:2px solid var(--accent-fg);border-top:0;border-right:0;width:7px;height:4px;transform:translateY(-1px)rotate(-45deg)}.tramo .st.cur .dot:after{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px}.tramo .st.cur{font-weight:600}.tramo .st .when{color:var(--muted);font-size:10.5px;font-weight:400}.board{grid-template-columns:repeat(7,minmax(var(--col-min),1fr));gap:var(--board-gap);align-items:start;padding-bottom:8px;display:grid;overflow-x:auto}.col{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;min-height:120px;max-height:calc(100vh - 230px)}.col,.col-head{background:var(--surface-2);display:flex}.col-head{border-bottom:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;z-index:1;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;font-size:12.5px;font-weight:600;position:sticky;top:0}.col-head i{background:var(--ec);border-radius:2px;width:8px;height:8px}.col-head .n{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:500}.col-head .sum{color:var(--muted);font-size:11px;font-family:var(--font-mono);margin-left:auto}.col-body{flex-direction:column;flex:1;gap:8px;min-height:40px;padding:8px;display:flex;overflow:auto}.col.over{outline:2px solid var(--ec,var(--accent));outline-offset:-2px;animation:pulso .9s ease-in-out infinite}.pcard{background:var(--surface);border:1px solid var(--border);cursor:grab;min-width:0;box-shadow:0 1px 2px #0000000a,var(--card-inset);border-radius:8px;flex-direction:column;gap:8px;padding:10px 11px;transition:border-color .12s,transform .12s;display:flex}.pcard:hover{border-color:var(--border-strong)}.pcard.dragging{opacity:.92;box-shadow:var(--shadow-lg);transform:rotate(2deg)scale(1.02)}.pcard .code{font-family:var(--font-mono);color:var(--muted);font-size:10.5px}.pcard .title{white-space:normal;overflow-wrap:anywhere;font-size:13px;font-weight:600;line-height:1.3}.pcard .client{color:var(--fg-2);overflow-wrap:anywhere;font-size:12px}.pcard .foot{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:11.5px;display:flex}.pcard .foot .amt{font-family:var(--font-mono);color:var(--fg-2);font-size:11.5px}.pcard .foot .avatar{margin-left:auto}.pcard .foot svg{vertical-align:-2px;width:12px;height:12px}.pcard .due.late{color:var(--crit-text);font-weight:600}.gantt{grid-template-columns:220px minmax(0,1fr);font-size:12px;display:grid}.gantt .gh{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:8px 12px;font-size:11px;font-weight:600}.gantt .gh,.gantt .months{border-bottom:1px solid var(--border)}.gantt .months{display:grid}.gantt .months span{border-left:1px solid var(--border);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;padding:8px 6px;font-size:11px;font-weight:600;overflow:hidden}.gantt .gl{border-bottom:1px solid var(--border);cursor:pointer;flex-direction:column;gap:1px;min-width:0;padding:9px 12px;display:flex}.gantt .gl:hover{background:var(--surface-2)}.gantt .gl b{font-weight:500}.gantt .gl b,.gantt .gl span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.gantt .gl span{color:var(--muted);font-size:11px}.gantt .gr{border-bottom:1px solid var(--border);background:repeating-linear-gradient(90deg,var(--border) 0 1px,transparent 1px calc(100%/var(--m)));min-height:42px;position:relative}.gantt .bar{background:var(--accent-soft);border:1px solid var(--accent);border-radius:5px;height:20px;position:absolute;top:11px}@supports (color:color-mix(in lab,red,red)){.gantt .bar{border:1px solid color-mix(in srgb,var(--accent) 40%,transparent)}}.gantt .bar{cursor:pointer;overflow:hidden}.gantt .bar b{width:var(--p);background:var(--accent);opacity:.85;position:absolute;inset:0}.gantt .bar span{color:var(--fg);white-space:nowrap;font-size:11px;font-weight:600;line-height:18px;position:absolute;top:0;left:8px}.gantt .today{border-left:2px dashed var(--crit);opacity:.7;width:0;position:absolute;top:0;bottom:0}.gantt .hito{background:var(--warn);border:1.5px solid var(--surface);border-radius:2px;width:10px;height:10px;position:absolute;top:15px;transform:translate(-5px)rotate(45deg)}.list{flex-direction:column;display:flex}.list-item{border-bottom:1px solid var(--border);align-items:center;gap:10px;min-width:0;padding:9px 14px;display:flex}.list-item:last-child{border-bottom:0}.list-item .grow{flex:1;min-width:0}.list-item .t{font-weight:500}.list-item .s,.list-item .t{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.list-item .s{color:var(--muted);font-size:12px}.list-item>svg{width:14px;height:14px;color:var(--muted);flex:none}.list-item.link{cursor:pointer}.date-box,.list-item.link:hover{background:var(--surface-2)}.date-box{text-align:center;border:1px solid var(--border);border-radius:7px;flex:none;width:40px;padding:3px 0;line-height:1.15}.date-box b{font-family:var(--font-display);font-size:15px;display:block}.date-box span{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:9.5px}.act .who{font-weight:600}.act time{color:var(--muted);white-space:nowrap;font-size:11.5px}.task-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:8px 14px;display:flex}.task-row:last-child{border-bottom:0}.task-row .t{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-weight:500;overflow:hidden}.task-row.done .t{color:var(--muted);font-weight:400;text-decoration:line-through}.task-row .meta{color:var(--muted);white-space:nowrap;align-items:center;gap:10px;font-size:11.5px;display:flex}.task-row .meta .late{color:var(--crit-text);font-weight:600}.group-head{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--border);gap:8px;padding:8px 14px;font-size:11.5px;font-weight:600;display:flex}.group-head .n{color:var(--fg-2)}.detail-head{flex-direction:column;gap:12px;display:flex}.detail-title{flex-wrap:wrap;align-items:flex-start;gap:14px;display:flex}.detail-title h1{font-size:21px}.detail-title .meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:14px;margin-top:6px;font-size:12.5px;display:flex}.detail-title .meta b{color:var(--fg-2);font-weight:500}.tabs{border-bottom:1px solid var(--border);gap:2px;display:flex;overflow-x:auto}.tabs a,.tabs button{color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;padding:8px 12px;font-weight:500}.tabs a.on,.tabs button.on{color:var(--fg);border-bottom-color:var(--accent)}.tabs a .n,.tabs button .n{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:4px;font-size:11px}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.stat{flex-direction:column;gap:3px;min-width:0;display:flex}.stat .l{color:var(--muted);font-size:11.5px}.stat .v{font-family:var(--font-display);letter-spacing:-.01em;font-size:17px;font-weight:600}.stats-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.budget-bar{background:var(--surface-3);border-radius:5px;height:10px;position:relative;overflow:hidden}.budget-bar b{background:var(--accent);border-radius:5px;position:absolute;top:0;bottom:0;left:0}.legend{color:var(--fg-2);flex-wrap:wrap;gap:14px;font-size:11.5px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend i{border-radius:3px;width:10px;height:10px;display:inline-block}.quote-head{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.chart{width:100%;position:relative}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart .bar{transition:opacity .12s}.chart .tip{pointer-events:none;background:var(--fg);color:var(--bg);box-shadow:var(--shadow-lg);white-space:nowrap;opacity:0;z-index:3;border-radius:7px;padding:6px 9px;font-size:11.5px;transition:opacity .1s;position:absolute;transform:translate(-50%,calc(-100% - 10px))}.chart .tip b{margin-bottom:2px;font-weight:600;display:block}.chart .tip span{align-items:center;gap:6px;display:flex}.chart .tip i{border-radius:2px;width:8px;height:8px;display:inline-block}.chart .tip.show{opacity:1}.team-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;display:grid}.member{flex-direction:column;gap:12px;padding:14px;display:flex}.member .top{align-items:center;gap:10px;display:flex}.member .name{font-weight:600}.member .role{color:var(--muted);font-size:12px}.member .stats{grid-template-columns:1fr 1fr;gap:8px;font-size:12px;display:grid}.member .stats b{font-family:var(--font-display);font-size:15px;font-weight:600;display:block}.load,.member .stats span{color:var(--muted)}.load{flex-direction:column;gap:5px;font-size:11.5px;display:flex}.load .progress{height:6px}.load.hot .progress b{background:var(--serious)}.roles{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;display:grid}.roles .role{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;padding:12px}.roles .role b{margin-bottom:3px;font-weight:600;display:block}.roles .role span{color:var(--muted);font-size:12px}.pipe{flex-direction:column;gap:4px;display:flex}.pipe-row{text-align:left;border-radius:8px;grid-template-columns:124px 22px minmax(0,1fr) 76px;align-items:center;gap:10px;width:100%;padding:6px 8px;font-size:12.5px;display:grid}.pipe-row:hover{background:var(--surface-2)}.pipe-n{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}.pipe-bar{background:var(--surface-3);border-radius:4px;height:8px;overflow:hidden}.pipe-bar b{border-radius:4px;min-width:2px;height:100%;display:block}.pipe-amt{text-align:right;color:var(--fg-2);font-size:11.5px}.ic{border-radius:8px;flex:none;place-items:center;width:28px;height:28px;display:grid}.ic svg{width:15px;height:15px}.ic.crit{background:var(--crit-soft);color:var(--crit-text)}.ic.warn{background:var(--warn-soft);color:var(--warn-text)}.ic.info{background:var(--accent-soft);color:var(--accent)}.code-chip{font-family:var(--font-mono);background:var(--surface-3);color:var(--fg-2);white-space:nowrap;border-radius:5px;padding:1px 6px;font-size:10.5px}.quick-add{border-bottom:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap;gap:8px;padding:10px 14px;display:flex}.quick-add input{flex:1;min-width:160px}.quick-add select{width:auto}.new-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.new-grid button{border:1px solid var(--border);background:var(--surface);text-align:left;border-radius:10px;flex-direction:column;align-items:flex-start;gap:8px;padding:14px;display:flex}.new-grid button:hover{border-color:var(--accent);background:var(--accent-soft)}.new-grid button b{font-weight:600}.new-grid button span{color:var(--muted);font-size:12px}.new-grid button svg{width:18px;height:18px;color:var(--accent)}.stack-bar{background:var(--surface-3);border-radius:4px;gap:2px;height:8px;display:flex;overflow:hidden}.stack-bar b{height:100%;display:block}.kv{grid-template-columns:120px 1fr;gap:6px 12px;font-size:13px;display:grid}.kv dt{color:var(--muted)}.kv dd{overflow-wrap:anywhere;min-width:0;margin:0}.overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:40;background:#0a0b1473;place-items:start center;padding:8vh 16px 16px;display:grid;position:fixed;inset:0;overflow:auto}.modal{background:var(--surface);border:1px solid var(--border);width:min(560px,100%);box-shadow:var(--shadow-lg);border-radius:14px;flex-direction:column;max-height:calc(90vh - 16px);display:flex}.modal-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:14px 16px;display:flex}.modal-head h2{font-size:14.5px}.modal-head .x{color:var(--muted);place-items:center;width:28px;height:28px;margin-left:auto;display:grid}.modal-head .x svg{width:15px;height:15px}.modal-head .x:hover{background:var(--surface-3);color:var(--fg)}.modal-body{flex-direction:column;gap:14px;padding:16px;display:flex;overflow:auto}.modal-foot{border-top:1px solid var(--border);border-radius:0 0 14px 14px;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.modal-foot,.totals{background:var(--surface-2)}.totals{border-radius:8px;grid-template-columns:1fr auto;gap:4px 16px;padding:10px 12px;font-size:13px;display:grid}.totals .t{font-size:14px;font-weight:600}.palette{background:var(--surface);border:1px solid var(--border);width:min(600px,100%);box-shadow:var(--shadow-lg);border-radius:14px;overflow:hidden}.palette input{border:0;border-bottom:1px solid var(--border);background:0 0;outline:none;width:100%;padding:14px 16px;font-size:15px}.palette .res{max-height:360px;padding:6px;overflow:auto}.palette .grp{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:8px 10px 4px;font-size:11px;font-weight:600}.palette .it{cursor:pointer;text-align:left;border-radius:8px;align-items:center;gap:10px;width:100%;padding:8px 10px;display:flex}.palette .it.sel,.palette .it:hover{background:var(--accent-soft)}.palette .it .k{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:11px}.palette .it svg{width:15px;height:15px;color:var(--muted);flex:none}.palette .foot{border-top:1px solid var(--border);color:var(--muted);gap:14px;padding:8px 14px;font-size:11px;display:flex}.palette kbd{font-family:var(--font-mono);border:1px solid var(--border-strong);border-radius:4px;padding:1px 4px;font-size:10px}.drawer-wrap{z-index:40;background:#0a0b1459;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:var(--surface);border-left:1px solid var(--border);width:min(520px,100%);height:100%;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow:auto}.drawer .modal-head{background:var(--surface);z-index:1;position:sticky;top:0}.drawer-body{flex-direction:column;gap:16px;padding:16px;display:flex}.toast{left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--fg);color:var(--bg);box-shadow:var(--shadow-lg);opacity:0;z-index:60;pointer-events:none;border-radius:10px;align-items:center;gap:8px;max-width:calc(100% - 32px);padding:9px 14px;font-size:12.5px;font-weight:500;transition:opacity .18s,transform .18s;display:flex;position:fixed;transform:translate(-50%,20px)}.toast.show{opacity:1;transform:translate(-50%)}.toast .toast-ic{flex:none;place-items:center;display:grid}.toast .toast-ic,.toast .toast-ic svg{width:16px;height:16px}.toast.ok .toast-ic{color:var(--good)}.toast.error .toast-ic{color:var(--crit)}.empty{text-align:center;color:var(--muted);padding:28px 16px;font-size:12.5px}.bottom-nav{display:none}@media (max-width:900px){.app{grid-template-columns:1fr}.sidebar{display:none}.main{padding-bottom:64px}.bottom-nav{background:var(--surface);border-top:1px solid var(--border);padding:6px max(8px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));z-index:30;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a,.bottom-nav button{color:var(--muted);flex-direction:column;align-items:center;gap:3px;padding:4px 0;font-size:10px;font-weight:500;display:flex}.bottom-nav a svg,.bottom-nav button svg{width:18px;height:18px}.bottom-nav a.active,.bottom-nav button.active{color:var(--accent)}.grid-kpi{grid-template-columns:1fr 1fr}.grid-2,.grid-3,.summary-grid{grid-template-columns:1fr}.stats-row{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.search-btn{min-width:0}.search-btn .lbl,.search-btn kbd{display:none}.content,.topbar{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.gantt{grid-template-columns:140px minmax(0,1fr)}.kpi .val{font-size:21px}.col{max-height:none}.pipe-row{grid-template-columns:110px 22px minmax(0,1fr) 64px}}a{color:inherit;text-decoration:none}.btn:disabled,button:disabled{opacity:.55;cursor:not-allowed}.form-error{background:var(--crit-soft);color:var(--crit-text);border-radius:8px;padding:9px 12px;font-size:12.5px;font-weight:500}.form-hint{color:var(--muted);font-size:12px}.login-wrap{background:radial-gradient(1200px 600px at 50% -10%,var(--accent-soft),transparent 60%),var(--bg);place-items:center;min-height:100%;padding:24px;display:grid}.login-card{flex-direction:column;gap:18px;width:min(400px,100%);padding:26px;display:flex}.login-card .brand{padding:0}.demo-users{flex-direction:column;gap:4px;display:flex}.demo-users button{text-align:left;border-radius:8px;align-items:center;gap:10px;width:100%;padding:7px 10px;display:flex}.demo-users button:hover{background:var(--surface-3)}.demo-users .e{color:var(--muted);font-size:11px;font-family:var(--font-mono);margin-left:auto}.row-link td .link-cell{display:block}.inline-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.inline-form .input{width:auto}.items-grid{grid-template-columns:minmax(0,1fr) 64px 64px 130px 28px;align-items:center;gap:6px;display:grid}.items-grid .h{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}.icon-btn{width:28px;height:28px;color:var(--muted);border-radius:7px;place-items:center;display:grid}.icon-btn:hover{background:var(--surface-3);color:var(--fg)}.icon-btn svg{width:14px;height:14px}.version-pills{gap:4px;display:inline-flex}.version-pills a{border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:11.5px;font-weight:600}.version-pills a.on{background:var(--accent-soft);color:var(--accent);border-color:#0000}.nav-user{border-radius:8px;align-items:center;gap:10px;padding:6px 8px;display:flex}.nav-user .n{font-size:12.5px;font-weight:600;line-height:1.2}.nav-user .r{color:var(--muted);font-size:11px}.nav-user .out{color:var(--muted);border-radius:6px;place-items:center;width:26px;height:26px;margin-left:auto;display:grid}.nav-user .out:hover{background:var(--surface-3);color:var(--fg)}.nav-user .out svg{width:14px;height:14px}.pcard.drop-target{outline:2px dashed var(--accent)}@media (max-width:900px){.items-grid{grid-template-columns:minmax(0,1fr) 56px 56px 110px 28px}.view-head .actions{width:100%;margin-left:0}}.user-menu-wrap{display:flex;position:relative}.user-menu-btn{border-radius:50%;place-items:center;display:grid}.user-menu-btn:hover .avatar{box-shadow:0 0 0 3px var(--accent-soft)}.user-menu{z-index:30;width:280px;box-shadow:var(--shadow-lg);flex-direction:column;gap:12px;padding:12px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.user-menu-head,.user-menu-row{align-items:center;gap:10px;display:flex}.user-menu-row{justify-content:space-between}.user-menu-row .theme-toggle{min-width:150px}:root{--col-min:168px;--board-gap:10px}html[data-densidad=compacto]{--col-min:140px;--board-gap:8px}html[data-densidad=amplio]{--col-min:230px;--board-gap:12px}.board-tools{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.board-tools p{flex:1;min-width:220px;margin:0}.col-head .nombre{overflow-wrap:anywhere;min-width:0}.col-head .col-cerrar{width:12px;height:12px;color:var(--muted);margin-left:auto}.col-head[title]{cursor:pointer}.pcard-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.col.plegada{cursor:pointer;background:var(--surface-2);align-items:stretch;min-height:180px}.col.plegada:hover{border-color:var(--border-strong)}.col-plegada-btn{width:100%;height:100%;color:var(--muted);border-radius:var(--radius);flex-direction:column;align-items:center;gap:10px;padding:12px 0;font-size:11.5px;font-weight:600;display:flex}.col-plegada-btn i{border-radius:2px;width:8px;height:8px;display:block}.col-plegada-btn .vert{writing-mode:vertical-rl;white-space:nowrap;letter-spacing:.02em;line-height:1;transform:rotate(180deg)}.col-plegada-btn .n{font-variant-numeric:tabular-nums;font-weight:500}html[data-densidad=compacto] .col-head{padding:8px 10px;font-size:12px}html[data-densidad=compacto] .col-body{gap:6px;padding:6px}html[data-densidad=compacto] .pcard{gap:6px;padding:8px 9px}html[data-densidad=compacto] .pcard .code{font-size:10px}html[data-densidad=compacto] .pcard .title{font-size:12px}html[data-densidad=compacto] .pcard .client{font-size:11.5px}html[data-densidad=compacto] .pcard .foot,html[data-densidad=compacto] .pcard .foot .amt,html[data-densidad=compacto] .prio{font-size:11px}html[data-densidad=amplio] .pcard{gap:9px;padding:12px 13px}.sidebar-toggle{border-radius:var(--radius-sm);width:100%;color:var(--muted);align-items:center;gap:10px;padding:7px 10px;font-size:12.5px;font-weight:500;display:flex}.sidebar-toggle:hover{background:var(--surface-3);color:var(--fg)}.sidebar-toggle svg{flex:none;width:16px;height:16px}.sidebar-expand{display:none}html[data-sidebar=collapsed] .app{grid-template-columns:56px minmax(0,1fr)}html[data-sidebar=collapsed] .sidebar{padding-left:max(8px,env(safe-area-inset-left,0px));padding-right:8px;overflow-x:hidden}html[data-sidebar=collapsed] .brand{justify-content:center;padding:4px 0 10px}html[data-sidebar=collapsed] .brand-text,html[data-sidebar=collapsed] .demo-pill,html[data-sidebar=collapsed] .nav-btn span,html[data-sidebar=collapsed] .nav-label,html[data-sidebar=collapsed] .nav-user form,html[data-sidebar=collapsed] .nav-user>div,html[data-sidebar=collapsed] .sidebar-toggle span,html[data-sidebar=collapsed] .theme-toggle{display:none}html[data-sidebar=collapsed] nav{padding-top:8px}html[data-sidebar=collapsed] .nav-btn{justify-content:center;padding:9px 0}html[data-sidebar=collapsed] .nav-btn svg{width:18px;height:18px}html[data-sidebar=collapsed] .nav-user{justify-content:center;padding:6px 0}html[data-sidebar=collapsed] .sidebar-toggle{justify-content:center;padding:9px 0}html[data-sidebar=collapsed] .sidebar-expand{display:grid}@media (max-width:900px){.sidebar-expand{display:none!important}.board-tools .seg{display:none}}.seg.full{grid-auto-columns:1fr;grid-auto-flow:column;width:100%;display:grid}.seg.full button{text-align:center}.sub-factoring{color:var(--fact-text);white-space:normal;margin-top:2px;font-size:12px}.totals .neg{color:var(--crit-text)}body{background:radial-gradient(1100px 620px at -4% -12%,var(--accent),transparent 62%),linear-gradient(180deg,var(--bg) 0,var(--bg) 100%)}@supports (color:color-mix(in lab,red,red)){body{background:radial-gradient(1100px 620px at -4% -12%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 62%),linear-gradient(180deg,var(--bg) 0,color-mix(in srgb,var(--bg) 93%,#000) 100%)}}body{background-attachment:fixed}:root[data-theme=light] body{background:radial-gradient(1100px 620px at -4% -12%,var(--accent),transparent 62%),linear-gradient(180deg,var(--bg) 0,var(--bg) 100%)}@supports (color:color-mix(in lab,red,red)){:root[data-theme=light] body{background:radial-gradient(1100px 620px at -4% -12%,color-mix(in srgb,var(--accent) 6%,transparent),transparent 62%),linear-gradient(180deg,var(--bg) 0,color-mix(in srgb,var(--bg) 97%,#000) 100%)}}.col{border-top:2px solid var(--ec,var(--border))}.col-head{background:var(--ec,var(--surface-2))}@supports (color:color-mix(in lab,red,red)){.col-head{background:color-mix(in srgb,var(--ec,var(--surface-2)) 8%,var(--surface-2))}}.col.plegada{border-top-color:var(--ec,var(--border))}.col-plegada-btn i{background:var(--ec)}.tramo .st.done:before{background:var(--ec,var(--accent))}.tramo .st.cur:before{background:linear-gradient(90deg,var(--ec,var(--accent)) 50%,var(--border) 50%)}.tramo .st.done .dot{background:var(--ec,var(--accent));border-color:var(--ec,var(--accent))}.tramo .st.done .dot:after{border-color:#fffffff2}.tramo .st.cur .dot{border-color:var(--ec,var(--accent));box-shadow:0 0 0 4px var(--ec,var(--accent))}@supports (color:color-mix(in lab,red,red)){.tramo .st.cur .dot{box-shadow:0 0 0 4px color-mix(in srgb,var(--ec,var(--accent)) 22%,transparent)}}.tramo .st.cur .dot{animation:encender .55s ease-out}.tramo .st.cur .dot:after{background:var(--ec,var(--accent))}.tramo .st.cur{color:var(--fg)}@keyframes encender{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ec,var(--accent)) 70%,transparent)}to{box-shadow:0 0 0 4px color-mix(in srgb,var(--ec,var(--accent)) 22%,transparent)}}.gantt .bar{background:var(--ec,var(--accent))}@supports (color:color-mix(in lab,red,red)){.gantt .bar{background:color-mix(in srgb,var(--ec,var(--accent)) 16%,transparent)}}.gantt .bar{border-color:var(--ec,var(--accent))}@supports (color:color-mix(in lab,red,red)){.gantt .bar{border-color:color-mix(in srgb,var(--ec,var(--accent)) 45%,transparent)}}.gantt .bar b{background:var(--ec,var(--accent))}.kpi{isolation:isolate;gap:5px;position:relative}.kpi .kpi-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.kpi .kpi-ic{background:var(--kc,var(--accent));border-radius:8px;place-items:center;width:30px;height:30px;display:grid}@supports (color:color-mix(in lab,red,red)){.kpi .kpi-ic{background:color-mix(in srgb,var(--kc,var(--accent)) 12%,transparent)}}.kpi .kpi-ic{color:var(--kc,var(--accent));flex:none}.kpi .kpi-ic svg{width:15px;height:15px}.kpi .val-row{justify-content:space-between;align-items:flex-end;gap:10px;min-height:30px;display:flex}.kpi .spark{flex:none;width:84px;height:28px;overflow:visible}.kpi .spark .area{fill:var(--kc,var(--accent))}@supports (color:color-mix(in lab,red,red)){.kpi .spark .area{fill:color-mix(in srgb,var(--kc,var(--accent)) 14%,transparent)}}.kpi .spark .line{fill:none;stroke:var(--kc,var(--accent));stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.kpi .spark circle{fill:var(--kc,var(--accent))}.kpi .delta.flat{color:var(--muted)}.kpi .kpi-foot{flex-wrap:wrap;align-items:center;gap:2px 10px;min-height:18px;display:flex}.kpi .kpi-foot .delta{white-space:normal;overflow-wrap:anywhere;min-width:0}.kpi .kpi-foot .delta+.delta:before{content:"·";color:var(--muted);margin-right:8px}@keyframes aparecer{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.content .card{animation:aparecer .36s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:var(--entrada,0s)}.content .card:nth-child(2){--entrada:40ms}.content .card:nth-child(3){--entrada:80ms}.content .card:nth-child(4){--entrada:.12s}.content .card:nth-child(5){--entrada:.16s}.content .card:nth-child(6){--entrada:.2s}.content .card:nth-child(7){--entrada:.24s}.content .card:nth-child(8){--entrada:.28s}.content .card:nth-child(9){--entrada:.32s}.content .card:nth-child(n+10){--entrada:.36s}.content .stack .card:nth-child(2){--entrada:.12s}.content .stack .card:nth-child(3){--entrada:.2s}@keyframes crecer{0%{width:0}}.budget-bar b,.pipe-bar b,.progress b,.stack-bar b{animation:crecer .5s cubic-bezier(.2,.7,.2,1)}@keyframes subir{0%{transform:scaleY(0)}}.chart .bar{transform-box:fill-box;transform-origin:bottom;animation:subir .5s cubic-bezier(.2,.7,.2,1)}.card.hoverable,.kpi,.member,.pcard{transition:transform .14s,border-color .14s,box-shadow .14s}.card.hoverable:hover,.kpi:hover,.member:hover{border-color:var(--accent);transform:translateY(-1px)}@supports (color:color-mix(in lab,red,red)){.card.hoverable:hover,.kpi:hover,.member:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}}.card.hoverable:hover,.kpi:hover,.member:hover{box-shadow:var(--shadow-hover),var(--card-inset)}.pcard:hover{border-color:var(--accent);transform:translateY(-1px)}@supports (color:color-mix(in lab,red,red)){.pcard:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}}.pcard:hover{box-shadow:0 8px 20px -12px #0000008c}tbody tr{transition:background .12s}tbody tr:hover{background:var(--surface-2)}tbody td .btn.sm,tbody td .icon-btn{opacity:.62;transition:opacity .14s,background .12s}tbody td .btn.sm:focus-visible,tbody td .icon-btn:focus-visible,tbody tr:hover td .btn.sm,tbody tr:hover td .icon-btn{opacity:1}.btn{transition:background .12s,border-color .12s,box-shadow .16s,transform .12s}.btn.primary:hover{box-shadow:0 0 0 3px var(--accent),0 8px 18px -8px var(--accent)}@supports (color:color-mix(in lab,red,red)){.btn.primary:hover{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent),0 8px 18px -8px var(--accent)}}.btn.primary:active{transform:translateY(1px)}.badge,.chip,.list-item.link,.nav-btn,.pipe-row,.seg a,.seg button,.tabs a,.tabs button{transition:background .14s,color .14s,border-color .14s,box-shadow .14s}.tabs{position:relative}.tabs .tabs-ind{background:var(--accent);border-radius:2px;height:2px;transition:left .22s cubic-bezier(.2,.7,.2,1),width .22s cubic-bezier(.2,.7,.2,1);position:absolute;bottom:-1px}.tabs.tabs-js a.on,.tabs.tabs-js button.on{border-bottom-color:#0000}@keyframes pulso{50%{outline-color:#0000}}@keyframes pop{0%{transform:scale(1.03)}to{transform:scale(1)}}.pcard.pop{animation:pop .3s cubic-bezier(.2,.7,.2,1)}.nav-btn{position:relative}.nav-btn.active:before{content:"";background:var(--accent);border-radius:2px;width:2px;position:absolute;top:7px;bottom:7px;left:0}.nav-btn .count{color:var(--fg-2);background:var(--surface-3);border-radius:999px;padding:1px 7px;font-size:10.5px;font-weight:600;line-height:1.5}.nav-btn.active .count{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.nav-btn.active .count{background:color-mix(in srgb,var(--accent) 20%,transparent)}}.nav-btn.active .count{color:var(--accent)}.brand-name{align-items:center;gap:6px;display:flex}.empresa-mark{background:var(--surface-3);border:1px solid var(--border-strong);width:18px;height:18px;font-family:var(--font-display);letter-spacing:.02em;color:var(--fg-2);border-radius:5px;place-items:center;font-size:9px;font-weight:700;display:inline-grid}html[data-sidebar=collapsed] .nav-btn.active:before{left:-8px}.notif-wrap{display:flex;position:relative}.bell{width:32px;height:32px;color:var(--muted);border-radius:8px;place-items:center;transition:background .12s,color .12s;display:grid;position:relative}.bell:hover,.bell[aria-expanded=true]{background:var(--surface-3);color:var(--fg)}.bell svg{width:16px;height:16px}.bell .n{background:var(--crit);color:#fff;min-width:16px;height:16px;box-shadow:0 0 0 2px var(--surface);border-radius:999px;place-items:center;padding:0 4px;font-size:10px;font-weight:700;line-height:1;display:grid;position:absolute;top:2px;right:2px}.notif-panel{z-index:30;width:380px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-lg);animation:aparecer .18s ease-out backwards;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.notif-panel .list{max-height:420px;overflow:auto}@media (max-width:900px){.notif-panel{width:auto;max-width:none;position:fixed;top:56px;left:12px;right:12px}}.login-grid{grid-template-columns:minmax(0,440px) minmax(0,1fr);align-items:stretch;gap:24px;width:min(1060px,100%);display:grid}.login-card{width:auto}.login-hero{border:1px solid var(--border);background:radial-gradient(720px 440px at 85% 5%,var(--accent),transparent 60%),radial-gradient(520px 320px at 5% 95%,var(--e3),transparent 60%),var(--surface);border-radius:16px;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.login-hero{background:radial-gradient(720px 440px at 85% 5%,color-mix(in srgb,var(--accent) 24%,transparent),transparent 60%),radial-gradient(520px 320px at 5% 95%,color-mix(in srgb,var(--e3) 16%,transparent),transparent 60%),var(--surface)}}.login-hero{box-shadow:var(--shadow),var(--card-inset);flex-direction:column;justify-content:center;gap:22px;padding:44px 40px;display:flex}.login-hero h2{letter-spacing:-.015em;max-width:20ch;font-size:24px;line-height:1.2}.login-hero .tramo{padding:10px 0}.login-hero .tramo .st{min-width:0;font-size:11px}.login-hero .tramo .st .dot{transition:background .3s,border-color .3s,box-shadow .3s}.login-hero .tramo .st:before{transition:background .3s}.login-hero p{color:var(--fg-2);max-width:46ch;font-size:13.5px;line-height:1.55}.login-hero .pills{flex-wrap:wrap;gap:8px;display:flex}@media (max-width:900px){.login-grid{grid-template-columns:1fr}.login-hero{display:none}}.demo-cards{grid-template-columns:1fr 1fr;gap:8px;display:grid}.demo-cards button{border:1px solid var(--border);background:var(--surface-2);text-align:left;border-radius:10px;align-items:center;gap:10px;min-width:0;padding:9px 10px;transition:border-color .14s,transform .14s,background .14s;display:flex}.demo-cards button:hover{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.demo-cards button:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}}.demo-cards button:hover{background:var(--surface);transform:translateY(-1px)}.demo-cards .dc-t{flex-direction:column;gap:1px;min-width:0;display:flex}.demo-cards .n{font-size:12.5px;font-weight:600}.demo-cards .n,.demo-cards .r{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.demo-cards .r{color:var(--muted);font-size:11px}@media (max-width:520px){.demo-cards{grid-template-columns:1fr}}.link-ctx{color:var(--accent);font-weight:500}.link-ctx:hover{text-decoration:underline}.card-head.eyebrow-head h2{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}.ic.good{background:var(--good-soft);color:var(--good-text)}.ic.fact{background:var(--fact-soft);color:var(--fact-text)}.ic.neutral{background:var(--surface-3);color:var(--muted)}.chart .hoy-bg{fill:var(--accent)}@supports (color:color-mix(in lab,red,red)){.chart .hoy-bg{fill:color-mix(in srgb,var(--accent) 9%,transparent)}}.chart text.hoy{fill:var(--accent);font-weight:600}.content{--gutter:20px}@media (min-width:1600px){.content{--gutter:28px}}@media (max-width:900px){.content{--gutter:16px}}.detail-banda{margin:-18px calc(-1 * var(--gutter)) 0;padding:18px var(--gutter) 12px;background:linear-gradient(90deg,var(--ec,var(--accent)),transparent 70%)}@supports (color:color-mix(in lab,red,red)){.detail-banda{background:linear-gradient(90deg,color-mix(in srgb,var(--ec,var(--accent)) 10%,transparent),transparent 70%)}}.detail-banda{border-bottom:1px solid var(--ec,var(--accent))}@supports (color:color-mix(in lab,red,red)){.detail-banda{border-bottom:1px solid color-mix(in srgb,var(--ec,var(--accent)) 18%,transparent)}}.mini-barras{grid-auto-columns:1fr;grid-auto-flow:column;align-items:end;gap:6px;height:92px;padding-top:6px;display:grid}.mini-barras .mb{flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;min-width:0;height:100%;display:flex}.mini-barras .mb i{border-radius:4px 4px 2px 2px;width:100%;max-width:30px;animation:crecerAlto .5s cubic-bezier(.2,.7,.2,1);display:block}@keyframes crecerAlto{0%{height:3px}}.mini-barras .mb-lbl{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:10px}.anillo{flex:none}.anillo .track{fill:none;stroke:var(--surface-3);stroke-width:7px}.anillo .arc{fill:none;stroke-width:7px;stroke-linecap:round;transform-origin:50%;animation:anillo .7s cubic-bezier(.2,.7,.2,1);transform:rotate(-90deg)}@keyframes anillo{0%{stroke-dashoffset:var(--c)}}.anillo .pct{font-family:var(--font-display);fill:var(--fg);font-size:12.5px;font-weight:600}.load-row{align-items:center;gap:14px;display:flex}.load-row .txt{color:var(--muted);flex-direction:column;gap:2px;min-width:0;font-size:12px;display:flex}.load-row .txt b{font-family:var(--font-display);color:var(--fg);font-size:14px;font-weight:600}.vacio{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:8px;padding:30px 16px;display:flex}.vacio-ilu{width:120px;height:80px;color:var(--accent);opacity:.9}.vacio-ilu .l{stroke:var(--border-strong)}.vacio-t{color:var(--fg);font-size:13.5px;font-weight:600}.vacio-s{max-width:42ch;font-size:12.5px;line-height:1.5}.vacio-a{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:6px;display:flex}td .vacio{padding:24px 16px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.sk{background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 50%,var(--surface-2) 75%);background-size:200% 100%;border-radius:6px;max-width:100%;animation:shimmer 1.3s linear infinite;display:block}.sk-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:13px 14px;display:flex}.sk-row:last-child{border-bottom:0}.chart text,.gantt .months,.totals .mono,table{font-variant-numeric:tabular-nums}.date-box b,.kpi .val,.member .stats b,.stat .v{font-family:var(--font-display);font-variant-numeric:normal}.palette .it .k{font-family:var(--font-mono)}.menu-wrap{display:flex;position:relative}.menu-pop{z-index:30;min-width:210px;box-shadow:var(--shadow-lg);padding:6px;animation:aparecer .16s ease-out backwards;position:absolute;top:calc(100% + 6px);right:0}.menu-pop button{text-align:left;width:100%;color:var(--fg-2);border-radius:7px;align-items:center;gap:8px;padding:8px 10px;font-size:12.5px;display:flex}.menu-pop button:hover{background:var(--surface-3);color:var(--fg)}.menu-pop button.danger{color:var(--crit-text)}.menu-pop button svg{width:14px;height:14px}.list-item .icon-btn,.task-row .icon-btn{opacity:.5}.list-item .icon-btn:focus-visible,.list-item:hover .icon-btn,.task-row .icon-btn:focus-visible,.task-row:hover .icon-btn{opacity:1}.zona-peligro{border:1px solid var(--crit)}@supports (color:color-mix(in lab,red,red)){.zona-peligro{border:1px solid color-mix(in srgb,var(--crit) 35%,var(--border))}}.zona-peligro{background:var(--crit);border-radius:10px;flex-direction:column;gap:10px;padding:12px;display:flex}@supports (color:color-mix(in lab,red,red)){.zona-peligro{background:color-mix(in srgb,var(--crit) 6%,transparent)}}.aviso-bloqueo{background:var(--warn-soft);color:var(--warn-text);border-radius:8px;align-items:flex-start;gap:8px;padding:10px 12px;font-size:12.5px;line-height:1.5;display:flex}.aviso-bloqueo svg{flex:none;margin-top:2px}.btn.danger:hover{background:var(--crit-soft);border-color:var(--crit)}@supports (color:color-mix(in lab,red,red)){.btn.danger:hover{border-color:color-mix(in srgb,var(--crit) 40%,var(--border))}}.toast.show{pointer-events:auto}.toast-accion{background:var(--bg);border-radius:6px;align-items:center;gap:5px;margin-left:8px;padding:3px 9px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.toast-accion{background:color-mix(in srgb,var(--bg) 18%,transparent)}}.toast-accion{border:1px solid var(--bg)}@supports (color:color-mix(in lab,red,red)){.toast-accion{border:1px solid color-mix(in srgb,var(--bg) 30%,transparent)}}.toast-accion{color:inherit;font-size:12px;font-weight:600}.toast-accion svg{width:12px;height:12px}.toast-accion:hover{background:var(--bg)}@supports (color:color-mix(in lab,red,red)){.toast-accion:hover{background:color-mix(in srgb,var(--bg) 28%,transparent)}}.table-wrap .empty,.table-wrap .vacio{box-sizing:border-box;width:min(100%,100vw - 64px);position:sticky;left:0}@media (max-width:900px){.kpi .kpi-foot{flex-direction:column;align-items:flex-start;row-gap:1px}.kpi .kpi-foot .delta+.delta:before{content:none;margin:0}}.marca{flex:none;place-items:center;display:grid;position:relative}.marca svg{display:block;overflow:visible}.marca .f1,.marca .f2{transition:transform .25s cubic-bezier(.2,.7,.2,1)}.marca .brillo,.marca .f1,.marca .f2,.marca .luz{transform-box:fill-box;transform-origin:50%}.marca .brillo{opacity:0}.marca.entrada .f1{animation:fusionIzq .6s cubic-bezier(.2,.7,.2,1) backwards}.marca.entrada .f2{animation:fusionDer .6s cubic-bezier(.2,.7,.2,1) backwards}.marca.entrada .luz{animation:luzIn .35s ease-out .4s backwards}@keyframes fusionIzq{0%{opacity:.5;transform:translate(-7px)}to{opacity:1;transform:none}}@keyframes fusionDer{0%{opacity:.5;transform:translate(7px)}to{opacity:1;transform:none}}@keyframes luzIn{0%{opacity:0;transform:scale(.3)}to{opacity:.95;transform:none}}.marca.interactiva:hover .f1{transform:translate(-2px)}.marca.interactiva:hover .f2{transform:translate(2px)}.marca.interactiva:hover .brillo{animation:brillo .75s ease-out}@keyframes brillo{0%{opacity:0;transform:translate(-14px)skew(-20deg)}35%{opacity:.9}to{opacity:0;transform:translate(30px)skew(-20deg)}}.marca.bucle .f1{animation:fusionIzqBucle 6s ease-in-out infinite}.marca.bucle .f2{animation:fusionDerBucle 6s ease-in-out infinite}.marca.bucle .luz{animation:luzBucle 6s ease-in-out infinite}@keyframes fusionIzqBucle{0%,72%{transform:none}82%{transform:translate(-6px)}93%,to{transform:none}}@keyframes fusionDerBucle{0%,72%{transform:none}82%{transform:translate(6px)}93%,to{transform:none}}@keyframes luzBucle{0%,70%{opacity:.95;transform:none}82%{opacity:0;transform:scale(.3)}95%,to{opacity:.95;transform:none}}.brand{gap:9px}.brand-name{letter-spacing:-.02em;font-size:15.5px;font-weight:700}.empresa-mark{letter-spacing:.04em;border-radius:999px;width:auto;height:16px;padding:0 6px;font-size:8.5px}.login-card .brand-name{font-size:18px}.pasos .paso .t{font-weight:600}.pasos .paso.hecho .t{color:var(--muted);font-weight:500;text-decoration:line-through}.pasos .paso.hecho .s{color:var(--muted)}.pipe-vacio{flex-direction:column;gap:10px;padding:6px 0;display:flex}.pipe-vacio .chip{padding:2px 8px}.chart.vacio svg{opacity:.3}.chart-vacio{text-align:center;color:var(--fg-2);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:0 16px;font-size:13px;font-weight:500;display:flex;position:absolute;inset:0}.chart-vacio svg{width:24px;height:24px;color:var(--accent);opacity:.9;margin-bottom:6px}.chart-vacio .small{max-width:34ch;font-weight:400}:root{--card-inset:inset 0 1px 0 #ffffff12;--shadow:0 1px 2px #00000059,0 14px 34px -18px #000000a6}:root[data-theme=light]{--card-inset:inset 0 1px 0 #ffffffe6;--shadow:0 1px 2px #1416280d,0 14px 34px -20px #1416282e}.card{border-top-color:#fff}@supports (color:color-mix(in lab,red,red)){.card{border-top-color:color-mix(in srgb,#fff 12%,var(--border))}}:root[data-theme=light] .card{border-top-color:#fff}@supports (color:color-mix(in lab,red,red)){:root[data-theme=light] .card{border-top-color:color-mix(in srgb,#fff 45%,var(--border))}}.inicio-cabecera{isolation:isolate;position:relative}.inicio-cabecera:before{content:"";z-index:-1;left:calc(-1 * var(--gutter));right:calc(-1 * var(--gutter));pointer-events:none;background:radial-gradient(680px 250px at 8% 0,var(--accent),transparent 72%);position:absolute;top:-18px;bottom:-14px}@supports (color:color-mix(in lab,red,red)){.inicio-cabecera:before{background:radial-gradient(680px 250px at 8% 0,color-mix(in srgb,var(--accent) 20%,transparent),transparent 72%)}}:root[data-theme=light] .inicio-cabecera:before{background:radial-gradient(680px 250px at 8% 0,var(--accent),transparent 72%)}@supports (color:color-mix(in lab,red,red)){:root[data-theme=light] .inicio-cabecera:before{background:radial-gradient(680px 250px at 8% 0,color-mix(in srgb,var(--accent) 13%,transparent),transparent 72%)}}.sidebar{background:var(--surface)}@supports (color:color-mix(in lab,red,red)){.sidebar{background:color-mix(in srgb,var(--surface) 45%,var(--bg))}}.brand{border-bottom:1px solid var(--border)}@supports (color:color-mix(in lab,red,red)){.brand{border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent)}}.brand{margin-bottom:4px}.side-foot{border-top-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.side-foot{border-top-color:color-mix(in srgb,var(--border) 70%,transparent)}}.overlay{-webkit-backdrop-filter:blur(7px);background:#0a0b1485}.drawer-wrap{-webkit-backdrop-filter:blur(4px)}:root[data-theme=light] .overlay{background:#14162857}.detail-title h1,.view-head h1{letter-spacing:-.02em;font-size:24px;line-height:1.15}.view-head .sub{margin-top:4px;font-size:13px}.view-head .eyebrow{margin-bottom:4px}.card-head{padding:12px 16px}.card-body{padding:16px}.list-item,.sk-row,.task-row,td,th{padding-inline:16px}.kpi,.member{padding:16px}.grid-kpi{gap:16px}@media (min-width:1600px){.grid-kpi{gap:20px}}@media (max-width:900px){.detail-title h1,.view-head h1{font-size:22px}}.card>.table-wrap{border-radius:0;overflow:auto}.card>.table-wrap:first-child{border-top-left-radius:calc(var(--radius) - 1px);border-top-right-radius:calc(var(--radius) - 1px)}.card>.table-wrap:last-child{border-bottom-left-radius:calc(var(--radius) - 1px);border-bottom-right-radius:calc(var(--radius) - 1px)}@media (min-width:901px){.card>.table-wrap{max-height:min(72vh,720px)}}thead th{z-index:2;background:var(--surface);box-shadow:inset 0 -1px 0 var(--border);position:sticky;top:0}tbody td{height:44px;padding-block:6px}tbody tr.row-link:hover,tbody tr:hover{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){tbody tr.row-link:hover,tbody tr:hover{background:color-mix(in srgb,var(--accent) 4%,var(--surface-2))}}td.r.num{font-family:var(--font-mono);font-size:12.5px}.list-item .btn.sm,.task-row .btn.sm,tbody td .btn.sm{opacity:.78;transition:opacity .14s,background .12s,border-color .12s,box-shadow .14s}.list-item .btn.sm:focus-visible,.list-item:hover .btn.sm,.task-row .btn.sm:focus-visible,.task-row:hover .btn.sm,tbody td .btn.sm:focus-visible,tbody tr:hover td .btn.sm{opacity:1}.list-item .icon-btn,.task-row .icon-btn,tbody td .icon-btn{opacity:.55;transition:opacity .14s,background .12s,color .12s,box-shadow .14s}@media (hover:hover){.list-item .icon-btn,.task-row .icon-btn,tbody td .icon-btn{opacity:0}}.list-item:focus-within .icon-btn,.list-item:hover .icon-btn,.task-row:focus-within .icon-btn,.task-row:hover .icon-btn,tbody tr:focus-within td .icon-btn,tbody tr:hover td .icon-btn{opacity:1}.btn.primary{background:linear-gradient(180deg,var(--accent) 0,var(--accent) 55%,var(--accent) 100%)}@supports (color:color-mix(in lab,red,red)){.btn.primary{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 84%,#fff) 0,var(--accent) 55%,color-mix(in srgb,var(--accent) 90%,#000) 100%)}}.btn.primary{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.btn.primary{border-color:color-mix(in srgb,var(--accent) 78%,#000)}}.btn.primary{box-shadow:inset 0 1px #ffffff3d,0 1px 2px #0000002e}.btn.primary:hover{background:linear-gradient(180deg,var(--accent-hover) 0,var(--accent-hover) 55%,var(--accent) 100%)}@supports (color:color-mix(in lab,red,red)){.btn.primary:hover{background:linear-gradient(180deg,color-mix(in srgb,var(--accent-hover) 80%,#fff) 0,var(--accent-hover) 55%,var(--accent) 100%)}}.btn.primary:hover{border-color:var(--accent-hover);box-shadow:inset 0 1px 0 #ffffff4d,0 0 0 3px var(--accent),0 8px 18px -8px var(--accent)}@supports (color:color-mix(in lab,red,red)){.btn.primary:hover{box-shadow:inset 0 1px 0 #ffffff4d,0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent),0 8px 18px -8px var(--accent)}}.btn.primary:active{box-shadow:inset 0 2px 3px #00000040}.btn:not(.primary):not(.ghost):hover{border-color:var(--border-strong)}.bell,.icon-btn,.modal-head .x{transition:background .12s,color .12s,box-shadow .14s}.bell:hover,.icon-btn:hover,.modal-head .x:hover{box-shadow:0 0 0 2px var(--accent)}@supports (color:color-mix(in lab,red,red)){.bell:hover,.icon-btn:hover,.modal-head .x:hover{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 22%,transparent)}}.bell:focus-visible,.btn:focus-visible,.check:focus-visible,.chip:focus-visible,.icon-btn:focus-visible,.modal-head .x:focus-visible,.nav-btn:focus-visible,.seg a:focus-visible,.seg button:focus-visible,.tabs a:focus-visible,.tabs button:focus-visible,.theme-toggle button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.input:focus,.input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent);outline:none}@supports (color:color-mix(in lab,red,red)){.input:focus,.input:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 24%,transparent)}}.seg{isolation:isolate;position:relative}.seg a,.seg button{z-index:1;transition:color .14s,background .14s;position:relative}.seg .seg-ind{background:var(--surface);z-index:0;pointer-events:none;border-radius:6px;width:0;transition:left .22s cubic-bezier(.2,.7,.2,1),width .22s cubic-bezier(.2,.7,.2,1),opacity .14s;position:absolute;top:3px;bottom:3px;left:0;box-shadow:0 1px 2px #00000024,inset 0 1px #ffffff0d}.seg.seg-js a.on,.seg.seg-js button.on{box-shadow:none;background:0 0}.seg a:hover:not(.on),.seg button:hover:not(.on){color:var(--fg)}.avatar,.avatar.c1,.avatar.c2,.avatar.c3,.avatar.c4,.avatar.c5,.avatar.c6{background:linear-gradient(145deg,var(--ac,var(--accent)) 0,var(--ac,var(--accent)) 48%,var(--ac,var(--accent)) 100%)}@supports (color:color-mix(in lab,red,red)){.avatar,.avatar.c1,.avatar.c2,.avatar.c3,.avatar.c4,.avatar.c5,.avatar.c6{background:linear-gradient(145deg,color-mix(in srgb,var(--ac,var(--accent)) 74%,#fff) 0,var(--ac,var(--accent)) 48%,color-mix(in srgb,var(--ac,var(--accent)) 80%,#000) 100%)}}.avatar,.avatar.c1,.avatar.c2,.avatar.c3,.avatar.c4,.avatar.c5,.avatar.c6{text-shadow:0 1px 1px #00000040;box-shadow:inset 0 1px #ffffff38,inset 0 -1px #00000029}.avatar.c1{--ac:#4a56e2}.avatar.c2{--ac:#0e8a6b}.avatar.c3{--ac:#b4551c}.avatar.c4{--ac:#7a3fb3}.avatar.c5{--ac:#1f6fb8}.avatar.c6{--ac:#a22a5a}.avatar-stack .avatar{box-shadow:0 0 0 2px var(--surface),inset 0 1px 0 #ffffff38}.avatar-estado{flex:none;display:inline-grid;position:relative}.avatar-estado i{background:var(--good);width:11px;height:11px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;position:absolute;bottom:-1px;right:-1px}.avatar-estado.sin i{background:var(--muted)}.kpi .spark .halo{fill:var(--kc,var(--accent))}@supports (color:color-mix(in lab,red,red)){.kpi .spark .halo{fill:color-mix(in srgb,var(--kc,var(--accent)) 22%,transparent)}}.kpi .spark .halo{transform-box:fill-box;transform-origin:50%;animation:haloPulso 2.6s ease-in-out infinite}@keyframes haloPulso{0%,to{opacity:.9;transform:scale(1)}50%{opacity:.45;transform:scale(1.35)}}.chart .val-lbl{font-family:var(--font-mono);fill:var(--fg-2);font-variant-numeric:tabular-nums;font-size:10px;animation:aparecer .16s ease-out}.chart .tip{transform:translate(-50%,calc(-100% - 24px))}@keyframes modalIn{0%{opacity:0;transform:scale(.98)translateY(6px)}to{opacity:1;transform:none}}@keyframes velo{0%{opacity:0}to{opacity:1}}@keyframes drawerIn{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.drawer-wrap,.overlay{animation:velo .16s ease-out}.modal,.palette{animation:modalIn .16s cubic-bezier(.2,.7,.2,1)}.drawer{animation:drawerIn .2s cubic-bezier(.2,.7,.2,1)}.form-sec{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);align-items:center;gap:10px;margin-top:6px;font-size:11px;font-weight:600;display:flex}.form-sec:after{content:"";background:var(--border);flex:1;height:1px}.form-grid>.form-sec:first-child{margin-top:0}.form-error{border:1px solid var(--crit);align-items:flex-start;gap:8px;line-height:1.45;display:flex}@supports (color:color-mix(in lab,red,red)){.form-error{border:1px solid color-mix(in srgb,var(--crit) 35%,transparent)}}.form-error svg{flex:none;width:15px;height:15px;margin-top:1px}:root[data-theme=light]{--muted:#676d82}@keyframes contadorPop{0%{transform:scale(1)}35%{transform:scale(1.28)}to{transform:scale(1)}}.nav-btn .count{transition:background .14s,color .14s;display:inline-block}.nav-btn .count.pop{animation:contadorPop .42s cubic-bezier(.2,.7,.2,1)}.nav-btn{transition:background .14s,color .14s}@keyframes barraNav{0%{opacity:0;transform:scaleY(.2)}to{opacity:1;transform:none}}.nav-btn.active:before{transform-origin:50%;animation:barraNav .22s ease-out}.toast{overflow:hidden}.toast .toast-barra{transform-origin:0;background:var(--bg);width:100%;height:2px;position:absolute;bottom:0;left:0}@supports (color:color-mix(in lab,red,red)){.toast .toast-barra{background:color-mix(in srgb,var(--bg) 40%,transparent)}}.toast .toast-barra{animation:toastTiempo var(--toast-dur,2.6s) linear forwards}.toast.ok .toast-barra{background:var(--good)}.toast.error .toast-barra{background:var(--crit)}@keyframes toastTiempo{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.nota-ayuda{align-items:center;gap:6px;display:flex}.nota-ayuda svg{flex:none;width:14px;height:14px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}