:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{flex-direction:column;width:100%;min-height:100svh;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}:root{--navy:#1e2632;--navy-2:#242c39;--sidebar:#e7eaef;--slate-50:#f8f9fb;--slate-100:#edeef2;--slate-200:#e1e3ea;--slate-300:#d4d8e1;--slate-400:#aeb4c0;--slate-500:#8a93a6;--slate-600:#5a6172;--slate-700:#3a4150;--green:#34d399;--green-soft:#dcfce7;--green-deep:#0e9f6e;--red:#dc2626;--red-soft:#fee2e2;--amber:#f59e0b;--amber-soft:#fef3c7;--amber-deep:#b45309;--blue:#1d4ed8;--blue-deep:#1e40af;--blue-soft:#dce6ff;--geo-losas:#1d4ed8;--geo-losas-soft:#dce6ff;--geo-muros:#0d9488;--geo-muros-soft:#d5f2ee;--geo-elementos:#ea580c;--geo-elementos-soft:#ffe7d6;--paper:#f3f4f7;--ink:#0a0d14}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,sans-serif}.mono{font-feature-settings:"tnum";font-family:IBM Plex Mono,monospace}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,select{outline:none;font-family:inherit}a{color:inherit;text-decoration:none}.app{grid-template-columns:260px 1fr;height:100vh;display:grid}.sidebar{background:var(--sidebar);border-right:1px solid var(--slate-300);flex-direction:column;display:flex;position:relative}.sidebar:after{content:"";background:repeating-linear-gradient(180deg,var(--slate-200) 0 6px,transparent 6px 12px);width:1px;position:absolute;top:0;bottom:0;right:0}.brand{border-bottom:1px solid var(--slate-300);flex-direction:column;align-items:flex-start;gap:9px;padding:24px 22px 20px;display:flex}.brand-mark{background:var(--ink);color:#fff;border-radius:9px;flex-shrink:0;place-items:center;width:36px;height:36px;display:grid;position:relative;overflow:hidden}.brand-mark:before{content:"";background:linear-gradient(135deg,#0000 49%,#ffffff1f 50%,#0000 51%) 0 0/8px 8px;position:absolute;inset:0}.brand-mark svg{z-index:1;position:relative}.brand-name{letter-spacing:-.02em;font-size:18px;font-weight:700;line-height:1}.brand-logo{object-fit:contain;object-position:left;width:auto;height:42px;display:block}.brand-meta{color:var(--slate-500);letter-spacing:.06em;margin-top:3px;font-family:IBM Plex Mono,monospace;font-size:10px}.new-cta{background:var(--blue);color:#fff;border-radius:10px;align-items:center;gap:10px;margin:16px 16px 6px;padding:11px 14px;font-size:13.5px;font-weight:500;transition:all .12s;display:flex;box-shadow:0 8px 18px -8px #1d4ed866,inset 0 1px #ffffff26}.new-cta:hover{background:var(--blue-deep)}.new-cta:disabled{opacity:.5;cursor:not-allowed}.new-cta svg{width:15px;height:15px}.new-cta .kbd{color:#ffffff8c;border:1px solid #ffffff26;border-radius:4px;margin-left:auto;padding:1px 5px;font-family:IBM Plex Mono,monospace;font-size:10px}.side-section{padding:14px 22px 6px}.side-label{letter-spacing:.16em;color:var(--slate-400);text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:10px}.nav{flex-direction:column;gap:1px;padding:0 12px;display:flex}.nav-item{color:var(--slate-600);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:12px;width:100%;padding:10px 12px;font-size:14px;font-weight:500;transition:all .15s;display:flex;position:relative}.nav-item .ico{opacity:.75;flex:none;width:18px;height:18px;display:inline-flex}.nav-item:hover:not(.disabled){background:var(--slate-50);color:var(--ink)}.nav-item.active{background:var(--blue);color:#fff;box-shadow:0 4px 12px -4px #1d4ed86b}.nav-item.active .ico{opacity:1}.nav-item.disabled{cursor:default;color:var(--slate-500)}.nav-item .count{color:var(--slate-500);margin-left:auto;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600}.nav-item.active .count{color:#ffffffe6}.nav-item .soon{letter-spacing:.08em;color:var(--slate-400);background:var(--slate-100);border-radius:4px;margin-left:auto;padding:2px 6px;font-family:IBM Plex Mono,monospace;font-size:9.5px}.side-status{border-top:1px solid var(--slate-100);flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto;padding:10px 16px 14px;display:flex}.ss-val{color:var(--slate-600);align-items:center;gap:6px;font-size:11px;font-weight:500;display:flex}.ss-foot{color:var(--slate-400);margin-left:auto;font-family:IBM Plex Mono,monospace;font-size:10px}.ss-dot{background:var(--green);border-radius:50%;flex-shrink:0;width:6px;height:6px;box-shadow:0 0 0 2px #22c55e2e}.main{background:var(--paper);flex-direction:column;min-width:0;display:flex;position:relative;overflow:hidden}.main:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(#0a0d1407 1px,#0000 1px),linear-gradient(90deg,#0a0d1407 1px,#0000 1px),linear-gradient(#0a0d140d 1px,#0000 1px),linear-gradient(90deg,#0a0d140d 1px,#0000 1px);background-position:-1px -1px;background-size:20px 20px,20px 20px,100px 100px,100px 100px;position:absolute;inset:0}.main>*{z-index:1;position:relative}.topbar{z-index:40;align-items:center;gap:18px;padding:18px 32px;display:flex;position:relative}.crumbs{color:var(--slate-500);align-items:center;gap:8px;font-size:13px;display:flex}.crumbs strong{color:var(--ink);font-weight:600}.crumbs .sep{color:var(--slate-300)}.search{border:1px solid var(--slate-200);background:#fff;border-radius:10px;flex:1;align-items:center;gap:10px;max-width:480px;margin-left:auto;padding:9px 14px;transition:all .15s;display:flex;position:relative;box-shadow:0 1px #0f172a05}.search:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px #0f172a14}.search>svg{width:16px;height:16px;color:var(--slate-400);flex:none}.search input{color:var(--ink);background:0 0;border:none;flex:1;min-width:0;font-size:13.5px}.search input::placeholder{color:var(--slate-400)}.search .kbd{color:var(--slate-500);background:var(--slate-100);border-radius:4px;padding:2px 6px;font-family:IBM Plex Mono,monospace;font-size:10px}.top-actions{align-items:center;gap:8px;display:flex}.icon-btn{border:1px solid var(--slate-200);width:38px;height:38px;color:var(--slate-600);background:#fff;border-radius:9px;place-items:center;transition:all .12s;display:grid;position:relative}.icon-btn:hover{background:var(--slate-50);color:var(--ink)}.icon-btn svg{width:18px;height:18px}.icon-btn .dot{background:var(--red);border-radius:50%;width:7px;height:7px;position:absolute;top:8px;right:8px;box-shadow:0 0 0 2px #fff}.user{border:1px solid var(--slate-200);cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:10px;padding:5px 5px 5px 12px;display:flex}.user:hover{background:var(--slate-50)}.user-info{flex-direction:column;align-items:flex-end;line-height:1.15;display:flex}.user-info strong{font-size:13px;font-weight:600}.user-info small{color:var(--slate-500);letter-spacing:.04em;font-family:IBM Plex Mono,monospace;font-size:10.5px}.avatar{background:var(--ink);color:#fff;border-radius:7px;place-items:center;width:30px;height:30px;font-size:12.5px;font-weight:700;display:grid}.page{flex:1;padding:0 32px 28px;position:relative;overflow-y:auto}.proj-sticky,.lam-sticky,.list-sticky{z-index:30;background:var(--paper);margin:0 -32px;padding:14px 32px 0;position:sticky;top:0}.back-link{color:var(--slate-500);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin-bottom:12px;padding:0;font-size:12.5px;font-weight:500;transition:all .12s;display:inline-flex}.back-link:hover{color:var(--ink)}.back-link svg{width:13px;height:13px}.btn-ghost{color:var(--slate-700);border:1px solid var(--slate-200);cursor:pointer;background:#fff;border-radius:9px;align-items:center;gap:8px;padding:10px 16px;font-size:13.5px;font-weight:500;transition:all .12s;display:inline-flex}.btn-ghost:hover:not(:disabled){background:var(--blue-soft);border-color:var(--blue);color:var(--blue)}.btn-ghost:disabled{opacity:.5;cursor:not-allowed}.btn-outline-blue{color:var(--blue);border:1px solid var(--blue);cursor:pointer;background:#fff;border-radius:9px;align-items:center;gap:8px;padding:10px 18px;font-size:13px;font-weight:600;transition:all .12s;display:inline-flex}.btn-outline-blue:hover{background:var(--blue-soft)}.btn-ghost svg{width:14px;height:14px}.btn-danger-soft{color:var(--red);border:1px solid var(--red-soft);cursor:pointer;background:#fff;border-radius:9px;align-items:center;gap:8px;padding:10px 16px;font-size:13.5px;font-weight:500;transition:all .12s;display:inline-flex}.btn-danger-soft:hover{background:var(--red-soft)}.btn-danger-soft svg{width:14px;height:14px}.btn-primary{background:var(--blue);color:#fff;cursor:pointer;border:none;border-radius:9px;align-items:center;gap:8px;padding:10px 16px;font-size:13.5px;font-weight:500;transition:all .12s;display:inline-flex;box-shadow:0 6px 14px -4px #1d4ed852}.status-chip{letter-spacing:.08em;text-transform:uppercase;border-radius:6px;flex:none;align-items:center;gap:6px;padding:5px 10px;font-family:IBM Plex Mono,monospace;font-size:10.5px;font-weight:600;display:inline-flex}.status-chip .d{border-radius:50%;width:6px;height:6px}.status-chip.st-studio{background:var(--slate-100);color:var(--slate-600)}.status-chip.st-studio .d{background:#94a3b8}.status-chip.st-obra{background:var(--blue-soft);color:var(--blue)}.status-chip.st-obra .d{background:var(--blue)}.status-chip.st-done{background:var(--green-soft);color:#15803d}.status-chip.st-done .d{background:var(--green)}.status-chip.st-risk{background:var(--red-soft);color:var(--red)}.status-chip.st-risk .d{background:var(--red)}.status-chip.st-pending{background:var(--amber-soft);color:var(--amber)}.status-chip.st-pending .d{background:var(--amber)}.proj-hero,.lam-hero{border:1px solid var(--slate-200);background:#fff;border-radius:18px;margin-bottom:18px;padding:24px 30px;position:relative}.proj-hero{grid-template-columns:1fr 320px;gap:32px;padding:26px 30px;display:grid}.lam-hero{grid-template-columns:1fr auto;align-items:center;gap:24px;margin-bottom:14px;padding:16px 24px;display:grid}.proj-hero:before,.lam-hero:before{content:"";background:var(--ink);border-radius:18px 0 0 18px;width:5px;position:absolute;top:0;bottom:0;left:0}.ph-eyebrow,.lh-eyebrow{letter-spacing:.14em;color:var(--slate-500);text-transform:uppercase;align-items:center;gap:10px;margin-bottom:10px;font-family:IBM Plex Mono,monospace;font-size:11px;display:flex}.ph-eyebrow:before,.lh-eyebrow:before{content:"";background:var(--ink);width:18px;height:1px}.lh-eyebrow a{color:var(--slate-500);cursor:pointer}.lh-eyebrow a:hover{color:var(--ink)}.version-eyebrow{color:var(--slate-500);align-items:center;gap:5px;display:inline-flex}.version-eyebrow b{color:var(--ink);font-weight:600}.version-eyebrow-estado{color:var(--slate-400);text-transform:none;letter-spacing:0;font-family:Inter,sans-serif;font-size:11.5px}.ph-title-row,.lh-title-row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.lh-partida{background:var(--blue-soft);color:var(--blue-deep);letter-spacing:.04em;border-radius:6px;flex:none;align-items:center;gap:6px;padding:5px 11px;font-family:IBM Plex Mono,monospace;font-size:11.5px;font-weight:600;display:inline-flex}.lh-partida svg{width:13px;height:13px}.ph-title{letter-spacing:-.03em;color:var(--ink);font-size:38px;font-weight:700;line-height:1}.lh-title{letter-spacing:-.02em;color:var(--ink);font-size:27px;font-weight:700;line-height:1.05}.ph-meta,.lh-sub{color:var(--slate-600);flex-wrap:wrap;gap:6px 18px;margin-top:14px;font-size:13px;display:flex}.lh-sub{color:var(--slate-500);gap:14px;margin-top:10px;font-size:14px}.ph-meta .m,.lh-sub .item{align-items:center;gap:7px;display:inline-flex}.ph-meta .m svg,.lh-sub .item svg{width:14px;height:14px;color:var(--slate-400)}.ph-meta .m b,.lh-sub b{color:var(--ink);font-weight:600}.ph-meta .m .mono,.lh-sub .mono{font-size:12px}.ph-actions{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.ph-progress{background:var(--slate-50);border:1px solid var(--slate-200);border-radius:13px;flex-direction:column;gap:12px;padding:18px;display:flex}.ph-progress-head{justify-content:space-between;align-items:center;display:flex}.ph-pct{letter-spacing:-.02em;font-family:IBM Plex Mono,monospace;font-size:34px;font-weight:600;line-height:1}.ph-pct small{color:var(--slate-400);margin-left:3px;font-size:14px;font-weight:500}.ph-pct.empty{color:var(--slate-400)}.ph-progress-lbl{letter-spacing:.14em;color:var(--slate-500);text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:9.5px}.ph-bar{border:1px solid var(--slate-200);background:#fff;border-radius:4px;height:8px;position:relative;overflow:hidden}.ph-bar:before{content:"";background:repeating-linear-gradient(90deg,#0000 0 11px,#0f172a0a 11px 12px);position:absolute;inset:0}.ph-fill{background:var(--blue);border-radius:4px;height:100%;transition:width .3s}.ph-dates{color:var(--slate-500);justify-content:space-between;font-family:IBM Plex Mono,monospace;font-size:11px;display:flex}.ph-dates .k{letter-spacing:.12em;text-transform:uppercase;color:var(--slate-500);font-size:9.5px}.ph-dates b{color:var(--ink);margin-top:2px;font-size:12.5px;font-weight:600;display:block}.lh-right{flex-direction:column;align-items:flex-end;gap:10px;display:flex}.multiplier{background:var(--slate-50);border:1px solid var(--slate-200);border-radius:11px;align-items:center;gap:10px;padding:10px 14px;display:flex}.multiplier .x{color:var(--ink);font-family:IBM Plex Mono,monospace;font-size:24px;font-weight:600;line-height:1}.multiplier .info{letter-spacing:.12em;color:var(--slate-500);text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:10px}.multiplier .info b{color:var(--ink);letter-spacing:0;text-transform:none;margin-top:2px;font-size:12px;font-weight:600;display:block}.kpis,.stats{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px;display:grid}.kpi,.stat{border:1px solid var(--slate-200);background:#fff;border-radius:12px;align-items:flex-start;gap:12px;padding:14px 16px;display:flex;position:relative;overflow:hidden}.kpi-ico,.stat-ico{background:var(--slate-50);border:1px solid var(--slate-200);width:38px;height:38px;color:var(--ink);border-radius:9px;flex:none;place-items:center;display:grid}.kpi-ico svg,.stat-ico svg{width:18px;height:18px}.kpi-lbl,.stat-lbl{letter-spacing:.12em;color:var(--slate-500);text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:10px}.kpi-val,.stat-val{letter-spacing:-.01em;margin-top:3px;font-family:IBM Plex Mono,monospace;font-size:22px;font-weight:600;line-height:1.1}.kpi-val small,.stat-val small{color:var(--slate-400);margin-left:3px;font-size:11px;font-weight:500}.kpi-val.empty,.stat-val.empty{color:var(--slate-400)}.kpi-sub,.stat-sub{color:var(--slate-500);margin-top:2px;font-family:IBM Plex Mono,monospace;font-size:11px}.tabs{border-bottom:1px solid var(--slate-200);align-items:center;gap:2px;margin-bottom:18px;display:flex;position:relative}.tab{color:var(--slate-500);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:11px 16px;font-size:13.5px;font-weight:500;transition:all .12s;display:flex}.tab svg{flex:none;width:14px;height:14px}.tab:hover:not(:disabled){color:var(--ink)}.tab.active{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}.tab:disabled{cursor:default}.tab .ct{color:var(--slate-400);background:var(--slate-100);border-radius:4px;padding:1px 6px;font-family:IBM Plex Mono,monospace;font-size:11px}.tab.active .ct{background:var(--ink);color:#fff}.tab .soon{letter-spacing:.08em;color:var(--slate-400);background:var(--slate-100);border-radius:4px;padding:2px 6px;font-family:IBM Plex Mono,monospace;font-size:9.5px}.lam-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.lam-title{letter-spacing:-.01em;font-size:18px;font-weight:600}.lam-title .ct{color:var(--slate-500);margin-left:8px;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:500}.lam-bar .spacer{flex:1}.partida-folders{flex-direction:column;gap:10px;margin-bottom:24px;display:flex}.partida-folder{border:1px solid var(--slate-200);background:#fff;border-radius:12px;overflow:hidden}.partida-folder.abierta{box-shadow:0 6px 20px -12px #0b12202e}.partida-folder-head{text-align:left;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:14px 18px;font-family:inherit;display:flex}.partida-folder-head:hover{background:var(--slate-50)}.partida-folder-head .pf-main{cursor:pointer;text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:12px;min-width:0;padding:0;font-family:inherit;display:flex}.partida-folder-head .pf-zip{border:1px solid var(--slate-200);color:var(--slate-500);cursor:pointer;white-space:nowrap;background:#fff;border-radius:8px;align-items:center;gap:6px;padding:6px 11px;font-family:inherit;font-size:12px;font-weight:600;transition:all .12s;display:inline-flex}.partida-folder-head .pf-zip:hover:not(:disabled){border-color:var(--blue);color:var(--blue-deep);background:var(--blue-soft)}.partida-folder-head .pf-zip:disabled{opacity:.6;cursor:wait}.partida-folder-head .pf-ico{color:var(--blue);place-items:center;display:grid}.partida-folder-head .pf-ico svg{width:18px;height:18px}.partida-folder-head .pf-name{color:var(--ink);font-family:IBM Plex Mono,monospace;font-size:14.5px;font-weight:600}.partida-folder-head .pf-count{color:var(--slate-500);font-size:12px}.partida-folder-head .pf-open{color:var(--ink);cursor:pointer;background:0 0;border:none;align-items:center;gap:5px;padding:0;font-family:inherit;font-size:12.5px;font-weight:600;display:inline-flex}.partida-folder .lam-list{margin-bottom:0;padding:2px 14px 14px}.lam-list{flex-direction:column;gap:10px;margin-bottom:24px;display:flex}.lam-card{border:1px solid var(--slate-200);cursor:pointer;color:inherit;background:#fff;border-radius:14px;grid-template-columns:64px 1fr auto auto;align-items:center;gap:18px;padding:16px 18px;font-family:inherit;transition:all .15s;display:grid;position:relative}.lam-card:hover{border-color:var(--slate-300);transform:translateY(-1px);box-shadow:0 14px 26px -18px #0f172a38}.lam-card-draggable{grid-template-columns:22px 64px 1fr auto auto}.lam-card-draggable.is-dragging{opacity:.4;box-shadow:none;transform:none}.lam-card-draggable.is-drag-over{border-color:var(--ink);background:#0f172a08;border-style:dashed}.lam-drag-handle{width:22px;height:32px;color:var(--slate-300);cursor:grab;background:0 0;border:none;border-radius:5px;place-items:center;transition:color .12s;display:grid}.lam-drag-handle:active{cursor:grabbing}.lam-card-draggable:hover .lam-drag-handle{color:var(--slate-500)}.lam-drag-handle:hover{color:var(--ink)!important}.lam-drag-handle svg{width:14px;height:14px}.lam-plate{background:var(--ink);color:#fff;border-radius:11px;flex:none;place-items:center;width:64px;height:64px;display:grid;position:relative;overflow:hidden}.lam-plate:before{content:"";background:linear-gradient(135deg,#0000 49%,#ffffff0d 50%,#0000 51%) 0 0/10px 10px;position:absolute;inset:0}.lam-plate svg{opacity:.95;width:34px;height:34px;position:relative}.lam-info{text-align:left;min-width:0}.lam-name-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.lam-name{letter-spacing:-.01em;font-size:18px;font-weight:700}.lam-sub{color:var(--slate-500);flex-wrap:wrap;align-items:center;gap:14px;margin-top:3px;font-size:12.5px;display:flex}.lam-sub .item{align-items:center;gap:5px;display:inline-flex}.lam-sub .item svg{width:12px;height:12px;color:var(--slate-400)}.lam-sub b{color:var(--ink);font-weight:600}.lam-sub .mono{font-family:IBM Plex Mono,monospace;font-size:11.5px}.lam-stats{border-left:1px dashed var(--slate-200);align-items:center;gap:24px;padding:0 18px;display:flex}.lam-stat{text-align:right}.lam-stat .k{letter-spacing:.12em;color:var(--slate-500);text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:9.5px}.lam-stat .v{color:var(--ink);margin-top:2px;font-family:IBM Plex Mono,monospace;font-size:15px;font-weight:600}.lam-stat .v small{color:var(--slate-400);margin-left:2px;font-size:11px;font-weight:500}.lam-stat .v.empty{color:var(--slate-400);font-weight:500}.lam-arrow{background:var(--slate-50);width:36px;height:36px;color:var(--slate-500);border-radius:9px;place-items:center;transition:all .12s;display:grid}.lam-arrow svg{width:14px;height:14px}.lam-archivar{color:var(--slate-400);cursor:pointer;background:0 0;border:none;border-radius:8px;place-items:center;padding:7px;transition:all .12s;display:grid}.lam-archivar:hover{background:var(--red-soft);color:var(--red)}.lam-archivar svg{width:15px;height:15px}.lam-card-archivada{opacity:.72;background:var(--slate-50)}.lam-card-archivada .lam-name{color:var(--slate-500)}.lam-card:hover .lam-arrow{background:var(--ink);color:#fff}.lam-new,.add-partida{border:1.5px dashed var(--slate-300);color:var(--slate-500);cursor:pointer;background:0 0;border-radius:14px;justify-content:center;align-items:center;gap:10px;padding:18px;font-size:13.5px;font-weight:500;transition:all .12s;display:flex}.lam-new:hover,.add-partida:hover{border-color:var(--ink);color:var(--ink);background:#0f172a05}.lam-new:disabled{opacity:.5;cursor:not-allowed}.lam-new svg,.add-partida svg{width:15px;height:15px}.lam-section{grid-template-columns:1fr 340px;gap:18px;display:grid}.lam-section>div{min-width:0}.activity{border:1px solid var(--slate-200);background:#fff;border-radius:14px;align-self:start;min-width:0;padding:18px 20px}.activity h4{letter-spacing:-.01em;align-items:center;gap:8px;margin-bottom:14px;font-size:13.5px;font-weight:600;display:flex}.activity h4 svg{width:15px;height:15px;color:var(--slate-500);flex:none}.activity h4 .ct{color:var(--slate-500);margin-left:auto;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500}.activity-empty{color:var(--slate-400);font-size:12.5px;line-height:1.5}.version-select{border:1px solid var(--slate-200);background:var(--slate-50);color:var(--ink);cursor:pointer;border-radius:6px;padding:2px 6px;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600}.version-select:focus{border-color:var(--ink);outline:none;box-shadow:0 0 0 3px #0f172a14}.status-chip.estado-clickeable{cursor:pointer;border:none;font-family:IBM Plex Mono,monospace;transition:filter .12s}.status-chip.estado-clickeable:not(:disabled):hover{filter:brightness(.95)}.status-chip.estado-clickeable:disabled{cursor:default}.estado-menu{z-index:10;border:1px solid var(--slate-200);background:#fff;border-radius:10px;flex-direction:column;gap:4px;min-width:200px;padding:8px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 14px 28px -10px #0f172a2e}.estado-menu-label{letter-spacing:.12em;color:var(--slate-500);text-transform:uppercase;padding:4px 6px;font-family:IBM Plex Mono,monospace;font-size:9.5px}.estado-menu-item{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;align-items:center;padding:6px;display:flex}.estado-menu-item:hover{background:var(--slate-50)}.timeline{flex-direction:column;padding-left:18px;display:flex;position:relative}.timeline:before{content:"";background:var(--slate-200);width:1px;position:absolute;top:6px;bottom:6px;left:5px}.tl-item{padding:6px 0 14px;position:relative}.tl-item:before{content:"";border:2px solid var(--ink);background:#fff;border-radius:50%;width:9px;height:9px;position:absolute;top:9px;left:-17px}.tl-item.dim:before{border-color:var(--slate-300)}.tl-when{color:var(--slate-500);text-transform:uppercase;letter-spacing:.08em;font-family:IBM Plex Mono,monospace;font-size:10.5px}.tl-what{color:var(--ink);margin-top:3px;font-size:13px;line-height:1.4}.tl-what b{font-weight:600}.tl-who{color:var(--slate-500);margin-top:2px;font-family:IBM Plex Mono,monospace;font-size:11.5px}.actions-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:18px;display:flex}.actions-row .spacer{flex:1}.mode-toggle{border:1px solid var(--slate-200);background:#fff;border-radius:10px;gap:2px;padding:3px;display:flex}.mode-toggle button{color:var(--slate-500);cursor:pointer;border-radius:7px;align-items:center;gap:7px;padding:7px 13px;font-size:13px;font-weight:500;transition:all .12s;display:flex}.mode-toggle button.on{background:var(--ink);color:#fff;box-shadow:0 4px 10px -3px #0f172a4d}.mode-toggle button svg{width:13px;height:13px}.specs-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.specs-title{letter-spacing:-.01em;font-size:20px;font-weight:600}.specs-title .ct{color:var(--slate-500);margin-left:8px;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:500}.specs-actions{align-items:center;gap:8px;display:flex}.partidas{flex-direction:column;gap:12px;margin-bottom:24px;display:flex}.pcard{border:1px solid var(--slate-200);background:#fff;border-radius:14px;transition:all .15s;overflow:hidden}.pcard:hover{border-color:var(--slate-300);box-shadow:0 12px 24px -18px #0f172a2e}.pcard-head{background:var(--slate-50);border-bottom:1px solid var(--slate-200);grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:14px 18px;display:grid}.p-code{letter-spacing:.04em;color:var(--ink);align-items:center;gap:8px;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600;display:inline-flex}.p-code .num{background:var(--ink);color:#fff;border-radius:7px;place-items:center;width:26px;height:26px;font-size:11px;font-weight:700;display:grid}.p-name{letter-spacing:-.01em;color:var(--ink);font-size:15px;font-weight:600}.p-name small{color:var(--slate-500);letter-spacing:0;margin-top:2px;font-family:IBM Plex Mono,monospace;font-size:11.5px;font-weight:400;display:block}.p-unit{align-items:center;gap:8px;display:inline-flex}.unit-chip{border:1px solid var(--slate-200);color:var(--ink);background:#fff;border-radius:7px;align-items:center;gap:6px;padding:5px 10px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;display:inline-flex}.unit-chip .d{background:var(--blue);border-radius:2px;width:7px;height:7px}.unit-chip.lineal .d{background:#7c3aed}.unit-chip small{color:var(--slate-500);margin-left:4px;font-weight:500}.pcard-body{flex-direction:column;gap:10px;padding:16px 18px;display:flex}.pcard-empty{color:var(--slate-400);text-align:center;padding:16px 18px;font-size:13px}.material-row{background:var(--slate-50);border-radius:8px;grid-template-columns:24px 1fr auto;align-items:center;gap:14px;padding:8px 10px;transition:all .12s;display:grid}.material-row:hover{border-color:var(--slate-200);background:#fff}.mat-num{color:var(--slate-400);border:1px solid var(--slate-200);background:#fff;border-radius:5px;place-items:center;width:24px;height:24px;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;display:grid}.mat-name{color:var(--ink);font-size:13.5px;font-weight:500}.mat-qty{color:var(--ink);align-items:center;gap:8px;font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:600;display:flex}.mat-qty .unit{color:var(--slate-500);font-size:11px;font-weight:500}.pcard.edit .pcard-head{background:#fff}.pcard.edit .pcard-body{background:var(--slate-50)}.edit-grid{border-bottom:1px solid var(--slate-200);background:#fff;grid-template-columns:1fr 220px;gap:14px;padding:16px 18px;display:grid}.e-field{flex-direction:column;gap:6px;display:flex}.e-field label{letter-spacing:.12em;color:var(--slate-500);text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:10px}.e-field input{border:1px solid var(--slate-200);color:var(--ink);background:#fff;border-radius:8px;padding:10px 12px;font-family:Inter,sans-serif;font-size:13.5px}.e-field input:focus{border-color:var(--ink);box-shadow:0 0 0 3px #0f172a14}.e-field .suffix{position:relative}.e-field .suffix input{padding-right:38px}.e-field .suffix .s{color:var(--slate-500);font-family:IBM Plex Mono,monospace;font-size:11px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.unit-radio{background:var(--slate-100);border-radius:8px;gap:2px;padding:3px;display:flex}.unit-radio label{cursor:pointer;flex:1;min-width:0}.unit-radio input{display:none}.unit-radio span{color:var(--slate-500);text-align:left;border-radius:6px;grid-template-columns:7px 1fr;justify-content:center;align-items:center;gap:8px;padding:7px 12px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;line-height:1;transition:all .12s;display:grid}.unit-radio input:checked+span{color:var(--ink);background:#fff;box-shadow:0 1px 2px #0f172a0f}.unit-radio span .d{background:var(--slate-300);border-radius:2px;width:7px;height:7px}.unit-radio input:checked+span .area{background:var(--blue)}.unit-radio input:checked+span .lineal{background:#7c3aed}.unit-radio label.locked{cursor:not-allowed;opacity:.45}.unit-radio label.locked span{font-style:italic}.materials-edit{flex-direction:column;gap:8px;padding:16px 18px;display:flex}.me-head{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.me-head .lbl{letter-spacing:.12em;color:var(--slate-500);text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:10px}.me-head button{color:var(--blue);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;font-size:12.5px;font-weight:600;display:inline-flex}.me-head button:hover{text-decoration:underline}.me-head button svg{width:12px;height:12px}.mat-edit{border:1px solid var(--slate-200);background:#fff;border-radius:9px;grid-template-columns:1fr 100px 110px 36px;align-items:center;gap:8px;padding:8px 10px;display:grid}.mat-edit input,.mat-edit select{background:var(--slate-50);color:var(--ink);border:1px solid #0000;border-radius:6px;width:100%;padding:7px 10px;font-family:Inter,sans-serif;font-size:13px}.mat-edit input:hover,.mat-edit select:hover{border-color:var(--slate-200);background:#fff}.mat-edit input:focus,.mat-edit select:focus{border-color:var(--ink);background:#fff;box-shadow:0 0 0 2px #0f172a14}.mat-edit .qty input{text-align:right;font-family:IBM Plex Mono,monospace}.mat-edit .rm{width:30px;height:30px;color:var(--slate-400);cursor:pointer;background:0 0;border:none;border-radius:7px;place-items:center;transition:all .12s;display:grid}.mat-edit .rm:hover{background:var(--red-soft);color:var(--red)}.mat-edit .rm svg{width:14px;height:14px}.mat-edit-bloqueada input[readonly],.mat-edit-bloqueada select:disabled{background:var(--slate-100);color:var(--slate-500);cursor:not-allowed;border-color:#0000}.mat-edit-bloqueada input[readonly]:hover,.mat-edit-bloqueada select:disabled:hover{background:var(--slate-100);border-color:#0000}.pcard-foot{border-top:1px dashed var(--slate-200);background:#fff;justify-content:flex-end;gap:6px;padding:10px 18px;display:flex}.pcard-foot button{color:var(--slate-500);cursor:pointer;background:0 0;border:none;border-radius:7px;align-items:center;gap:5px;padding:6px 10px;font-size:12px;font-weight:500;display:inline-flex}.pcard-foot button:hover{background:var(--slate-100);color:var(--ink)}.pcard-foot .danger:hover{background:var(--red-soft);color:var(--red)}.pcard-foot svg{width:12px;height:12px}.save-bar{background:var(--ink);color:#fff;z-index:10;border:1px solid #ffffff14;border-radius:14px;flex-wrap:wrap;align-items:center;gap:18px;margin:24px 0 0;padding:14px 20px;display:flex;position:sticky;bottom:20px;box-shadow:0 20px 40px -15px #0f172a80}.save-bar .summary{align-items:center;gap:16px;font-size:13px;display:flex}.save-bar .summary .badge{background:#ffffff1a;border-radius:6px;align-items:center;gap:6px;padding:4px 9px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;display:inline-flex}.save-bar .summary .badge .d{background:#fbbf24;border-radius:50%;width:6px;height:6px}.save-bar .spacer{flex:1}.save-bar button{cursor:pointer;border:none;border-radius:9px;align-items:center;gap:7px;padding:9px 16px;font-size:13.5px;font-weight:500;transition:all .12s;display:inline-flex}.save-bar .cancel{color:#ffffffbf;background:0 0;border:1px solid #ffffff26}.save-bar .cancel:hover{color:#fff;background:#ffffff14}.save-bar .save{background:var(--green);color:#fff;box-shadow:0 6px 14px -4px #22c55e80}.save-bar .save:hover:not(:disabled){filter:brightness(1.05)}.save-bar .save:disabled{opacity:.5;cursor:not-allowed}.save-bar .save svg{width:14px;height:14px}.modtabs{border-bottom:1px solid var(--slate-200);gap:6px;margin-bottom:14px;display:flex}.modtab{color:var(--slate-500);cursor:pointer;background:0 0;border:1px solid #0000;border-bottom:none;border-radius:10px 10px 0 0;align-items:center;gap:8px;padding:9px 15px;font-size:13.5px;font-weight:500;transition:all .12s;display:inline-flex;position:relative;top:1px}.modtab:hover{color:var(--ink);background:var(--slate-50)}.modtab svg{width:15px;height:15px}.modtab.active{color:var(--ink);border-color:var(--slate-200);background:#fff;border-bottom:1px solid #fff;font-weight:600}.modtab-count{background:var(--slate-100);color:var(--slate-500);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:600}.modtab.active .modtab-count{background:var(--ink);color:#fff}.modtab.geo-areas.active{color:var(--geo-losas);box-shadow:inset 0 2px 0 var(--geo-losas)}.modtab.geo-muros.active{color:var(--geo-muros);box-shadow:inset 0 2px 0 var(--geo-muros)}.modtab.geo-bloques.active{color:var(--geo-elementos);box-shadow:inset 0 2px 0 var(--geo-elementos)}.modtab.geo-areas.active .modtab-count{background:var(--geo-losas)}.modtab.geo-muros.active .modtab-count{background:var(--geo-muros)}.modtab.geo-bloques.active .modtab-count{background:var(--geo-elementos)}.modtab.geo-areas:hover:not(.active){color:var(--geo-losas)}.modtab.geo-muros:hover:not(.active){color:var(--geo-muros)}.modtab.geo-bloques:hover:not(.active){color:var(--geo-elementos)}.capas-validar{border:1px solid var(--slate-200);background:#fff;border-radius:12px;flex-direction:column;gap:4px;margin-bottom:12px;padding:6px;display:flex}.capa-check{cursor:pointer;border:1px solid #0000;border-radius:8px;grid-template-columns:18px 1fr auto auto auto;align-items:center;gap:14px;padding:10px 12px;transition:all .12s;display:grid}.capa-check:hover{background:var(--slate-50)}.capa-check.activa{background:#0f172a06}.capa-check.activa:hover{background:#0f172a0d}.capa-check input{accent-color:var(--ink);cursor:pointer;width:16px;height:16px}.capa-check .capa-nombre{color:var(--ink);text-overflow:ellipsis;min-width:0;font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:600;overflow:hidden}.capa-check:not(.activa) .capa-nombre{color:var(--slate-400)}.capa-check .capa-meta{color:var(--slate-500);white-space:nowrap;font-size:11.5px}.capa-check .capa-meta .mono{color:var(--ink);margin-right:3px;font-weight:600}.capa-check:not(.activa) .capa-meta,.capa-check:not(.activa) .capa-meta .mono{color:var(--slate-400);font-weight:500}.capa-check-all{border-bottom:1px solid var(--slate-200);background:var(--slate-50);border-radius:8px 8px 0 0;margin-bottom:2px}.capa-check-all:hover{background:var(--slate-100)}.capa-check-all .capa-nombre{text-transform:uppercase;letter-spacing:.06em;color:var(--slate-600);font-family:Inter,sans-serif;font-size:11px;font-weight:700}.capa-check-all .capa-meta{margin-left:auto;font-weight:500}.modal.modal-wide{width:94vw;max-width:1060px}.modal.modal-xxl{width:96vw;max-width:1400px}.modal.modal-wizard{width:640px;max-width:100%}.wizard-steps{align-items:flex-start;gap:6px;margin-top:16px;display:flex;position:relative}.wizard-line{z-index:0;background:#ffffff24;border-radius:2px;height:2px;position:absolute;top:14px;left:16.66%;right:16.66%}.wizard-line-fill{background:var(--blue);border-radius:2px;height:100%;transition:width .35s}.wizard-step{cursor:default;z-index:1;border-radius:8px;flex-direction:column;flex:1;align-items:center;gap:6px;padding:0 4px;transition:all .12s;display:flex;position:relative}.wizard-step.completo{cursor:pointer}.wizard-step-num{color:#ffffff8c;background:#1a2230;border:1.5px solid #ffffff24;border-radius:50%;place-items:center;width:28px;height:28px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:700;transition:all .16s;display:grid}.wizard-step-num svg{stroke-width:3px;width:14px;height:14px}.wizard-step.activo .wizard-step-num{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:0 0 0 4px #1d4ed847}.wizard-step.completo .wizard-step-num{background:var(--blue);color:#fff;border-color:var(--blue)}.wizard-step-label{letter-spacing:.08em;color:#ffffff80;text-transform:uppercase;text-align:center;font-family:IBM Plex Mono,monospace;font-size:9px;transition:all .16s}.wizard-step.activo .wizard-step-label{color:#fff}.wizard-step.completo .wizard-step-label{color:#fffc}.editor-niveles{flex-direction:column;gap:8px;display:flex}.editor-niveles-empty{color:var(--slate-500);background:var(--slate-50);border:1px dashed var(--slate-200);border-radius:9px;padding:12px 14px;font-size:12.5px;line-height:1.5}.editor-niveles-lista{flex-direction:column;gap:6px;max-height:280px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.editor-niveles-item{border:1px solid var(--slate-200);background:#fff;border-radius:8px;align-items:center;gap:6px;padding:6px 8px;display:flex}.editor-niveles-item>input{flex:1;min-width:0}.editor-niveles-handle{color:var(--slate-300);place-items:center;display:grid}.editor-niveles-handle svg{width:14px;height:14px}.editor-niveles-orden{color:var(--slate-500);text-align:center;font-family:IBM Plex Mono,monospace;font-size:10.5px}.editor-niveles-item input{background:var(--slate-50);color:var(--ink);border:1px solid #0000;border-radius:6px;width:100%;padding:6px 10px;font-family:Inter,sans-serif;font-size:13px}.editor-niveles-item input:hover{border-color:var(--slate-200);background:#fff}.editor-niveles-item input:focus{border-color:var(--ink);background:#fff;outline:none;box-shadow:0 0 0 2px #0f172a14}.editor-niveles-repite{color:var(--slate-500);flex:none;align-items:center;gap:4px;font-size:11px;display:flex}.editor-niveles-repite>span{color:var(--ink);font-family:IBM Plex Mono,monospace;font-weight:600}.editor-niveles-repite input{text-align:center;width:46px;padding:6px}.editor-niveles-repite small{color:var(--slate-400)}.editor-niveles-btn{width:26px;height:26px;color:var(--slate-500);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;transition:all .12s;display:grid}.editor-niveles-btn svg{width:13px;height:13px}.editor-niveles-btn:hover:not(:disabled){background:var(--slate-100);color:var(--ink)}.editor-niveles-btn:disabled{opacity:.3;cursor:default}.editor-niveles-btn-danger:hover:not(:disabled){background:var(--red-soft);color:var(--red)}.editor-niveles-add{border:1.5px dashed var(--slate-300);color:var(--slate-600);cursor:pointer;background:0 0;border-radius:7px;align-self:flex-start;align-items:center;gap:6px;padding:8px 12px;font-size:12.5px;font-weight:500;transition:all .12s;display:inline-flex}.editor-niveles-add:hover{border-color:var(--ink);color:var(--ink);background:#0f172a05}.editor-niveles-add svg{width:13px;height:13px}.editor-laminas-plan{flex-direction:column;gap:10px;display:flex}.lp-lista{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.lp-item{border:1px solid var(--slate-200);background:#fff;border-radius:9px;flex-direction:column;gap:9px;padding:10px 12px;display:flex}.lp-head{align-items:center;gap:8px;display:flex}.lp-ico{color:var(--slate-400);display:inline-flex}.lp-ico svg{width:15px;height:15px}.lp-nombre{border:1px solid var(--slate-200);border-radius:7px;flex:1;padding:7px 10px;font-size:13.5px}.lp-aplica{flex-direction:column;gap:8px;padding-left:23px;display:flex}.lp-aplica-row{align-items:center;gap:8px;display:flex}.lp-aplica-lbl{color:var(--slate-500);font-size:12px}.lp-aplica-btn{border:1px solid var(--slate-200);min-width:150px;color:var(--ink);cursor:pointer;font-variant-numeric:tabular-nums;background:#fff;border-radius:7px;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;font-size:12.5px;font-weight:600;transition:all .12s;display:inline-flex}.lp-aplica-btn svg{width:14px;height:14px;color:var(--slate-400);transition:all .15s}.lp-aplica-btn:hover{border-color:var(--slate-400)}.lp-aplica-btn.on{border-color:var(--blue)}.lp-aplica-btn.on svg{color:var(--blue);transform:rotate(180deg)}.lp-aplica-btn.warn{color:#b45309;background:#fffbeb;border-color:#f5c77e}.lp-aplica-x{color:var(--slate-400);font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600}.lp-pop{background:var(--slate-50);border:1px solid var(--slate-200);border-radius:10px;flex-direction:column;gap:10px;padding:12px;display:flex}.lp-pop-grp{flex-direction:column;gap:6px;display:flex}.lp-pop-glbl{letter-spacing:.07em;text-transform:uppercase;color:var(--slate-400);font-family:IBM Plex Mono,monospace;font-size:9px}.lp-pop-chips{flex-wrap:wrap;gap:6px;display:flex}.lp-pop-chip{border:1px solid var(--slate-200);color:var(--slate-500);cursor:pointer;font-variant-numeric:tabular-nums;background:#fff;border-radius:6px;padding:4px 9px;font-size:12px;font-weight:600;transition:all .12s}.lp-pop-chip:hover:not(.on){border-color:var(--ink);color:var(--ink)}.lp-pop-chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}.lp-pop-chip.lp-sub:not(.on){border-color:var(--blue-soft);color:var(--blue)}.lp-pop-chip.lp-sub.on{background:var(--blue);border-color:var(--blue)}.lp-pop-chip.lp-cub:not(.on){border-color:var(--green-soft);color:var(--green-deep)}.lp-pop-chip.lp-cub.on{background:var(--green-deep);border-color:var(--green-deep)}.lp-pop-chip.off,.lp-pop-chip.lp-sub.off,.lp-pop-chip.lp-cub.off{opacity:.45;cursor:not-allowed;background:var(--slate-50);color:var(--slate-400);border-color:var(--slate-200);border-style:dashed;text-decoration:line-through}.lp-pop-chip.off:hover{border-color:var(--slate-200);color:var(--slate-400)}.lp-pop-acts{border-top:1px solid var(--slate-100);gap:14px;padding-top:9px;display:flex}.lp-pop-acts button{color:var(--blue);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;font-weight:600}.lp-pop-acts button:hover{color:var(--blue-deep)}.lp-pop-acts button.danger{color:var(--slate-400);margin-left:auto}.lp-pop-acts button.danger:hover{color:var(--red)}.lp-pop-foot{border-top:1px solid var(--slate-100);justify-content:flex-end;padding-top:10px;display:flex}.lp-pop-ok{background:var(--blue);color:#fff;cursor:pointer;border:none;border-radius:7px;align-items:center;gap:6px;padding:6px 14px;font-size:12.5px;font-weight:600;transition:all .12s;display:inline-flex}.lp-pop-ok:hover{background:var(--blue-deep)}.lp-pop-ok svg{width:13px;height:13px}.niveles-inputs{flex-wrap:wrap;align-items:flex-end;gap:18px;margin-bottom:6px;display:flex}.niveles-cubierta{color:var(--green-deep);padding-bottom:10px;font-size:12.5px;font-weight:600}.lp-base{border-top:1px dashed var(--slate-200);flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px;padding-top:8px;display:flex}.lp-base-btn{color:var(--ink);border:1px solid var(--slate-300);cursor:pointer;background:#fff;border-radius:7px;align-items:center;gap:6px;padding:5px 11px;font-size:12px;font-weight:600;transition:all .12s;display:inline-flex}.lp-base-btn:hover{border-color:var(--ink);background:var(--slate-50)}.lp-base-btn svg{width:13px;height:13px}.lp-base-btn.req{color:#b45309;background:#fffbeb;border-color:#f5c77e}.lp-base-btn.req:hover{background:#fef3c7;border-color:#d97706}.lp-base-ok{color:var(--green-deep);background:var(--green-soft);border-radius:7px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;font-weight:600;display:inline-flex}.lp-base-ok svg{width:13px;height:13px}.lp-base-quitar{color:var(--slate-400);cursor:pointer;background:0 0;border:none;padding:2px;display:inline-flex}.lp-base-quitar:hover{color:var(--red)}.lp-base-req{color:#b45309;align-items:center;gap:5px;font-size:11px;font-weight:600;display:inline-flex}.lp-base-req svg{width:12px;height:12px}.editor-partidas-geom{flex-direction:column;gap:10px;display:flex}.pg-lista{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.pg-item{border:1px solid var(--slate-200);background:#fff;border-radius:9px;flex-direction:column;gap:9px;padding:10px 12px;display:flex}.pg-head{align-items:center;gap:8px;display:flex}.pg-nombre{border:1px solid var(--slate-200);border-radius:7px;flex:1;padding:7px 10px;font-size:13.5px}.pg-geoms{flex-wrap:wrap;gap:8px;display:flex}.pg-geom{border:1.5px solid var(--slate-200);color:var(--slate-500);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:600;transition:all .12s;display:inline-flex}.pg-geom svg{width:14px;height:14px}.pg-geom:hover:not(.on):not(:disabled){border-color:var(--blue);color:var(--blue)}.pg-geom:disabled{cursor:not-allowed;opacity:.55}.pg-geom.on:disabled{opacity:.7}.pg-geom.on{border-color:var(--blue);background:var(--blue);color:#fff}.editor-partidas-m2{flex-direction:column;gap:10px;display:flex}.partidas-m2-card{border:1px solid var(--slate-200);background:#fff;border-radius:10px;padding:10px 14px;transition:all .12s}.partidas-m2-card.activa{border-color:var(--ink);box-shadow:0 0 0 2px #0f172a0f}.partidas-m2-head{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:flex}.partidas-m2-head input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:var(--ink)}.partidas-m2-title{color:var(--ink);font-size:14px;font-weight:600}.partidas-m2-tags{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.tag-chip{background:var(--slate-50);color:var(--slate-600);border:1px solid var(--slate-200);cursor:pointer;border-radius:999px;padding:5px 12px;font-family:Inter,sans-serif;font-size:12px;transition:all .12s}.tag-chip:hover{border-color:var(--slate-400);color:var(--ink)}.tag-chip.marcado{background:var(--ink);color:#fff;border-color:var(--ink)}.editor-materiales-m2-grid{grid-template-columns:18px 26px minmax(120px,.8fr) minmax(280px,2.4fr) minmax(110px,.9fr) 28px 28px 28px!important}.editor-materiales-fila select{background:var(--slate-50);color:var(--ink);cursor:pointer;border:1px solid #0000;border-radius:6px;width:100%;min-width:0;padding:6px 10px;font-family:Inter,sans-serif;font-size:13px}.editor-materiales-fila select:hover{border-color:var(--slate-200);background:#fff}.editor-materiales-fila select:focus{border-color:var(--ink);background:#fff;outline:none;box-shadow:0 0 0 2px #0f172a14}.editor-materiales{flex-direction:column;gap:8px;display:flex}.editor-materiales-tabla{flex-direction:column;gap:6px;max-height:320px;display:flex;overflow-y:auto}.editor-materiales-header,.editor-materiales-fila{grid-template-columns:18px 26px minmax(130px,1.5fr) minmax(80px,.9fr) minmax(70px,.8fr) minmax(90px,1fr) minmax(90px,1fr) minmax(90px,1fr) 28px 28px 28px;align-items:center;gap:6px;display:grid}.editor-materiales-header{letter-spacing:.1em;color:var(--slate-500);text-transform:uppercase;padding:4px 8px;font-family:IBM Plex Mono,monospace;font-size:9.5px;font-weight:600}.editor-materiales-fila{border:1px solid var(--slate-200);background:#fff;border-radius:8px;padding:6px 8px}.editor-materiales-fila input{background:var(--slate-50);color:var(--ink);border:1px solid #0000;border-radius:6px;width:100%;min-width:0;padding:6px 10px;font-family:Inter,sans-serif;font-size:13px}.editor-materiales-fila input:hover{border-color:var(--slate-200);background:#fff}.editor-materiales-fila input:focus{border-color:var(--ink);background:#fff;outline:none;box-shadow:0 0 0 2px #0f172a14}.niveles-selector{background:var(--slate-50);border:1px solid var(--slate-200);border-radius:9px;flex-direction:column;gap:4px;max-height:240px;padding:10px;display:flex;overflow-y:auto}.nivel-check{border:1px solid var(--slate-200);cursor:pointer;background:#fff;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;transition:all .12s;display:flex}.nivel-check:hover{border-color:var(--slate-300)}.nivel-check.activo{background:var(--ink);color:#fff;border-color:var(--ink)}.nivel-check input{accent-color:var(--ink)}.nivel-check .nivel-orden{opacity:.7;min-width:26px;font-family:IBM Plex Mono,monospace;font-size:10.5px}.nivel-check .nivel-nombre{flex:1;font-size:13px;font-weight:500}.nivel-check.activo .nivel-orden{opacity:.85}.floor-vis{background:var(--slate-50);border:1px solid var(--slate-200);border-radius:9px;flex-direction:column-reverse;gap:3px;max-height:240px;margin-top:6px;padding:10px;display:flex;overflow-y:auto}.floor-cell{border:1px solid var(--slate-200);height:22px;color:var(--slate-500);background:#fff;border-radius:4px;flex-shrink:0;align-items:center;padding:0 10px;font-family:IBM Plex Mono,monospace;font-size:11px;transition:all .12s;display:flex}.floor-cell.in{background:var(--ink);color:#fff;border-color:var(--ink)}.floor-cell .tag{letter-spacing:.1em;opacity:.7;margin-left:auto;font-size:9px}.field-help{color:var(--slate-500);margin-top:2px;font-size:11.5px;line-height:1.4}.field-req{color:var(--red);margin-left:4px}.modal-foot .help{color:var(--slate-500);margin-right:auto;font-family:IBM Plex Mono,monospace;font-size:11.5px}.proc-panel{border:1px solid var(--slate-200);text-align:center;background:#fff;border-radius:14px;flex-direction:column;align-items:center;gap:18px;padding:48px 32px;display:flex}.proc-spinner{border:3px solid var(--slate-100);border-top-color:var(--ink);border-radius:50%;width:48px;height:48px;animation:.9s linear infinite proc-spin}@keyframes proc-spin{to{transform:rotate(360deg)}}.proc-title{color:var(--ink);letter-spacing:-.01em;font-size:18px;font-weight:600}.proc-time{color:var(--ink);letter-spacing:-.02em;font-family:IBM Plex Mono,monospace;font-size:32px;font-weight:600}.proc-sub{color:var(--slate-500);max-width:380px;font-size:13px;line-height:1.5}.upload-panel{border:1.5px dashed var(--slate-300);text-align:center;background:#fff;border-radius:14px;flex-direction:column;align-items:center;gap:12px;padding:32px;display:flex}.upload-panel:hover{border-color:var(--ink);background:#0f172a05}.upload-panel .title{color:var(--ink);font-size:16px;font-weight:600}.upload-panel .file-name{color:var(--green-deep);background:var(--green-soft);border-radius:7px;align-items:center;gap:6px;padding:6px 12px;font-family:IBM Plex Mono,monospace;font-size:13px;display:inline-flex}.upload-plantilla{max-width:480px;color:var(--slate-500);background:var(--slate-50);border:1px solid var(--slate-200);border-radius:10px;flex-direction:column;align-items:center;gap:9px;padding:12px 16px;font-size:12.5px;line-height:1.5;display:flex}.upload-plantilla-btns{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.upload-plantilla-hint{color:var(--green-deep);font-size:11.5px}.btn-guia{border:1px solid var(--blue);background:var(--blue-soft);color:var(--blue-deep);cursor:pointer;border-radius:8px;align-items:center;gap:7px;padding:8px 15px;font-size:13px;font-weight:600;transition:all .12s;display:inline-flex}.btn-guia:hover{background:var(--blue);color:#fff}.btn-guia svg{width:15px;height:15px}.modal.modal-guia{width:920px;max-width:96vw}.guia-body{grid-template-columns:1fr 1fr;align-items:start;gap:26px;display:grid}.guia-col{flex-direction:column;gap:18px;min-width:0;display:flex}@media (width<=760px){.guia-body{grid-template-columns:1fr;gap:18px}}.guia-pasos{flex-direction:column;gap:11px;margin:0;padding:0;list-style:none;display:flex}.guia-paso{align-items:flex-start;gap:12px;display:flex}.guia-num{background:var(--blue);color:#fff;font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;width:23px;height:23px;margin-top:1px;font-size:12px;font-weight:700;display:grid}.guia-num.req{background:#d97706}.guia-proceso{flex-direction:column;gap:12px;display:flex}.guia-proceso-req{background:#fffbeb;border:1px solid #f5d998;border-radius:12px;padding:14px 16px}.guia-proceso-hd{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.guia-proceso-n{color:#fff;background:var(--blue);letter-spacing:.04em;border-radius:6px;padding:3px 8px;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:700}.guia-proceso-n.req{background:#d97706}.guia-proceso-t{color:var(--ink);font-size:15px;font-weight:700}.guia-proceso-tag{color:#b45309;text-transform:uppercase;letter-spacing:.04em;background:#fde9c8;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:700}.guia-trazar{background:var(--blue-soft);border:1px solid var(--blue);border-radius:10px;flex-direction:column;gap:3px;padding:12px 14px;display:flex}.guia-trazar b{color:var(--blue-deep);font-size:13.5px}.guia-trazar span{color:var(--slate-500);font-size:12.5px;line-height:1.45}.guia-paso-txt{flex-direction:column;gap:2px;display:flex}.guia-paso-txt b{color:var(--ink);font-size:13.5px}.guia-paso-txt span{color:var(--slate-500);font-size:12.5px;line-height:1.45}.guia-sec{border-top:1px solid var(--slate-100);flex-direction:column;gap:10px;padding-top:16px;display:flex}.guia-sec-lbl{letter-spacing:.07em;text-transform:uppercase;color:var(--slate-400);font-family:IBM Plex Mono,monospace;font-size:10px}.guia-capas{flex-direction:column;gap:7px;display:flex}.guia-capa{color:var(--slate-500);align-items:center;gap:10px;font-size:13px;display:flex}.guia-capa b{color:var(--ink);min-width:74px}.guia-capa small{color:var(--slate-400);font-size:11.5px}.gc-tag{border-radius:6px;flex:none;padding:3px 8px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:700}.gc-c{background:var(--blue-soft);color:var(--blue)}.gc-a{background:var(--slate-100);color:var(--ink)}.gc-b{background:var(--green-soft);color:var(--green-deep)}.guia-plano{border:1px solid var(--slate-200);background:#fff;border-radius:10px;flex-direction:column;gap:12px;padding:14px;display:flex}.guia-plano-svg{width:100%;max-width:440px;height:auto;margin:0 auto;display:block}.guia-plano-leg{flex-direction:column;gap:7px;display:flex}.gpl{color:var(--slate-500);align-items:center;gap:8px;font-size:12.5px;display:flex}.gpl b{color:var(--ink);font-weight:600}.gpl code{color:var(--green-deep);background:var(--green-soft);border-radius:4px;padding:1px 5px;font-family:IBM Plex Mono,monospace;font-size:11.5px}.gpl-dot{border-radius:3px;flex:none;width:14px;height:14px}.gpl-dot.losa{border:2px solid var(--blue);background:#1d4ed824}.gpl-dot.muro{border:0;border-top:2.5px solid var(--blue);border-radius:2px;width:16px;height:0}.gpl-dot.elem{background:var(--green-soft);border:2px solid var(--green-deep)}.data-table{border:1px solid var(--slate-200);-webkit-overflow-scrolling:touch;background:#fff;border-radius:12px;max-height:520px;margin-top:12px;overflow:auto}.data-table table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:12.5px}.data-table thead th{background:var(--slate-50);text-align:left;letter-spacing:.1em;text-transform:uppercase;color:var(--slate-500);border-bottom:1px solid var(--slate-200);z-index:1;white-space:nowrap;text-overflow:ellipsis;padding:11px 14px;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500;position:sticky;top:0;overflow:hidden}.data-table thead th.num{text-align:right}.data-table tbody td{border-bottom:1px solid var(--slate-100);color:var(--slate-700);vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;padding:10px 14px;overflow:hidden}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--slate-50)}.data-table td.num,.data-table th.num{text-align:right;font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,monospace}.list-sticky{box-shadow:0 8px 16px -12px #0a0d141a,0 1px 0 var(--slate-200);padding-top:22px;padding-bottom:14px}.list-sticky .controls{margin-bottom:0}.proj-header{margin-bottom:22px}.proj-h1{letter-spacing:-.02em;color:var(--ink);margin:6px 0 20px;font-size:23px;font-weight:700}.stat-bar{border:1px solid var(--slate-200);background:#fff;border-radius:9px;display:flex;overflow:hidden}.sb-cell{flex:1;min-width:0;padding:15px 17px;display:block}.stat-sep{background:var(--slate-100);flex:none;width:1px}.stat-k{letter-spacing:.07em;color:var(--slate-400);text-transform:uppercase;white-space:nowrap;margin-bottom:9px;font-family:IBM Plex Mono,monospace;font-size:9px}.stat-v{color:var(--ink);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;line-height:1}.stat-v.blue{color:var(--blue)}.stat-v.sm{white-space:nowrap;font-size:14.5px}.stat-v.muted{color:var(--slate-400)}@media (width<=1200px){.stat-bar{flex-wrap:wrap}.sb-cell{border-top:1px solid var(--slate-100);flex:33%}.stat-sep{display:none}}.page-head-min{border:1px solid var(--slate-200);background:#fff;border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:16px;padding:18px 24px;display:flex;position:relative;overflow:hidden}.page-head-min:before{content:"";background:var(--ink);border-radius:16px 0 0 16px;width:5px;position:absolute;top:0;bottom:0;left:0}.phm-l{flex-direction:column;gap:6px;display:flex}.phm-title{letter-spacing:-.02em;color:var(--ink);margin:0;font-size:26px;font-weight:700}.phm-stats{gap:30px;display:flex}.phm-stat{flex-direction:column;gap:3px;display:flex}.phm-stat .v{color:var(--ink);font-family:IBM Plex Mono,monospace;font-size:22px;font-weight:600;line-height:1.05}.phm-stat .v.muted{color:var(--slate-400)}.phm-stat .k{text-transform:uppercase;letter-spacing:.07em;color:var(--slate-500);font-size:11px}@media (width<=640px){.phm-stats{gap:20px}.phm-stat .v{font-size:18px}}.tipo-toggle{border:1px solid var(--slate-200);background:#fff;border-radius:9px;display:inline-flex;overflow:hidden}.tipo-toggle button{color:var(--slate-500);border:none;border-right:1px solid var(--slate-200);cursor:pointer;background:0 0;padding:9px 18px;font-size:13.5px;font-weight:500;transition:all .12s}.tipo-toggle button:last-child{border-right:none}.tipo-toggle button:hover:not(.on){background:var(--slate-50);color:var(--ink)}.tipo-toggle button.on{background:var(--blue);color:#fff}.page-head{border:1px solid var(--slate-200);background:#fff;border-radius:16px;grid-template-columns:1.4fr 2.2fr;gap:28px;margin-bottom:18px;padding:22px 26px;display:grid;position:relative;overflow:hidden}.page-head:before{content:"";background:var(--ink);width:5px;position:absolute;top:0;bottom:0;left:0}.ph-left{flex-direction:column;gap:14px;display:flex}.ph-eyebrow{letter-spacing:.14em;color:var(--slate-500);text-transform:uppercase;align-items:center;gap:8px;font-family:IBM Plex Mono,monospace;font-size:11px;display:flex}.ph-eyebrow:before{content:"";background:var(--ink);width:18px;height:1px}.ph-title{letter-spacing:-.03em;font-size:34px;font-weight:700;line-height:1.05}.ph-sub{color:var(--slate-600);max-width:380px;font-size:13.5px}.ph-stats{flex-wrap:wrap;gap:10px;margin-top:auto;display:flex}.pill-stat{background:var(--slate-50);border:1px solid var(--slate-200);color:var(--slate-700);border-radius:8px;align-items:center;gap:8px;padding:7px 11px;font-size:12px;display:flex}.pill-stat strong{color:var(--ink);font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:600}.pill-stat .d{border-radius:2px;width:8px;height:8px}.ph-right{grid-template-columns:auto 1fr;align-items:center;gap:24px;display:grid}.donut-wrap{width:148px;height:148px;position:relative}.donut-wrap svg{width:100%;height:100%;transform:rotate(-90deg)}.donut-center{text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex;position:absolute;inset:0}.donut-center .n{letter-spacing:-.02em;font-family:IBM Plex Mono,monospace;font-size:34px;font-weight:600;line-height:1}.donut-center .l{letter-spacing:.14em;color:var(--slate-500);text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:9.5px;line-height:1}.breakdown{flex-direction:column;gap:10px;display:flex}.bd-row{grid-template-columns:14px 1fr auto auto;align-items:center;gap:12px;display:grid}.bd-dot{border-radius:3px;width:10px;height:10px}.bd-lbl{font-size:13px;font-weight:500}.bd-val{font-family:IBM Plex Mono,monospace;font-size:13.5px;font-weight:600}.bd-pct{color:var(--slate-500);text-align:right;min-width:36px;font-family:IBM Plex Mono,monospace;font-size:11px}.ph-aux{border-top:1px dashed var(--slate-200);grid-column:1/-1;grid-template-columns:1fr 1fr;gap:12px;margin-top:6px;padding-top:14px;display:grid}.aux{align-items:center;gap:12px;display:flex}.aux .ico-box{background:var(--slate-50);border:1px solid var(--slate-200);width:42px;height:42px;color:var(--ink);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.aux .ico-box svg{width:20px;height:20px}.aux-lbl{letter-spacing:.12em;color:var(--slate-500);text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:9.5px}.aux-val{letter-spacing:-.01em;font-family:IBM Plex Mono,monospace;font-size:18px;font-weight:600}.aux-val .unit{color:var(--slate-500);margin-left:3px;font-size:12px}.aux-delta{color:var(--green);margin-top:1px;font-family:IBM Plex Mono,monospace;font-size:11px}.controls{flex-wrap:wrap;align-items:center;gap:24px;margin-bottom:20px;display:flex}.view-tabs{align-items:center;gap:18px;display:flex}.view-tab{color:var(--slate-400);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:2px 0 8px;font-size:13px;font-weight:500;transition:all .12s;display:inline-flex}.view-tab svg{width:14px;height:14px}.view-tab:hover{color:var(--ink)}.view-tab.on{color:var(--ink);border-bottom-color:var(--blue);font-weight:600}.filter-sep{background:var(--slate-300);width:1px;height:14px}.filter-tabs{align-items:center;gap:20px;display:flex}.filter-tab{color:var(--slate-500);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:6px;padding:0;font-size:13px;font-weight:500;transition:all .12s;display:inline-flex}.filter-tab:hover{color:var(--ink)}.filter-tab.on{color:var(--ink);font-weight:600}.filter-tab .fc{color:var(--slate-400);font-family:IBM Plex Mono,monospace;font-size:11px}.chip-dot{border-radius:2px;flex:none;width:7px;height:7px}.chip-dot.studio{background:#94a3b8}.chip-dot.obra{background:var(--blue)}.chip-dot.done{background:var(--green)}.chip-dot.risk{background:var(--red)}.chip .ct{opacity:.8;font-family:IBM Plex Mono,monospace;font-size:11px}.sort{color:var(--slate-500);align-items:center;gap:6px;margin-left:auto;font-size:12px;display:flex}.sort select{border:1px solid var(--slate-200);color:var(--ink);background:#fff;border-radius:8px;padding:6px 10px;font-family:Inter,sans-serif;font-size:12.5px;font-weight:500}.grid{grid-template-columns:repeat(2,1fr);gap:16px;padding-bottom:20px;display:grid}.card{border:1px solid var(--slate-200);cursor:pointer;background:#fff;border-radius:9px;transition:all .16s;position:relative;overflow:hidden}.card:hover{border-color:var(--blue);box-shadow:0 14px 30px -18px #1d4ed88c}.card-body{flex-direction:column;gap:15px;min-width:0;padding:18px 22px;display:flex}.card-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.card-title{letter-spacing:-.01em;font-size:16px;font-weight:700;line-height:1.15}.card-client{color:var(--slate-500);flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;font-size:12px;display:flex}.card-client .mono{font-size:11px}.card-client .client-name{color:var(--ink);font-weight:500}.card-client .sep-dot{color:var(--slate-300)}.card-top-r{flex-direction:column;flex:none;align-items:flex-end;gap:6px;display:flex}.card-code{letter-spacing:.06em;color:var(--slate-400);font-size:10px}.card-status-txt{white-space:nowrap;align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.card-status-txt .d{border-radius:50%;width:5px;height:5px}.st-studio{color:var(--slate-500)}.st-studio .d{background:var(--slate-400)}.st-obra{color:var(--blue)}.st-obra .d{background:var(--blue)}.st-done{color:var(--green-deep)}.st-done .d{background:var(--green)}.st-risk{color:var(--red)}.st-risk .d{background:var(--red)}.card-created{color:var(--slate-400);font-size:10.5px}.prog-block{flex-direction:column;gap:7px;display:flex}.prog-row{justify-content:space-between;align-items:baseline;display:flex}.prog-row .lbl{letter-spacing:.12em;color:var(--slate-500);text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:9.5px}.prog-row .val{color:var(--ink);font-family:IBM Plex Mono,monospace;font-size:15px;font-weight:600}.prog-row .val small{color:var(--slate-400);margin-left:2px;font-size:11px;font-weight:500}.prog-row .val.empty{color:var(--slate-400)}.prog-track{background:var(--slate-100);border-radius:2px;height:3px;position:relative;overflow:hidden}.prog-fill{background:var(--blue);border-radius:2px;height:100%;transition:width .4s;position:relative}.prog-fill.green{background:var(--green)}.prog-fill.red{background:var(--red)}.prog-fill.blue{background:var(--blue)}.prog-foot{color:var(--slate-500);justify-content:space-between;font-family:IBM Plex Mono,monospace;font-size:10.5px;display:flex}.meta-grid{border-top:1px dashed var(--slate-200);grid-template-columns:repeat(3,1fr);gap:10px;padding-top:12px;display:grid}.meta-k{letter-spacing:.12em;color:var(--slate-500);text-transform:uppercase;margin-bottom:3px;font-family:IBM Plex Mono,monospace;font-size:9.5px}.meta-v{font-size:13px;font-weight:600}.meta-v.mono{font-family:IBM Plex Mono,monospace}.meta-v.empty{color:var(--slate-400);font-weight:500}.card-foot{border-top:1px dashed var(--slate-200);justify-content:space-between;align-items:center;gap:10px;padding-top:12px;display:flex}.responsable{align-items:center;gap:9px;min-width:0;display:flex}.resp-avatar{color:#fff;background:linear-gradient(135deg,#475569,#0f172a);border-radius:7px;flex-shrink:0;place-items:center;width:28px;height:28px;font-size:11px;font-weight:700;display:grid}.resp-name{font-size:12.5px;font-weight:600}.resp-name.empty{color:var(--slate-400);font-weight:500}.resp-role{color:var(--slate-500);font-family:IBM Plex Mono,monospace;font-size:10.5px}.open-btn{color:var(--ink);border:1px solid var(--slate-200);white-space:nowrap;background:#fff;border-radius:8px;align-items:center;gap:6px;padding:7px 11px;font-size:12px;font-weight:500;transition:all .12s;display:flex}.open-btn:hover{background:var(--blue);color:#fff;border-color:var(--blue)}.open-btn svg{width:13px;height:13px}.table-wrap{border:1px solid var(--slate-200);background:#fff;border-radius:14px;margin-bottom:20px;overflow:hidden}.table-wrap table{border-collapse:collapse;width:100%;font-size:13px}.table-wrap thead th{text-align:left;letter-spacing:.12em;text-transform:uppercase;color:var(--slate-500);background:var(--slate-50);border-bottom:1px solid var(--slate-200);padding:13px 18px;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500}.table-wrap tbody td{border-bottom:1px solid var(--slate-100);vertical-align:middle;padding:14px 18px}.table-wrap tbody tr:last-child td{border-bottom:none}.table-wrap tbody tr:hover{background:var(--slate-50)}.t-id{color:var(--slate-500);font-family:IBM Plex Mono,monospace;font-size:11px}.t-name{color:var(--ink);font-weight:700}.t-client{color:var(--slate-500);margin-top:2px;font-family:IBM Plex Mono,monospace;font-size:11.5px}.t-progress{align-items:center;gap:10px;min-width:160px;display:flex}.t-progress .bar{background:var(--slate-100);border-radius:3px;flex:1;height:6px;overflow:hidden}.t-progress .fill{border-radius:3px;height:100%}.t-progress .pct{color:var(--ink);text-align:right;min-width:36px;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600}.t-progress .pct.empty{color:var(--slate-400);font-weight:500}.t-date{color:var(--slate-600);font-family:IBM Plex Mono,monospace;font-size:12px}.t-date.empty{color:var(--slate-400)}.empty-state{border:1px dashed var(--slate-300);text-align:center;color:var(--slate-500);background:#fff;border-radius:14px;padding:48px 32px;font-size:13.5px}.lam-warn{color:#92400e;background:#fef3c7;border:1px solid #fcd34d;border-radius:10px;align-items:flex-start;gap:9px;margin-bottom:14px;padding:11px 14px;font-size:13px;line-height:1.45;display:flex}.lam-warn svg{color:#b45309;flex:none;margin-top:1px}.lam-warn b{font-weight:600}.recinto-input{border:1px solid var(--slate-300);width:100%;min-width:90px;color:var(--ink);background:#fff;border-radius:7px;padding:5px 8px;font-size:13px;transition:all .12s}.recinto-input:hover{border-color:var(--slate-400)}.recinto-input:focus{border-color:var(--ink);outline:none;box-shadow:0 0 0 3px #0f172a14}.recinto-input.vacio{border-color:var(--red);background:var(--red-soft)}.recinto-input.vacio::placeholder{color:var(--red)}@media (width<=1550px){.page{padding:0 22px 20px}.page-head-min{margin-bottom:12px;padding:14px 18px}.phm-title{font-size:22px}.phm-stats{gap:22px}.phm-stat .v{font-size:19px}.controls{gap:8px;margin-bottom:12px;padding:8px 10px}.grid{gap:14px}.card{grid-template-columns:110px 1fr}.card-mark{padding:14px 10px}.card-iso{width:58px;height:58px}.card-body{gap:10px;padding:13px 15px}.card-title{font-size:15.5px}.card-client{font-size:12px}.prog-block{gap:6px}.prog-track{height:7px}.meta-grid{gap:8px;padding-top:10px}.card-foot{padding-top:10px}.empty-state{padding:34px 24px}.proj-sticky{position:static}.proj-sticky,.lam-sticky,.list-sticky{margin:0 -22px;padding:12px 22px 0}.proj-hero{grid-template-columns:1fr 300px;gap:20px;padding:18px 22px}.lam-hero{gap:16px;padding:14px 20px}.kpis,.stats{gap:10px;margin-bottom:12px}.lam-section{grid-template-columns:1fr;gap:14px}.activity{order:2}}@media (width<=1024px){.grid{grid-template-columns:1fr}.page{padding:0 16px 16px}.proj-sticky,.lam-sticky,.list-sticky{margin:0 -16px;padding:12px 16px 0}.proj-hero,.lam-hero{grid-template-columns:1fr;gap:16px;padding:16px 18px}.kpis,.stats{grid-template-columns:repeat(2,1fr)}}.alert-error{background:var(--red-soft);border:1px solid var(--red);color:var(--red);border-radius:10px;align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;font-size:13.5px;display:flex}.alert-warning{color:#92400e;background:#fef3c7;border:1px solid #d97706;border-radius:10px;align-items:flex-start;gap:10px;padding:12px 16px;font-size:13.5px;line-height:1.5;display:flex}.alert-x{cursor:pointer;color:inherit;opacity:.65;background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:inline-flex}.alert-x:hover{opacity:1}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:50;background:#0b122099;place-items:center;padding:20px;animation:.2s fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{border:1px solid var(--slate-200);background:#fff;border-radius:18px;flex-direction:column;width:580px;max-width:100%;max-height:90vh;animation:.25s cubic-bezier(.2,.7,.3,1) pop;display:flex;overflow:hidden;box-shadow:0 40px 80px -30px #00000073}@keyframes pop{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.modal-head{color:var(--ink);border-bottom:1px solid var(--slate-200);background:#fff;padding:22px 26px 24px;position:relative}.modal-eyebrow{letter-spacing:.12em;color:var(--slate-500);text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:10px}.modal-title{letter-spacing:-.01em;color:var(--ink);justify-content:space-between;align-items:center;margin-top:6px;font-size:20px;font-weight:700;display:flex}.modal-close{width:26px;height:26px;color:var(--slate-500);background:var(--paper);border:1px solid var(--slate-200);border-radius:6px;place-items:center;display:grid}.modal-close:hover{background:var(--slate-100);color:var(--ink)}.modal-close svg{width:14px;height:14px}.wizard-prog{margin-top:20px}.wizard-prog-labels{justify-content:space-between;gap:12px;margin-bottom:9px;display:flex}.wp-current{letter-spacing:.06em;color:var(--ink);white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600}.wp-rest{letter-spacing:.06em;color:var(--slate-400);text-align:right;text-overflow:ellipsis;white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:10px;overflow:hidden}.wizard-prog-bar{gap:4px;display:flex}.wp-seg{background:var(--slate-200);border-radius:2px;flex:1;height:4px;transition:background .3s}.wp-seg.on{background:var(--blue)}.wp-seg.clk{cursor:pointer}.modal-body{gap:14px;padding:22px 26px;display:grid;overflow-y:auto}.field{flex-direction:column;gap:6px;display:flex}.field label{letter-spacing:.12em;color:var(--slate-500);text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:10px}.field input,.field select{border:1px solid var(--slate-200);color:var(--ink);background:#fff;border-radius:9px;padding:11px 13px;font-family:Inter,sans-serif;font-size:14px}.field input:focus,.field select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1d4ed81a}.field-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.field-check{color:var(--ink);cursor:pointer;align-items:center;gap:10px;padding:6px 0;font-size:13.5px;display:flex}.field-check input{width:16px;height:16px;accent-color:var(--ink);cursor:pointer}.check-inline{color:var(--slate-700);cursor:pointer;align-items:center;gap:8px;padding:4px 0;font-size:12.5px;display:flex}.check-inline input{width:15px;height:15px;accent-color:var(--ink);cursor:pointer}.imper-box{background:var(--slate-50);border-left:3px solid var(--ink);border-radius:0 9px 9px 0;gap:12px;margin-top:6px;padding:14px;display:grid}.modal-foot{background:var(--slate-50);border-top:1px solid var(--slate-200);justify-content:flex-end;gap:8px;padding:18px 26px;display:flex}.modal-angosto{width:460px}.btn-peligro{color:var(--slate-500)}.btn-peligro:hover:not(:disabled){color:var(--red);border-color:var(--red);background:var(--red-soft)}.btn-peligro-solido{border:1px solid var(--red);background:var(--red);color:#fff;cursor:pointer;border-radius:9px;padding:9px 16px;font-family:inherit;font-size:13.5px;font-weight:600;transition:all .12s}.btn-peligro-solido:hover:not(:disabled){filter:brightness(.92)}.btn-peligro-solido:disabled{opacity:.6;cursor:default}.papelera-lista{flex-direction:column;gap:8px;display:flex}.papelera-item{border:1px solid var(--slate-200);background:#fff;border-radius:12px;align-items:center;gap:14px;padding:14px 18px;display:flex}.papelera-nom{color:var(--ink);font-size:14px;font-weight:600}.papelera-meta{color:var(--slate-500);font-family:IBM Plex Mono,monospace;font-size:11.5px}.papelera-dias{color:var(--slate-500);white-space:nowrap;margin-left:auto;font-family:IBM Plex Mono,monospace;font-size:11.5px}.papelera-dias.pocos{color:var(--red);font-weight:600}.btn-ghost{color:var(--slate-600);border:1px solid var(--slate-200);background:#fff;border-radius:9px;padding:10px 16px;font-size:13.5px;font-weight:500}.btn-ghost:hover{background:var(--blue-soft);border-color:var(--blue);color:var(--blue)}.btn-primary{background:var(--blue);color:#fff;border-radius:9px;align-items:center;gap:8px;padding:10px 18px;font-size:13.5px;font-weight:500;display:flex;box-shadow:0 6px 14px -4px #1d4ed852}.btn-primary:hover:not(:disabled){background:var(--blue-deep)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-primary svg{width:14px;height:14px}.kbd-inline{color:#fff9;border:1px solid #fff3;border-radius:4px;margin-left:4px;padding:1px 5px;font-family:IBM Plex Mono,monospace;font-size:10px}.modal-error{background:var(--red-soft);color:var(--red);border-radius:9px;padding:10px 13px;font-size:13px}.login-page{background-color:var(--paper);background-image:linear-gradient(#0a0d1407 1px,#0000 1px),linear-gradient(90deg,#0a0d1407 1px,#0000 1px),linear-gradient(#0a0d140d 1px,#0000 1px),linear-gradient(90deg,#0a0d140d 1px,#0000 1px);background-size:20px 20px,20px 20px,100px 100px,100px 100px;flex-direction:column;min-height:100vh;display:flex}.login-main{flex:1;justify-content:center;align-items:center;padding:32px 20px;display:flex}.login-card{border:1px solid var(--slate-200);background:#fff;border-radius:14px;width:100%;max-width:440px;overflow:hidden;box-shadow:0 24px 60px -24px #0a0d1438}.login-logo-area{text-align:center;border-bottom:1px solid var(--slate-100);padding:38px 40px 28px}.login-logo{object-fit:contain;width:auto;height:40px;display:inline-block}.login-modulo{color:var(--slate-500);text-transform:uppercase;letter-spacing:.16em;margin-top:16px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600}.login-body{padding:28px 40px 36px}.login-field{margin-bottom:18px}.login-label{color:#0b1220;text-transform:uppercase;letter-spacing:.05em;margin-bottom:7px;font-size:12px;font-weight:600;display:block}.login-label-row{justify-content:space-between;align-items:center;margin-bottom:7px;display:flex}.login-label-row .login-label{margin-bottom:0}.login-forgot{color:var(--blue);cursor:pointer;font-size:13px;font-weight:600}.login-forgot:hover{text-decoration:underline}.login-card input[type=email],.login-card input[type=password]{width:100%;color:var(--ink);border:1px solid var(--slate-200);background:#f8fafc;border-radius:9px;outline:none;padding:12px 14px;font-family:inherit;font-size:15px;transition:border-color .15s,box-shadow .15s}.login-card input:focus{border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px #1d4ed81a}.btn-login{background:var(--blue);color:#fff;cursor:pointer;border:none;border-radius:9px;width:100%;margin-top:6px;padding:14px;font-family:inherit;font-size:15px;font-weight:600;transition:background .15s}.btn-login:hover:not(:disabled){background:var(--blue-deep)}.btn-login:disabled{background:var(--slate-400);cursor:not-allowed}.login-footer{color:#64748b;background:#f1f5f9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 28px;font-size:13px;display:flex}.login-footer-left{align-items:center;gap:12px;display:flex}.login-footer-logo{object-fit:contain;width:auto;height:18px;display:block}.login-footer-left .footer-modulo{text-transform:uppercase;letter-spacing:.06em;font-family:IBM Plex Mono,monospace;font-size:11px}.alerta{border-radius:9px;margin-bottom:20px;padding:12px 16px;font-size:14px;font-weight:500}.alerta.error{color:#991b1b;background:#fee2e2;border:1px solid #fecaca}.page-old{max-width:1100px;margin:0 auto;padding:32px 40px}.card-old{background:#fff;border:1px solid #e2e8f0;border-radius:14px;margin-bottom:20px;padding:32px;box-shadow:0 2px 12px #0f172a0f}.seccion{margin-bottom:24px}.seccion h2{text-transform:uppercase;letter-spacing:.07em;color:#64748b;border-bottom:1px solid #e2e8f0;margin-bottom:6px;padding-bottom:8px;font-size:12px;font-weight:600}.campo{flex-direction:column;gap:6px;display:flex}.campo label{color:#64748b;text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:600}.campo input,.campo select{color:#0b1220;background:#fff;border:1px solid #e2e8f0;border-radius:9px;outline:none;padding:10px 13px;font-family:inherit;font-size:14px}.campo input:focus,.campo select:focus{border-color:#0f172a;box-shadow:0 0 0 3px #0f172a14}.fila-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.acciones{justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.btn-procesar{color:#fff;cursor:pointer;background:#0b1220;border:none;border-radius:9px;padding:10px 22px;font-family:inherit;font-size:14px;font-weight:600}.btn-procesar:hover:not(:disabled){background:#1e293b}.btn-procesar:disabled{cursor:not-allowed;background:#94a3b8}.btn-releer{color:#64748b;cursor:pointer;background:0 0;border:1px solid #e2e8f0;border-radius:9px;padding:10px 18px;font-family:inherit;font-size:14px;font-weight:600}.btn-releer:hover{background:#f8fafc}.btn-back{color:#64748b;cursor:pointer;background:0 0;border:none;margin-bottom:6px;padding:0;font-size:13px;display:block}.btn-back:hover{color:#0b1220}.dropzone{cursor:pointer;color:#64748b;-webkit-user-select:none;user-select:none;background:#f8fafc;border:1.5px dashed #cbd5e1;border-radius:10px;align-items:center;gap:10px;min-height:48px;padding:14px 18px;font-size:14px;transition:all .15s;display:flex}.dropzone:hover{color:#0f172a;background:#f1f5f9;border-color:#0f172a}.dropzone.ok{color:#15803d;background:#dcfce7;border-style:solid;border-color:#22c55e}.check{color:#22c55e;font-size:16px;font-weight:700}.icono-archivo{font-size:16px}.tabla-wrap{border:1px solid #e2e8f0;border-radius:10px;margin-bottom:12px;overflow-x:auto}.tabla{border-collapse:collapse;width:100%;font-size:13px}.tabla thead th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:#64748b;white-space:nowrap;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:10px 14px;font-size:11px;font-weight:600}.tabla tbody tr{border-bottom:1px solid #f1f5f9}.tabla tbody tr:last-child{border-bottom:none}.tabla tbody tr:hover{background:#f8fafc}.tabla td{color:#334155;padding:9px 14px}.tabla td.num{font-variant-numeric:tabular-nums;text-align:right;font-weight:500}.tag-layer{color:#0f172a;background:#f1f5f9;border-radius:5px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-block}.vacio{color:#cbd5e1}.resumen{color:#94a3b8;margin-bottom:4px;font-size:12px}.tag-version{color:#0f172a;background:#f1f5f9;border-radius:5px;padding:2px 7px;font-size:11px;font-weight:600}.dash{flex-direction:column;gap:16px;display:flex}.dash-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--slate-500);margin-bottom:14px;font-family:IBM Plex Mono,monospace;font-size:11px}.dash-hero{border:1px solid var(--slate-200);border-left:3px solid var(--blue);background:#fff;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:32px;padding:26px 30px;display:flex}.dash-hero-num{letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums;align-items:baseline;gap:8px;font-size:64px;font-weight:700;line-height:.95;display:flex}.dash-hero-num small{color:var(--slate-500);letter-spacing:0;font-size:22px;font-weight:600}.dash-hero-lbl{color:var(--slate-600);margin-top:10px;font-size:13.5px}.dash-hero-side{flex-direction:column;align-items:flex-end;gap:14px;display:flex}.dash-delta{font-variant-numeric:tabular-nums;border-radius:8px;align-items:center;gap:7px;padding:7px 13px;font-size:14px;font-weight:700;display:inline-flex}.dash-delta svg{width:16px;height:16px}.dash-delta span{opacity:.8;font-size:11.5px;font-weight:500}.dash-delta.up{background:var(--green-soft);color:var(--green-deep)}.dash-delta.down{background:var(--red-soft);color:var(--red)}.dash-delta.flat{background:var(--slate-100);color:var(--slate-600)}.dash-hero-meta{color:var(--slate-500);gap:22px;font-size:12.5px;display:flex}.dash-hero-meta b{color:var(--ink);margin-right:3px;font-family:IBM Plex Mono,monospace;font-size:14px}.dash-kpis{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}@media (width<=1100px){.dash-kpis{grid-template-columns:repeat(2,1fr)}}.dash-kpi{border:1px solid var(--slate-200);background:#fff;border-radius:12px;padding:16px 18px;position:relative}.dash-kpi-ico{color:var(--slate-300);position:absolute;top:15px;right:16px}.dash-kpi-ico svg{width:17px;height:17px}.dash-kpi.ok .dash-kpi-ico{color:var(--green)}.dash-kpi.riesgo .dash-kpi-ico{color:var(--red)}.dash-kpi-lbl{letter-spacing:.11em;text-transform:uppercase;color:var(--slate-500);padding-right:24px;font-family:IBM Plex Mono,monospace;font-size:10px}.dash-kpi-val{color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:7px 0 3px;font-size:30px;font-weight:700}.dash-kpi-sub{color:var(--slate-500);font-size:11.5px}.dash-row{grid-template-columns:1fr;gap:12px;display:grid}@media (width>=1100px){.dash-row{grid-template-columns:1.9fr 1fr}}.dash-card{border:1px solid var(--slate-200);background:#fff;border-radius:12px;padding:18px 20px}.dash-card-head{align-items:baseline;gap:10px;margin-bottom:16px;display:flex}.dash-card-head h3{color:var(--ink);margin:0;font-size:14.5px;font-weight:600}.dash-card-sub{color:var(--slate-500);font-family:IBM Plex Mono,monospace;font-size:11px}.dash-empty{text-align:center;color:var(--slate-400);padding:26px 0;font-size:13px}.dash-chart{position:relative}.dash-chart svg{width:100%;height:210px;display:block;overflow:visible}.dash-grid{stroke:var(--slate-100);stroke-width:1px}.dash-axis{fill:var(--slate-400);font-family:IBM Plex Mono,monospace;font-size:10px}.dash-line{fill:none;stroke:var(--blue);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.dash-dot{fill:var(--blue);stroke:#fff;stroke-width:2px}.dash-cross{stroke:var(--slate-300);stroke-width:1px;stroke-dasharray:3 3}.dash-dot-hi{fill:var(--blue);stroke:#fff;stroke-width:2.5px}.dash-tip{pointer-events:none;background:var(--ink);color:#fff;white-space:nowrap;border-radius:8px;flex-direction:column;gap:2px;padding:7px 11px;display:flex;position:absolute;top:0;transform:translate(-50%);box-shadow:0 8px 20px -8px #0a0d1466}.dash-tip b{font-family:IBM Plex Mono,monospace;font-size:13px}.dash-tip span{opacity:.75;font-size:11px}.dash-chart-vacio{color:var(--slate-400);pointer-events:none;place-items:center;font-size:12.5px;display:grid;position:absolute;inset:0}.dash-stack{border-radius:6px;gap:2px;height:12px;margin-bottom:16px;display:flex;overflow:hidden}.dash-stack-seg{min-width:3px;height:100%}.dash-legend{flex-direction:column;gap:9px;margin:0;padding:0;list-style:none;display:flex}.dash-legend li{align-items:center;gap:9px;font-size:12.5px;display:flex}.dash-legend .dot{border-radius:3px;flex:none;width:9px;height:9px}.dash-legend .lbl{color:var(--slate-600);flex:1}.dash-legend .val{color:var(--ink);font-family:IBM Plex Mono,monospace;font-weight:600}.dash-legend .pct{color:var(--slate-400);text-align:right;width:34px;font-family:IBM Plex Mono,monospace;font-size:11px}.dash-bars{flex-direction:column;display:flex}.dash-bar-row{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;grid-template-columns:minmax(170px,270px) 1fr 46px 64px 16px;align-items:center;gap:16px;padding:12px 8px;font-family:inherit;transition:background .12s;display:grid}.dash-bar-row:hover{background:var(--slate-50)}.dash-bar-row+.dash-bar-row{border-top:1px solid var(--slate-100)}.dash-bar-name{flex-direction:column;gap:2px;min-width:0;display:flex}.dash-bar-name b{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:600;overflow:hidden}.dash-bar-name .mono{color:var(--slate-400);font-family:IBM Plex Mono,monospace;font-size:10.5px}.dash-bar-track{background:var(--slate-100);border-radius:4px;height:8px;overflow:hidden}.dash-bar-fill{background:var(--blue);border-radius:4px;height:100%;transition:width .3s}.dash-bar-pct{color:var(--ink);text-align:right;font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:600}.dash-bar-meta{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.dash-bar-meta .mono{color:var(--slate-500);font-family:IBM Plex Mono,monospace;font-size:11px}.dash-bar-meta .m2{color:var(--slate-400);font-size:10.5px}.dash-bar-go{width:14px;height:14px;color:var(--slate-300)}.dash-bar-row:hover .dash-bar-go{color:var(--blue)}.dash-ok{background:var(--green-soft);color:var(--green-deep);border-radius:10px;align-items:center;gap:14px;padding:18px;display:flex}.dash-ok svg{flex:none;width:22px;height:22px}.dash-ok div{flex-direction:column;gap:2px;display:flex}.dash-ok b{font-size:13.5px}.dash-ok span{opacity:.85;font-size:12px}.dash-alertas{flex-direction:column;gap:8px;display:flex}.dash-alerta{border:1px solid var(--slate-200);cursor:pointer;text-align:left;background:#fff;border-radius:10px;grid-template-columns:36px 1fr 16px;align-items:center;gap:13px;padding:12px 14px;font-family:inherit;transition:all .12s;display:grid}.dash-alerta:hover{border-color:var(--slate-300);background:var(--slate-50)}.dash-alerta-ico{color:#fff;border-radius:9px;place-items:center;width:36px;height:36px;display:grid}.dash-alerta-ico.err{background:var(--red)}.dash-alerta-ico.warn{background:#d97706}.dash-alerta-ico svg{width:17px;height:17px}.dash-alerta-txt{flex-direction:column;gap:2px;min-width:0;display:flex}.dash-alerta-txt b{color:var(--ink);font-size:13px}.dash-alerta-txt span{color:var(--slate-500);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.dash-alerta>svg{width:14px;height:14px;color:var(--slate-300)}.dash-rank{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.dash-rank li{align-items:center;gap:12px;padding:10px 0;font-size:13px;display:flex}.dash-rank li+li{border-top:1px solid var(--slate-100)}.dash-rank .pos{color:var(--slate-400);font-family:IBM Plex Mono,monospace;font-size:11px}.dash-rank .nom{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:500;overflow:hidden}.dash-rank .cnt{color:var(--slate-500);font-family:IBM Plex Mono,monospace;font-size:12px}.dash-foot{border:1px solid var(--slate-200);background:#fff;border-radius:12px;flex-wrap:wrap;align-items:center;gap:14px;padding:14px 18px;font-size:12.5px;display:flex}.dash-foot-lbl{letter-spacing:.11em;text-transform:uppercase;color:var(--slate-500);font-family:IBM Plex Mono,monospace;font-size:10px}.dash-foot-chip{color:var(--slate-600)}.dash-foot-chip b{color:var(--ink);margin-right:3px;font-family:IBM Plex Mono,monospace}.dash-foot-nota{color:var(--slate-400);align-items:center;gap:7px;margin-left:auto;font-size:11.5px;display:inline-flex}.dash-foot-nota svg{flex:none;width:13px;height:13px}.pg-nombre[readonly],.pg-campos input[readonly]{background:var(--slate-50);color:var(--slate-600);cursor:not-allowed}.pg-lock{width:34px;height:34px;color:var(--slate-400);flex:none;place-items:center;display:grid}.pg-lock svg{width:15px;height:15px}.pg-campos{flex-direction:column;gap:5px;margin-top:10px;display:flex}.pg-campos label{letter-spacing:.1em;text-transform:uppercase;color:var(--slate-500);font-family:IBM Plex Mono,monospace;font-size:10px}.pg-campos input{border:1px solid var(--slate-200);width:100%;color:var(--ink);background:#fff;border-radius:8px;padding:8px 11px;font-family:IBM Plex Mono,monospace;font-size:12px}.pg-campos input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);outline:none}.pg-cuadro{border:1px solid var(--slate-200);width:100%;color:var(--ink);cursor:pointer;background:#fff;border-radius:8px;padding:8px 11px;font-family:inherit;font-size:12.5px}.pg-cuadro:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);outline:none}.cuadros{flex-direction:column;gap:10px;display:flex}.cuadro{border:1px solid var(--slate-200);background:var(--slate-50);border-radius:10px;padding:14px 16px}.cuadro-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.cuadro-head svg{width:15px;height:15px;color:var(--blue);flex:none}.cuadro-capa{color:var(--ink);font-size:12.5px;font-weight:600}.cuadro-bloque{color:var(--slate-500);font-size:11.5px}.cuadro-n{color:var(--slate-500);margin-left:auto;font-family:IBM Plex Mono,monospace;font-size:11px}.cuadro-cols{flex-wrap:wrap;gap:6px;display:flex}.cuadro-cols span{border:1px solid var(--slate-200);color:var(--slate-600);background:#fff;border-radius:5px;padding:3px 8px;font-size:11px}.cfg-wrap{position:relative}.icon-btn.on{background:var(--blue-soft);color:var(--blue-deep)}.cfg-menu{z-index:40;border:1px solid var(--slate-200);background:#fff;border-radius:11px;min-width:290px;padding:7px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 16px 34px -14px #0a0d1447}.cfg-menu-lbl{letter-spacing:.12em;text-transform:uppercase;color:var(--slate-400);padding:6px 9px 8px;font-family:IBM Plex Mono,monospace;font-size:9.5px}.cfg-item{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:flex-start;gap:11px;width:100%;padding:10px;font-family:inherit;transition:all .12s;display:flex}.cfg-item:hover{background:var(--slate-50)}.cfg-item svg{width:16px;height:16px;color:var(--blue);flex:none;margin-top:2px}.cfg-item span{flex-direction:column;gap:2px;min-width:0;display:flex}.cfg-item b{color:var(--ink);font-size:13.5px;font-weight:600}.cfg-item small{color:var(--slate-500);font-size:11.5px}.cfg-vacio{color:var(--slate-500);padding:10px;font-size:12.5px}.tot-cards{grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:10px;margin-bottom:14px;display:grid}.tot-card{border:1px solid var(--slate-200);background:#fff;border-radius:11px;padding:14px 16px}.tot-lbl{letter-spacing:.11em;text-transform:uppercase;color:var(--slate-500);font-family:IBM Plex Mono,monospace;font-size:10px}.tot-val{color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:6px 0 2px;font-size:23px;font-weight:700}.tot-sub{color:var(--slate-500);font-size:11.5px}.crono-section{width:100%;display:block}.crono{border:1px solid var(--slate-200);background:#fff;border-radius:12px;overflow:hidden}.crono-top{align-items:baseline;gap:14px;padding:15px 20px 0;display:flex}.crono-mes{color:var(--ink);letter-spacing:-.01em;font-size:14px;font-weight:650}.crono-hint{color:var(--slate-500);font-size:12px}.crono-head{border-bottom:1px solid var(--slate-200);grid-template-columns:230px 132px 132px 1fr;align-items:end;gap:0 12px;padding:10px 20px 8px;display:grid}.crono-col-nom{letter-spacing:.11em;text-transform:uppercase;color:var(--slate-400);font-family:IBM Plex Mono,monospace;font-size:10px}.crono-col-eje{height:20px;position:relative}.crono-dia{color:var(--slate-400);flex-direction:column;align-items:center;gap:1px;font-family:IBM Plex Mono,monospace;font-size:9.5px;line-height:1.15;display:flex;position:absolute;top:0;overflow:hidden}.crono-dia b{letter-spacing:.04em;color:var(--slate-300);font-size:9px;font-weight:600}.crono-dia.lunes{color:var(--slate-600)}.crono-dia.lunes b{color:var(--slate-500)}.crono-dia.finde,.crono-dia.finde b{color:var(--slate-300)}.crono-dia.feriado,.crono-dia.feriado b{color:var(--red);opacity:.75}.crono-marca{white-space:nowrap;color:var(--slate-400);font-family:IBM Plex Mono,monospace;font-size:10px;position:absolute;top:0;transform:translate(-50%)}.crono-hoy-lbl{white-space:nowrap;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--red);border-radius:3px;padding:1px 5px;font-family:IBM Plex Mono,monospace;font-size:9px;position:absolute;top:-1px;transform:translate(-50%)}.crono-filas{flex-direction:column;display:flex}.crono-fila{border-bottom:1px solid var(--slate-100);grid-template-columns:230px 132px 132px 1fr;align-items:center;gap:0 12px;min-height:52px;padding:0 20px;transition:background .12s;display:grid}.crono-fila:last-child{border-bottom:none}.crono-fila:hover{background:var(--slate-50)}.crono-nom{align-items:center;gap:10px;min-width:0;padding:12px 14px 12px 0;display:flex}.crono-nom-txt{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13.5px;font-weight:600;overflow:hidden}.crono-cnt{color:var(--slate-400);flex:none;align-items:center;gap:4px;font-family:IBM Plex Mono,monospace;font-size:11px;display:inline-flex}.crono-cnt svg{width:12px;height:12px}.crono-cnt.listo{color:var(--green-deep)}.crono-fecha{width:100%;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;padding:6px 8px;font-family:IBM Plex Mono,monospace;font-size:11.5px;transition:all .12s}.crono-fecha:hover:not(:disabled){border-color:var(--slate-200);background:#fff}.crono-fecha:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);background:#fff;outline:none}.crono-fecha:disabled{cursor:default;color:var(--slate-400)}.crono-fecha:invalid,.crono-fecha:not(:valid){color:var(--slate-400)}.crono-fecha.atrasada{color:var(--red)}.crono-fecha::-webkit-calendar-picker-indicator{opacity:.35;cursor:pointer}.crono-fecha:hover::-webkit-calendar-picker-indicator{opacity:.7}.crono-pista{height:30px;position:relative}.crono-finde{background:var(--slate-100);opacity:.62;position:absolute;top:-11px;bottom:-11px}.crono-grid{background:var(--slate-100);width:1px;position:absolute;top:-10px;bottom:-10px}.crono-hoy{background:var(--red);opacity:.45;width:1px;position:absolute;top:-10px;bottom:-10px}.crono-barra{background:var(--blue-soft);border-radius:5px;min-width:10px;height:18px;position:absolute;top:6px;overflow:hidden;box-shadow:inset 0 0 0 1px #1d4ed82e}.crono-barra.atrasada{background:var(--red-soft);box-shadow:inset 0 0 0 1px #dc262659}.crono-avance{background:var(--blue);border-radius:5px 0 0 5px;transition:width .3s;position:absolute;top:0;bottom:0;left:0}.crono-barra.listo .crono-avance{background:var(--green-deep);border-radius:5px}.crono-pct{white-space:nowrap;color:var(--slate-500);font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;position:absolute;top:50%;transform:translateY(-50%)}.crono-pct.atrasada{color:var(--red)}.crono-pct.listo{color:var(--green-deep)}.crono-sin-plan{border:1px dashed var(--slate-200);color:var(--slate-400);white-space:nowrap;border-radius:7px;align-items:center;gap:6px;padding:4px 10px;font-family:inherit;font-size:11px;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.crono-sin-plan svg{width:13px;height:13px}@media (width<=860px){.crono-head,.crono-fila{grid-template-columns:120px 118px 118px 1fr;gap:0 8px}}.prog-grid{grid-template-columns:470px 132px 132px 1fr}@media (width<=1200px){.prog-grid{grid-template-columns:330px 120px 120px 1fr}}@media (width<=860px){.prog-grid{grid-template-columns:200px 112px 112px 1fr;gap:0 8px}}.prog-obra{border-bottom:1px solid var(--slate-200)}.prog-obra:last-child{border-bottom:none}.prog-fila-obra{background:var(--slate-50);border-bottom:1px solid var(--slate-100);min-height:50px}.prog-fila-obra:hover{background:var(--slate-100)}.prog-fila-obra.abierta{border-bottom-color:var(--slate-200)}.prog-obra-nom{align-items:center;gap:8px;min-width:0;padding:10px 12px 10px 0;display:flex}.prog-chevron{width:22px;height:22px;color:var(--slate-500);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:none;place-items:center;transition:all .12s;display:grid}.prog-chevron:hover{color:var(--ink);box-shadow:0 0 0 1px var(--slate-200);background:#fff}.prog-chevron svg{width:15px;height:15px}.prog-obra-txt{cursor:pointer;flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.prog-obra-txt b{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:650;overflow:hidden}.prog-obra-meta{align-items:center;gap:8px;min-width:0;display:flex}.prog-obra-txt small{color:var(--slate-400);white-space:nowrap;text-overflow:ellipsis;font-family:IBM Plex Mono,monospace;font-size:10.5px;overflow:hidden}.prog-ir{background:var(--blue-soft);height:26px;color:var(--blue);cursor:pointer;border:1px solid #0000;border-radius:7px;flex:none;align-items:center;gap:6px;padding:0 10px;font-family:inherit;font-size:11.5px;font-weight:600;transition:all .12s;display:inline-flex}.prog-ir:hover{background:var(--blue);color:#fff}.prog-ir:focus-visible{box-shadow:0 0 0 3px var(--blue-soft);border-color:var(--blue);outline:none}.prog-ir svg{width:13px;height:13px}.prog-resumen{color:var(--slate-500);align-items:center;padding:6px 8px;font-family:IBM Plex Mono,monospace;font-size:11.5px;display:flex}.prog-resumen span{align-items:center;gap:5px;display:inline-flex}.prog-resumen svg{width:12px;height:12px;color:var(--slate-400)}.prog-resumen .tenue{color:var(--slate-400)}.prog-resumen.pasa{color:var(--red);font-weight:600}.prog-resumen.pasa svg{color:var(--red)}.prog-barra-obra{background:var(--slate-200);border-radius:4px;min-width:6px;height:8px;position:absolute;top:11px;overflow:hidden}.prog-barra-obra-avance{background:var(--slate-400);border-radius:4px;transition:width .3s;position:absolute;top:0;bottom:0;left:0}.prog-barra-obra.listo .prog-barra-obra-avance{background:var(--green-deep)}.prog-barra-obra.pasa{background:var(--red-soft)}.prog-hito{border-left:2px dashed var(--red);opacity:.55;width:0;position:absolute;top:-10px;bottom:-10px}.prog-chip-riesgo{white-space:nowrap;color:var(--red);background:var(--red-soft);cursor:default;border-radius:5px;flex:none;padding:2px 7px;font-size:10.5px;font-weight:600}.prog-fila-partida{background:#fff}.prog-fila-partida .crono-nom{padding-left:30px}.prog-vacio{color:var(--slate-500);background:#fff;padding:14px 20px 16px 50px;font-size:12.5px}.prog-nota{border:1px solid var(--slate-200);background:var(--slate-50);color:var(--slate-600);border-radius:9px;align-items:center;gap:8px;margin-bottom:12px;padding:9px 14px;font-size:12.5px;display:flex}.tot-card.prog-alerta{border-color:var(--red);box-shadow:0 0 0 3px var(--red-soft)}.tot-card.prog-alerta .tot-val{color:var(--red)}.pg-geom.geo-losas:hover:not(.on):not(:disabled){border-color:var(--geo-losas);color:var(--geo-losas)}.pg-geom.geo-muros:hover:not(.on):not(:disabled){border-color:var(--geo-muros);color:var(--geo-muros)}.pg-geom.geo-elementos:hover:not(.on):not(:disabled){border-color:var(--geo-elementos);color:var(--geo-elementos)}.pg-geom.geo-losas.on{border-color:var(--geo-losas);background:var(--geo-losas)}.pg-geom.geo-muros.on{border-color:var(--geo-muros);background:var(--geo-muros)}.pg-geom.geo-elementos.on{border-color:var(--geo-elementos);background:var(--geo-elementos)}.tot-card{border-left-width:3px}.tot-card.geo-losas{border-left-color:var(--geo-losas)}.tot-card.geo-muros{border-left-color:var(--geo-muros)}.tot-card.geo-elementos{border-left-color:var(--geo-elementos)}.tot-card.geo-total{border-left-color:var(--ink)}.tot-card.geo-losas .tot-lbl{color:var(--geo-losas)}.tot-card.geo-muros .tot-lbl{color:var(--geo-muros)}.tot-card.geo-elementos .tot-lbl{color:var(--geo-elementos)}.dt-tono{align-items:center;gap:8px;display:inline-flex}.dt-tono:before{content:"";background:var(--slate-300);border-radius:2px;width:8px;height:8px}.dt-tono.geo-losas:before{background:var(--geo-losas)}.dt-tono.geo-muros:before{background:var(--geo-muros)}.dt-tono.geo-elementos:before{background:var(--geo-elementos)}.cuenta-card{border:1px solid var(--slate-200);background:#fff;border-radius:14px;max-width:640px;margin-bottom:16px;overflow:hidden}.cuenta-card-head{border-bottom:1px solid var(--slate-100);align-items:flex-start;gap:14px;padding:18px 22px;display:flex}.cuenta-ico{background:var(--blue-soft);width:36px;height:36px;color:var(--blue);border-radius:10px;flex:none;place-items:center;display:grid}.cuenta-ico svg{width:18px;height:18px}.cuenta-titulo{color:var(--ink);font-size:15px;font-weight:650}.cuenta-sub{color:var(--slate-500);margin-top:2px;font-size:12.5px}.cuenta-card-body{gap:14px;padding:18px 22px;display:grid}.cuenta-acciones{justify-content:flex-end;align-items:center;gap:12px;margin-top:4px;display:flex}.cuenta-ok{color:var(--green-deep);align-items:center;gap:6px;font-size:12.5px;display:inline-flex}.pref-checks{flex-direction:column;gap:9px;margin-top:2px;display:flex}.pref-check{color:var(--ink);cursor:pointer;align-items:center;gap:9px;font-size:13.5px;display:flex}.pref-check input{width:16px;height:16px;accent-color:var(--blue);cursor:pointer}.avisos-menu{width:400px;max-height:440px;padding-bottom:6px;overflow-y:auto}.aviso-item{text-align:left;cursor:pointer;background:0 0;border:none;align-items:flex-start;gap:11px;width:100%;padding:11px 14px;font-family:inherit;transition:background .12s;display:flex}.aviso-item:hover{background:var(--slate-50)}.aviso-item.nuevo{box-shadow:inset 3px 0 0 var(--blue)}.aviso-ico{background:var(--slate-100);width:28px;height:28px;color:var(--slate-500);border-radius:8px;flex:none;place-items:center;display:grid}.aviso-ico svg{width:15px;height:15px}.aviso-ico.t-cubicada{background:var(--green-soft);color:var(--green-deep)}.aviso-ico.t-plano-devuelto{background:var(--amber-soft);color:var(--amber-deep)}.aviso-ico.t-fecha-vencida{background:var(--red-soft);color:var(--red)}.aviso-ico.t-fecha-cerca{background:var(--blue-soft);color:var(--blue)}.aviso-txt{flex-direction:column;gap:2px;min-width:0;display:flex}.aviso-txt b{color:var(--ink);font-size:13px;font-weight:600}.aviso-txt small{color:var(--slate-500);font-size:11.5px;line-height:1.35}.buscar-menu{z-index:60;border:1px solid var(--slate-200);background:#fff;border-radius:12px;max-height:420px;padding:6px;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto;box-shadow:0 18px 40px -14px #0f172a47}.buscar-vacio{color:var(--slate-500);text-align:center;padding:16px 14px;font-size:13px}.buscar-item{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:9px;align-items:center;gap:11px;width:100%;padding:9px 11px;font-family:inherit;display:flex}.buscar-item.on{background:var(--slate-100)}.buscar-tipo{background:var(--slate-100);width:26px;height:26px;color:var(--slate-500);border-radius:7px;flex:none;place-items:center;display:grid}.buscar-tipo svg{width:14px;height:14px}.buscar-tipo.t-proyecto{background:var(--blue-soft);color:var(--blue)}.buscar-tipo.t-partida{background:var(--amber-soft);color:var(--amber-deep)}.buscar-tipo.t-lamina{background:var(--green-soft);color:var(--green-deep)}.buscar-txt{flex-direction:column;gap:1px;min-width:0;display:flex}.buscar-txt b{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.buscar-txt small{color:var(--slate-500);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.card-falta{color:var(--red);background:var(--red-soft);white-space:nowrap;border-radius:6px;align-items:center;gap:5px;padding:3px 8px;font-size:11px;display:inline-flex}.rep-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:16px;margin-bottom:20px;display:grid}.rep-card{border:1px solid var(--slate-200);background:#fff;border-radius:14px;padding:18px 20px}.rep-card-head{margin-bottom:14px}.rep-card-titulo{color:var(--ink);font-size:14px;font-weight:650}.rep-leyenda{color:var(--slate-500);gap:14px;margin-top:6px;font-size:11.5px;display:flex}.rep-leyenda span{align-items:center;gap:6px;display:inline-flex}.rep-leyenda i{border-radius:2px;width:9px;height:9px;display:inline-block}.rep-barras{flex-direction:column;gap:9px;display:flex}.rep-barra-fila{grid-template-columns:130px 1fr 92px;align-items:center;gap:12px;display:grid}.rep-barra-nom{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.rep-barra-pista{background:var(--slate-100);border-radius:4px;gap:2px;height:16px;display:flex;overflow:hidden}.rep-barra-seg{border-radius:3px;min-width:2px;height:100%}.rep-barra-val{color:var(--slate-600);text-align:right;font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,monospace;font-size:11.5px}.rep-comp{flex-direction:column;gap:12px;display:flex}.rep-comp-item{align-items:center;gap:12px;display:flex}.rep-comp-barra{border-radius:2px;flex:none;width:4px;height:34px}.rep-comp-txt{flex-direction:column;display:flex}.rep-comp-txt b{color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:19px;font-weight:700}.rep-comp-txt b small{color:var(--slate-500);margin-left:2px;font-size:12px;font-weight:500}.rep-comp-txt>small{color:var(--slate-500);font-size:11.5px}.hoja-acciones{align-items:center;gap:12px;padding:16px 24px;display:flex}.hoja-fondo{justify-content:center;padding:0 24px 40px;display:flex}.hoja{color:#0a0d14;box-sizing:border-box;border:1px solid var(--slate-200);background:#fff;border-radius:4px;flex-direction:column;width:8.5in;min-height:11in;padding:.55in .6in;display:flex;box-shadow:0 14px 40px -20px #0f172a59}.hoja-head{border-bottom:2px solid #1d4ed8;justify-content:space-between;align-items:flex-start;padding-bottom:14px;display:flex}.hoja-marca{flex-direction:column;gap:6px;display:flex}.hoja-logo{width:auto;height:34px;display:block}.hoja-marca-txt{letter-spacing:.14em;text-transform:uppercase;color:#64748b;font-family:IBM Plex Mono,monospace;font-size:9.5px}.hoja-meta{text-align:right;color:#64748b;font-family:IBM Plex Mono,monospace;font-size:10px}.hoja-codigo{color:#1d4ed8;margin-top:3px;font-weight:600}.hoja-titulo{margin:20px 0 18px}.hoja-titulo h1{letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:25px;font-weight:700;line-height:1.15}.hoja-mandante{color:#64748b;margin-top:4px;font-size:12.5px}.hoja-ficha{border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;grid-template-columns:repeat(3,1fr);gap:9px 18px;margin:0 0 18px;padding:12px 0;display:grid}.hoja-ficha dt{letter-spacing:.1em;text-transform:uppercase;color:#94a3b8;margin-bottom:2px;font-family:IBM Plex Mono,monospace;font-size:8px}.hoja-ficha dd{color:#0a0d14;margin:0;font-size:11.5px}.hoja-kpis{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:16px;display:grid}.hoja-kpi{border:1px solid #e2e8f0;border-left:3px solid #1d4ed8;border-radius:8px;padding:11px 13px}.hoja-kpi-k{letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:4px;font-family:IBM Plex Mono,monospace;font-size:8.5px}.hoja-kpi-v{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:21px;font-weight:700}.hoja-kpi-v small{color:#64748b;margin-left:2px;font-size:11px;font-weight:500}.hoja-parcial{color:#b91c1c;background:#fee2e2;border:1px solid #fca5a5;border-radius:7px;margin-bottom:16px;padding:9px 12px;font-size:11px;font-weight:500}.hoja-seccion{margin-bottom:18px}.hoja-seccion h2{letter-spacing:.13em;text-transform:uppercase;color:#64748b;margin:0 0 9px;font-family:IBM Plex Mono,monospace;font-size:9.5px;font-weight:600}.hoja-tabla{border-collapse:collapse;width:100%;font-size:11px}.hoja-tabla th{text-align:left;letter-spacing:.07em;text-transform:uppercase;color:#64748b;border-bottom:1px solid #cbd5e1;padding:6px 8px;font-family:IBM Plex Mono,monospace;font-size:8.5px;font-weight:600}.hoja-tabla td{border-bottom:1px solid #f1f5f9;padding:6px 8px}.hoja-tabla .n{text-align:right;font-variant-numeric:tabular-nums}.hoja-tabla tfoot td{border-top:2px solid #cbd5e1;border-bottom:none;font-weight:700}.hoja-tabla-el{font-size:9.5px}.hoja-tabla-el td{vertical-align:top;padding:5px 8px}.hoja-tabla-el .desc{color:#334155;line-height:1.4}.hoja-tabla-el em{color:#94a3b8;letter-spacing:.04em;font-family:IBM Plex Mono,monospace;font-size:8px;font-style:normal}.hoja-nota{color:#94a3b8;margin-top:5px;font-size:9px;font-style:italic}.hoja-leyenda{color:#64748b;gap:14px;margin-bottom:9px;font-size:10px;display:flex}.hoja-leyenda span{align-items:center;gap:5px;display:inline-flex}.hoja-leyenda i{border-radius:2px;width:8px;height:8px;display:inline-block}.hoja-barras{flex-direction:column;gap:6px;display:flex}.hoja-barra-fila{grid-template-columns:110px 1fr 74px;align-items:center;gap:10px;display:grid}.hoja-barra-nom{text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.hoja-barra-pista{background:#f1f5f9;border-radius:3px;gap:2px;height:13px;display:flex;overflow:hidden}.hoja-barra-pista>div{border-radius:2px;min-width:2px;height:100%}.hoja-barra-val{color:#475569;text-align:right;font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,monospace;font-size:10px}.hoja-pie{color:#94a3b8;border-top:1px solid #e2e8f0;justify-content:space-between;margin-top:auto;padding-top:12px;font-size:9px;display:flex}@media print{@page{size:letter;margin:0}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html,body,#root,.app,main{background:#fff!important;height:auto!important;min-height:0!important;display:block!important;overflow:visible!important}.no-imprimir,.topbar,.left-panel,.sidebar{display:none!important}.hoja-fondo{padding:0;display:block}.hoja{width:8.5in;min-height:0;box-shadow:none;border:none;border-radius:0;margin:0;padding:.5in .55in}tr,.hoja-barra-fila,.hoja-kpi{break-inside:avoid}}.sel-proy{min-width:330px;position:relative}.sel-proy-btn{border:1px solid var(--slate-200);text-align:left;cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:10px;width:100%;padding:9px 12px;font-family:inherit;transition:all .12s;display:flex;box-shadow:0 1px #0f172a05}.sel-proy-btn:hover{border-color:var(--slate-300)}.sel-proy-btn.on{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.sel-proy-btn>svg:first-child{width:15px;height:15px;color:var(--slate-400);flex:none}.sel-proy-btn>svg:last-child{width:15px;height:15px;color:var(--slate-400);flex:none;transition:transform .18s}.sel-proy-btn>svg:last-child.girado{transform:rotate(180deg)}.sel-proy-txt{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.sel-proy-txt b{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:600;overflow:hidden}.sel-proy-txt b.vacio{color:var(--slate-400);font-weight:500}.sel-proy-txt small{color:var(--slate-500);font-family:IBM Plex Mono,monospace;font-size:10.5px}.sel-proy-menu{z-index:60;border:1px solid var(--slate-200);background:#fff;border-radius:12px;outline:none;max-height:380px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 18px 40px -14px #0f172a47}.sel-proy-item{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;width:100%;padding:9px 11px;font-family:inherit;display:flex}.sel-proy-item.on{background:var(--slate-100)}.sel-proy-item.elegido b{color:var(--blue)}.sel-proy-item svg{width:14px;height:14px;color:var(--blue);flex:none}.sel-proy-item-txt{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.sel-proy-item-txt b{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.sel-proy-item-txt small{color:var(--slate-500);font-family:IBM Plex Mono,monospace;font-size:10.5px}
