:root{--bg: #0b0e0c;--panel: #161b15;--panel-2: #1c231b;--line: #28301f;--line-soft: #1f271e;--ink: #eef2ec;--soft: #9aa69a;--faint: #808a80;--green: #4ec294;--green-l: #63d9a6;--amber: #e2b869;--sky: #7bb0e0;--danger: #e0765f;--green-bg: rgba(78, 194, 148, .15);--amber-bg: rgba(226, 184, 105, .15);--sky-bg: rgba(123, 176, 224, .14);--danger-bg: rgba(224, 118, 95, .14);--radius: 13px;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;--serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--green-l);text-decoration:none}.num{font-variant-numeric:tabular-nums}.mono{font-family:var(--mono)}.muted{color:var(--faint);font-size:13px}.app{min-height:100%;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:18px;padding:12px clamp(16px,4vw,32px);background:#0b0e0ce6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:9px;font-weight:700;font-size:15px;letter-spacing:-.01em}.brand .mark{width:24px;height:24px;border-radius:7px;background:linear-gradient(145deg,var(--green-l),var(--green));display:grid;place-items:center;color:#07130c;font-weight:800;font-size:13px}.topnav{display:flex;gap:4px;margin-left:8px}.topnav a{font-size:13.5px;color:var(--faint);padding:7px 12px;border-radius:8px;font-weight:500}.topnav a:hover{color:var(--ink);background:var(--panel)}.topnav a.active{color:var(--ink);background:var(--panel-2)}.account{margin-left:auto;display:flex;align-items:center;gap:10px}.account .email{font-size:12.5px;color:var(--faint)}.account .email:hover{color:var(--soft)}.content{flex:1;width:100%;max-width:1120px;margin:0 auto;padding:clamp(20px,3.5vw,34px) clamp(16px,4vw,32px) 48px;overflow-x:hidden}.recharts-tooltip-wrapper{max-width:min(70vw,240px)!important}.recharts-default-tooltip{white-space:normal!important;word-break:break-word}.tabbar{display:none}@media (max-width: 720px){.topnav,.account .email{display:none}.content{padding-bottom:86px}.tabbar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:30;background:#0f130ed1;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid var(--line);padding:8px 6px calc(8px + env(safe-area-inset-bottom,0px))}.tabbar a,.tabbar .mas{flex:1;display:grid;justify-items:center;gap:4px;font-size:11px;color:var(--faint);padding:4px 2px;background:none;border:0;font-family:inherit;cursor:pointer}.tabbar a .ic,.tabbar .mas .ic{width:20px;height:20px;border-radius:7px;border:2px solid currentColor;opacity:.85}.tabbar a.active,.tabbar .mas.active{color:var(--green)}.tabbar a.active .ic,.tabbar .mas.active .ic{background:var(--green-bg);border-color:var(--green)}.sheet-fondo{position:fixed;top:0;right:0;bottom:0;left:0;z-index:31;background:#00000073;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.sheet{position:fixed;z-index:32;left:0;right:0;bottom:calc(74px + env(safe-area-inset-bottom,0px));display:grid;gap:2px;padding:10px;background:#1a201bb8;backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);border-top:1px solid rgba(255,255,255,.09);border-radius:18px 18px 0 0;box-shadow:0 -12px 40px #0000008c,inset 0 1px #ffffff12}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.sheet{background:#1a201b}}.sheet a{padding:14px 12px;border-radius:12px;color:var(--ink);font-size:15px;font-weight:600}.sheet a.active{background:var(--green-bg);color:var(--green)}.sheet .btn{margin-top:6px;justify-content:center}}.page-title{font-size:clamp(22px,4vw,28px);letter-spacing:-.02em;font-weight:750;margin:0;text-wrap:balance}.page-sub{margin:6px 0 22px;color:var(--soft);font-size:14.5px;max-width:64ch}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.card+.card,.stack>*+*{margin-top:16px}.card-h{font-size:14px;font-weight:650;margin:0 0 14px}.kicker{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:650}.grid{display:grid;gap:16px;grid-template-columns:1fr}@media (min-width: 640px){.grid-2{grid-template-columns:1fr 1fr}}@media (min-width: 860px){.grid-3{grid-template-columns:1fr 1fr 1fr}}.figure{font-family:var(--serif);font-weight:600;letter-spacing:-.01em;line-height:1;font-variant-numeric:tabular-nums;font-size:clamp(30px,6vw,40px)}.figure small{font-family:var(--sans);font-size:.34em;color:var(--faint);font-weight:500}.metrics{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:12px}.metrics div{font-size:11.5px;color:var(--soft)}.metrics b{display:block;font-size:14px;color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}.status{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;white-space:nowrap}.status .ic{width:15px;height:15px;border-radius:50%;display:grid;place-items:center;font-size:9px;flex:none}.status.over{color:var(--amber)}.status.over .ic{background:var(--amber-bg)}.status.under{color:var(--sky)}.status.under .ic{background:var(--sky-bg)}.status.ok{color:var(--green-l)}.status.ok .ic{background:var(--green-bg)}.badge{display:inline-block;font-size:10.5px;font-weight:650;padding:2px 8px;border-radius:999px;letter-spacing:.02em}.badge.over{background:var(--amber-bg);color:var(--amber)}.badge.under,.badge.warn{background:var(--sky-bg);color:var(--sky)}.badge.ok{background:var(--green-bg);color:var(--green-l)}.badge.off{background:var(--panel-2);color:var(--faint)}.alloc-list{display:grid;gap:15px}.alloc-row{display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:center;padding-bottom:15px;border-bottom:1px solid var(--line-soft)}.alloc-row:last-child{border-bottom:0;padding-bottom:0}.alloc-name{font-size:13.5px;color:var(--ink);font-weight:600;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.alloc-name .tk{font-family:var(--mono);font-size:10px;color:var(--faint);font-weight:400}.track{grid-column:1 / -1;height:7px;border-radius:5px;background:var(--panel-2);position:relative;margin-top:8px}.track .fill{position:absolute;top:0;bottom:0;left:0;border-radius:5px}.track .fill.g{background:linear-gradient(90deg,var(--green),var(--green-l))}.track .fill.a{background:linear-gradient(90deg,#c79a44,var(--amber))}.track .tgt{position:absolute;top:-4px;bottom:-9px;width:2px;background:var(--ink);opacity:.7}.track .tgt:after{content:attr(data-label);position:absolute;top:14px;left:50%;transform:translate(-50%);font-size:9px;color:var(--soft);white-space:nowrap;font-variant-numeric:tabular-nums}.alloc-say{grid-column:1 / -1;font-size:11.5px;color:var(--soft);line-height:1.35;margin-top:22px}.align{display:flex;align-items:center;gap:16px}.align svg{width:56px;height:56px;flex:none}.align .v{font-size:14px;color:var(--ink);font-weight:600;margin-top:2px}.align .h{font-size:11.5px;color:var(--soft);margin-top:3px;line-height:1.35}.months{display:flex;gap:6px;margin-top:12px}.months .m{flex:1;text-align:center}.months .m .bar{height:26px;border-radius:5px;background:var(--panel-2);border:1px solid var(--line)}.months .m.on .bar{background:linear-gradient(180deg,var(--green-l),var(--green));border-color:transparent}.months .m span{display:block;font-size:9px;color:var(--faint);margin-top:5px;text-transform:capitalize}.nudge{font-size:12px;color:var(--soft);margin-top:12px;line-height:1.4}.nudge b{color:var(--green-l);font-weight:600}.btn{font-family:inherit;font-size:13.5px;font-weight:600;cursor:pointer;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);padding:9px 15px;border-radius:9px;transition:border-color .15s,background .15s}.btn:hover:not(:disabled){border-color:var(--green)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--green);border-color:var(--green);color:#07130c;font-weight:700}.btn.primary:hover:not(:disabled){background:var(--green-l)}.btn.ghost{background:transparent;color:var(--soft)}.btn.danger{background:transparent;border:0;color:var(--danger);padding:4px 8px}.btn.block{display:block;width:100%;text-align:center}.btn+.btn{margin-top:8px}.cluster{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.label{display:block;font-size:12px;color:var(--soft);margin-bottom:6px}.input{width:100%;font-family:inherit;font-size:14px;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:10px 12px}.input:focus{outline:none;border-color:var(--green)}.input.big{font-family:var(--serif);font-size:24px;padding:12px 14px}.field-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.field-row>.f{flex:1 1 150px;min-width:0}.input.file{padding:9px 10px;font-size:13px;line-height:1.4;max-width:100%;overflow:hidden}.input.file::file-selector-button{font-family:inherit;font-size:13px;margin-right:10px;background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:6px 10px;cursor:pointer}@media (max-width: 560px){.field-row>.f{flex:1 1 100%}}.rows{display:grid;gap:10px}.list-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--panel-2);border:1px solid var(--line);border-radius:11px;padding:12px 14px}.list-row .grow{flex:1;min-width:120px}.list-row .t1{font-size:14px;font-weight:600}.list-row .t2{font-size:12px;color:var(--faint);margin-top:2px}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;min-width:440px}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line-soft);white-space:nowrap}th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);font-weight:650}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.banner{border-radius:10px;padding:11px 14px;font-size:14px;margin-bottom:16px}.banner.error{background:var(--danger-bg);border:1px solid var(--danger);color:#ffc4b7}.banner.notice{background:var(--green-bg);border:1px solid transparent;color:var(--green-l)}.banner.info{background:var(--sky-bg);border-left:3px solid var(--sky);color:#cfe3f4}.steps{display:flex;gap:6px;margin:12px 0}.step{flex:1;font-size:10.5px;color:var(--soft);background:var(--panel-2);border:1px solid var(--line);border-radius:9px;padding:9px 10px;line-height:1.3}.step b{display:block;color:var(--ink);font-size:11px;margin-bottom:2px}.step.now{border-color:var(--green)}.disclaimer{font-size:10.5px;color:var(--faint);line-height:1.45;margin-top:12px}.empty{text-align:center;padding:8px 6px 4px}.empty .figure{margin:6px 0}.ob-steps{display:grid;gap:10px;margin:18px auto 0;max-width:460px;text-align:left}.ob{display:flex;gap:12px;align-items:flex-start;background:var(--panel-2);border:1px solid var(--line);border-radius:11px;padding:13px 15px}.ob .n{width:22px;height:22px;border-radius:7px;background:var(--green-bg);color:var(--green-l);font-weight:700;font-size:12px;display:grid;place-items:center;flex:none}.ob.done .n{background:var(--green);color:#07130c}.ob b{display:block;font-size:13.5px}.ob p{margin:3px 0 0;font-size:12px;color:var(--soft);line-height:1.4}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:100%;max-width:360px}.split-line{display:flex;align-items:center;justify-content:space-between;font-size:13px;gap:10px}.split-line+.split-line{margin-top:9px}.split-line .v{font-family:var(--mono);color:var(--green-l);font-weight:600}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.sk{border-radius:7px;background:linear-gradient(90deg,var(--panel-2) 25%,rgba(255,255,255,.06) 37%,var(--panel-2) 63%);background-size:400% 100%;animation:sk 1.4s ease infinite}@keyframes sk{0%{background-position:100% 50%}to{background-position:0 50%}}.trabajando{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--soft)}.spinner{width:13px;height:13px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--green);animation:giro .7s linear infinite}@keyframes giro{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.sk{animation:none}.spinner{animation-duration:2.4s}}.plegable>summary{cursor:pointer;list-style:none;padding:4px 0;font-weight:650;color:var(--ink);display:flex;align-items:center;gap:9px}.plegable>summary::-webkit-details-marker{display:none}.plegable>summary:before{content:"›";display:inline-block;transition:transform .15s ease;color:var(--green);font-size:18px;line-height:1}.plegable[open]>summary:before{transform:rotate(90deg)}.plegable>summary:hover{color:var(--green)}.secciones{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.seccion{display:block;padding:16px;border-radius:13px;background:var(--panel-2);border:1px solid var(--line);color:var(--ink)}.seccion:hover{border-color:var(--green)}.seccion b{display:block;font-size:15px;margin-bottom:5px}.seccion span{font-size:13px;color:var(--soft);line-height:1.45}.barra-comp{display:flex;height:30px;border-radius:9px;overflow:hidden;background:var(--panel-2)}.barra-comp>div{display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600}@media (max-width: 720px){body{font-size:16px}.kicker{font-size:11.5px}.disclaimer{font-size:12px}.badge{font-size:11px}.muted{font-size:13.5px}.metrics div{font-size:12.5px}.t2{font-size:13px}}
