:root{--c1:#3B7BFF; --c2:#EA580C; --c3:#0D9488; --c4:#A855F7}
/* vista previa */
[hidden]{display:none!important}
.pv-bar{position:fixed; z-index:60; left:50%; transform:translateX(-50%); bottom:calc(14px + env(safe-area-inset-bottom,0px)); display:flex; gap:10px; align-items:center; padding:8px 10px 8px 16px; border-radius:99px; background:rgba(14,20,34,.92); border:1px solid var(--line2); backdrop-filter:blur(12px); font-size:12.5px; color:var(--muted); box-shadow:0 10px 30px rgba(0,0,0,.4); max-width:calc(100vw - 32px)}
.pv-bar b{color:var(--orange2)}
.pv-bar select{background:rgba(5,8,15,.8); border:1px solid var(--line2); border-radius:99px; padding:5px 10px; color:var(--text); font-size:12.5px; max-width:200px}
.pv-toast{position:fixed; z-index:70; left:50%; top:calc(18px + env(safe-area-inset-top,0px)); transform:translate(-50%,-20px); opacity:0; transition:.25s; pointer-events:none; background:var(--text); color:var(--bg); padding:11px 18px; border-radius:12px; font-weight:600; font-size:13px; max-width:90vw; text-align:center}
.pv-toast.show{opacity:1; transform:translate(-50%,0)}
@media (max-width:640px){ .pv-bar span.t{display:none} }

/* contenido de módulos */
.callout{padding:13px 16px; border-radius:12px; background:var(--orange-soft); border:1px solid rgba(234,88,12,.3); color:var(--text); font-size:13.5px; margin-bottom:18px}
.tbd{display:inline-block; font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; padding:2px 8px; border-radius:6px; background:var(--orange-soft); color:var(--orange2); border:1px dashed rgba(251,138,75,.6); white-space:nowrap}
.toc{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:26px}
.toc a{font-size:12.5px; padding:6px 11px; border-radius:99px; border:1px solid var(--line2); color:var(--muted); text-decoration:none}
.toc a:hover{color:var(--text); border-color:var(--blue2)}
.doc{display:flex; flex-direction:column; gap:34px; max-width:1040px}
.doc section{scroll-margin-top:20px}
.doc h2{font-size:24px; margin-bottom:12px; padding-bottom:10px; border-bottom:1px solid var(--line)}
.doc h3{font-size:14px; margin:18px 0 10px; color:var(--muted); text-transform:uppercase; letter-spacing:.08em}
.doc p{max-width:75ch; color:var(--text); margin:10px 0; line-height:1.65}
.doc .lead{font-family:var(--serif); font-size:22px; line-height:1.35; margin:4px 0 14px}
.doc-kpis{margin:14px 0}
.doc-kpis .v{font-size:28px}
.pts{margin:0; padding-left:20px; display:flex; flex-direction:column; gap:8px; max-width:80ch; line-height:1.6}
.pts li::marker{color:var(--orange)}
.chk-list{margin:0; padding-left:22px; display:flex; flex-direction:column; gap:6px}
.dt{font-size:13px}
.dt th{background:rgba(255,255,255,.03)}
.dt td.r,.dt th.r{text-align:right; font-variant-numeric:tabular-nums}
.tw .dt{min-width:620px}
.hbars{display:flex; flex-direction:column; gap:10px}
.hb{display:grid; grid-template-columns:minmax(120px,220px) minmax(0,1fr) auto; gap:12px; align-items:center; font-size:13px}
.hb > span:first-child{color:var(--muted)}
.hb .bar{height:10px}
.hb b{min-width:44px; text-align:right}
.stack{display:flex; height:22px; border-radius:8px; overflow:hidden; gap:2px}
.stack i{display:block; height:100%}
.seg-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:16px}
.seg{display:flex; gap:10px; align-items:flex-start}
.seg .sw{width:12px; height:12px; border-radius:4px; margin-top:6px; flex:none}
.seg b{font-family:var(--serif); font-size:26px; font-weight:600; margin-right:4px}
.seg small{display:block; color:var(--faint); font-size:12px}
.act{padding:18px; display:flex; flex-direction:column; gap:8px; align-items:flex-start}
.act p{margin:0; color:var(--muted); font-size:13px}
@media (max-width:900px){ .seg-grid{grid-template-columns:repeat(2,minmax(0,1fr))} .hb{grid-template-columns:1fr auto; } .hb .bar{grid-column:1/-1; order:3} }

/* protocolo */
.steps{display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:14px}
.stage{background:var(--glass); border:1px solid var(--line); border-radius:16px; padding:16px 18px}
.st-h{display:flex; gap:12px; align-items:center; margin-bottom:8px}
.st-h b{display:block} .st-h small{color:var(--faint)}
.st-n{width:30px; height:30px; border-radius:50%; display:grid; place-items:center; background:var(--blue-soft); color:var(--blue2); font-weight:700; flex:none}
.stage ol{margin:0; padding-left:22px; display:flex; flex-direction:column; gap:8px; color:var(--muted); line-height:1.55}
.stage ol b{color:var(--text)}
.doc h2.h2s{font-size:14px; margin:18px 0 10px; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; border:0; padding:0; font-family:var(--sans)}

/* asistente */
.ai-fab{position:fixed; z-index:55; right:calc(20px + env(safe-area-inset-right,0px)); bottom:calc(70px + env(safe-area-inset-bottom,0px)); display:flex; align-items:center; gap:9px; padding:12px 18px; border-radius:99px; border:0; cursor:pointer; background:linear-gradient(135deg,var(--blue),#3B7BFF); color:#fff; font-weight:700; box-shadow:0 10px 30px rgba(13,91,255,.45)}
.ai-dot{width:9px; height:9px; border-radius:50%; background:var(--orange); box-shadow:0 0 0 4px rgba(234,88,12,.3)}
.ai-panel{position:fixed; z-index:56; right:calc(20px + env(safe-area-inset-right,0px)); bottom:calc(20px + env(safe-area-inset-bottom,0px)); width:min(400px, calc(100vw - 32px)); max-height:calc(100vh - 60px); display:flex; flex-direction:column; background:rgba(12,17,30,.97); border:1px solid var(--line2); border-radius:18px; box-shadow:0 20px 60px rgba(0,0,0,.55); overflow:hidden}
.ai-h{display:flex; justify-content:space-between; align-items:center; padding:14px 16px; border-bottom:1px solid var(--line)}
.ai-h b{display:block} .ai-h small{color:var(--faint); font-size:12px}
.ai-h .icon-btn{background:none; border:0; color:var(--muted); font-size:24px; cursor:pointer; line-height:1}
.ai-msgs{padding:14px 16px; display:flex; flex-direction:column; gap:10px; overflow:auto}
.msg{padding:10px 13px; border-radius:14px; font-size:13.5px; line-height:1.5; max-width:88%}
.msg.me{align-self:flex-end; background:var(--blue); color:#fff; border-bottom-right-radius:4px}
.msg.ai{align-self:flex-start; background:rgba(255,255,255,.06); border:1px solid var(--line); border-bottom-left-radius:4px}
.ai-chip{margin-top:8px; display:inline-block; font-size:11.5px; font-weight:600; padding:3px 9px; border-radius:99px; background:var(--good-soft); color:var(--good)}
.ai-in{display:flex; gap:8px; padding:12px 16px; border-top:1px solid var(--line)}
.ai-note{margin:0; padding:0 16px 12px; font-size:11.5px; color:var(--faint)}

/* asistente: página completa */
.ai-full{display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:16px; align-items:start}
.ai-chat{display:flex; flex-direction:column; height:calc(100vh - 220px); min-height:460px; overflow:hidden}
.ai-chat .ai-msgs{flex:1; padding:20px 22px; display:flex; flex-direction:column; gap:12px; overflow:auto}
.ai-day{align-self:center; font-size:11.5px; color:var(--faint); text-transform:uppercase; letter-spacing:.1em}
.msg{padding:11px 14px; border-radius:16px; font-size:14px; line-height:1.55; max-width:78%}
.msg.me{align-self:flex-end; background:var(--blue); color:#fff; border-bottom-right-radius:5px}
.msg.ai{align-self:flex-start; background:rgba(255,255,255,.06); border:1px solid var(--line); border-bottom-left-radius:5px}
.ai-chip{margin-top:8px; display:inline-block; font-size:11.5px; font-weight:600; padding:3px 9px; border-radius:99px; background:var(--good-soft); color:var(--good)}
.ai-in{display:flex; gap:10px; padding:14px 16px; border-top:1px solid var(--line)}
.ai-side{display:flex; flex-direction:column; gap:14px}
.ai-side h3{font-size:13px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); margin-bottom:10px}
.sugs{display:flex; flex-direction:column; gap:8px}
.sugs button{text-align:left; padding:9px 12px; border-radius:10px; border:1px solid var(--line2); background:rgba(255,255,255,.03); cursor:pointer; font-size:13px}
.sugs button:hover{border-color:var(--blue2)}
.pts.sm{font-size:13px; gap:6px; color:var(--muted)}
@media (max-width:1000px){ .ai-full{grid-template-columns:1fr} .ai-chat{height:auto; min-height:0} .msg{max-width:92%} }

/* paneles generales */
.g2-1{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.chart-card{padding:18px 20px}
.ch-h{display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:12px}
.ch-h h3{font-size:16px; margin:0} .ch-h p{margin:3px 0 0; color:var(--muted); font-size:12.5px}
.cv{position:relative; height:260px} .cv.tall{height:300px}
.mini-h{font-size:12.5px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); margin:0 0 12px; font-family:var(--sans)}
.insights{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:12px; font-size:13.5px; color:var(--muted); line-height:1.5}
.insights li{padding-left:14px; border-left:2px solid var(--line2)} .insights b{color:var(--text)}
.sim-grid{display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:24px; margin-top:6px}
.sim-in{display:flex; flex-direction:column; gap:4px}
.sim-in label{display:flex; justify-content:space-between; font-size:13px; color:var(--muted); margin-top:8px} .sim-in label b{color:var(--text); font-variant-numeric:tabular-nums}
.sim-in input[type=range]{width:100%; accent-color:#3B7BFF; min-height:24px}
.sim-out{display:grid; gap:8px; align-content:start}
.so{display:flex; justify-content:space-between; align-items:baseline; gap:10px; padding:10px 14px; border-radius:12px; background:rgba(255,255,255,.04); border:1px solid var(--line)}
.so span{font-size:13px; color:var(--muted)} .so b{white-space:nowrap; font-family:var(--serif); font-size:22px; font-weight:600; font-variant-numeric:tabular-nums}
.doc-row{display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 0; border-top:1px solid var(--line); text-decoration:none!important; color:var(--text)}
.doc-row:first-of-type{border-top:0} .doc-row small{display:block; color:var(--faint); font-size:12px; font-weight:400} .doc-row:hover b{color:var(--blue2)}
.todo-l{margin:0; padding-left:20px; display:flex; flex-direction:column; gap:6px; font-size:13.5px; color:var(--muted)} .todo-l li::marker{color:var(--orange)}
.stack.big{height:30px; border-radius:10px}
.seg-grid.five{grid-template-columns:repeat(5,minmax(0,1fr))} .seg-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
a.seg{text-decoration:none!important; color:var(--text); border-radius:10px; padding:4px} a.seg:hover{background:rgba(255,255,255,.04)}
.tool{display:flex; flex-direction:column; gap:3px; padding:18px 20px; text-decoration:none!important; color:var(--text); transition:border-color .15s}
.tool:hover{border-color:var(--blue2)} .tool-n{font-family:var(--serif); font-size:32px; font-weight:600; line-height:1.1} .tool small{color:var(--faint); font-size:12.5px}
.funnel-v{display:flex; flex-direction:column; gap:8px}
.fv{position:relative; display:flex; justify-content:space-between; padding:10px 14px; border-radius:10px; background:rgba(255,255,255,.04); font-size:13.5px; overflow:hidden}
.fv::before{content:""; position:absolute; inset:0 auto 0 0; width:var(--w); background:rgba(59,123,255,.35); border-radius:10px}
.fv span,.fv b{position:relative}
.ai-hint{display:flex; align-items:center; gap:14px} .ai-hint > div{flex:1} .ai-hint .area-ic{width:38px; height:38px; display:grid; place-items:center; border-radius:12px; background:var(--orange-soft); color:var(--orange2); flex:none}
.cal-m{display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; font-size:12.5px}
.cal-m .dh{color:var(--faint); text-align:center; padding:4px 0; font-weight:600}
.cal-m .d{min-height:54px; border-radius:8px; background:rgba(255,255,255,.03); padding:5px 7px; color:var(--muted)}
.cal-m .d.x{background:none} .cal-m .d.wk{color:var(--faint)}
.ev{display:flex; gap:12px; align-items:center; padding:10px 0}
.ev-d{width:44px; height:44px; border-radius:12px; display:grid; place-items:center; background:var(--orange-soft); color:var(--orange2); font-weight:700; font-size:18px; flex:none}
.ev small{display:block; color:var(--faint); font-size:12px}
@media (max-width:1000px){ .g2-1,.sim-grid{grid-template-columns:1fr} .seg-grid.five{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:700px){ .seg-grid.three{grid-template-columns:1fr} .ai-hint{flex-wrap:wrap} .cv{height:230px} .cv.tall{height:260px} .cal-m .d{min-height:40px} }

.hitos{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; margin-top:16px; padding-top:16px; border-top:1px solid var(--line)}
.hito{display:flex; flex-direction:column; gap:1px; padding-left:12px; border-left:2px solid var(--c1)}
.hito span{font-size:11.5px; color:var(--faint); text-transform:uppercase; letter-spacing:.06em} .hito b{font-size:14px} .hito small{font-size:12px; color:var(--muted)}
.hito.next{border-left-color:var(--c3); border-left-style:dashed}
@media (max-width:1000px){ .hitos{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:600px){ .hitos{grid-template-columns:repeat(2,minmax(0,1fr))} }

/* finanzas */
.fin-head{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:18px}
.month-sw{display:flex; align-items:center; gap:10px}
.month-sw > span{display:flex; flex-direction:column} .month-sw b{font-size:18px; font-family:var(--serif)} .month-sw small{color:var(--faint); font-size:12.5px}
.ms{width:36px; height:36px; border-radius:10px; border:1px solid var(--line2); background:rgba(255,255,255,.03); color:var(--text); cursor:pointer; font-size:18px}
.ms:hover{border-color:var(--blue2)}
.kpi.hl{border-color:rgba(61,214,140,.35); background:linear-gradient(160deg, rgba(61,214,140,.08), var(--glass) 60%)}
.eq{display:flex; height:34px; border-radius:10px; overflow:hidden; gap:2px; margin-top:4px}
.eq i{display:block; height:100%}
.seg-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.seg b.sm{font-size:19px}
.tbl-h{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; padding:16px 18px 12px}
.tbl-h h3{margin:0; font-size:16px}
.chips{display:flex; gap:6px; flex-wrap:wrap}
.chip{border:1px solid var(--line2); background:rgba(255,255,255,.03); color:var(--muted); border-radius:99px; padding:6px 12px; font-size:12.5px; font-weight:600; cursor:pointer; min-height:32px}
.chip span{color:var(--faint); margin-left:3px} .chip.on{background:var(--blue-soft); border-color:rgba(127,166,255,.5); color:var(--blue2)}
.dt tfoot td{border-top:1px solid var(--line2); background:rgba(255,255,255,.03)}
.dt td small{font-size:11.5px}
.lst{display:flex; flex-direction:column; gap:8px; margin-top:14px; font-size:13.5px}
.lst > div{display:grid; grid-template-columns:auto 1fr auto auto; gap:10px; align-items:center}
.lst .sw{width:10px; height:10px; border-radius:3px} .lst b{font-variant-numeric:tabular-nums} .lst small{color:var(--faint); min-width:32px; text-align:right}
.fix-note{border-color:rgba(251,138,75,.35)} .fix-note .mini-h{color:var(--orange2)}
.cb-dot{display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:8px; vertical-align:middle}
.cb-n{display:block; color:var(--faint); font-size:12px; margin-top:2px; font-weight:400}
.cb-t td{vertical-align:top} .dt td.pos{color:var(--good)} .dt td.neg{color:var(--orange2)}
.rp-top{display:flex; justify-content:space-between; align-items:baseline; padding:12px 14px; border-radius:12px; background:var(--good-soft); margin-bottom:12px}
.rp-top span{color:var(--muted); font-size:13px} .rp-top b{font-family:var(--serif); font-size:24px; color:var(--good)}
.rp{display:flex; flex-direction:column; gap:8px}
.rp-h, .rp-r{display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,.8fr); gap:8px; align-items:center}
.rp-h span{font-size:11.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--faint)}
.rp-r > span{font-size:13.5px} .rp-r .in{text-align:right; font-variant-numeric:tabular-nums; min-height:42px}
.rp-res{display:flex; justify-content:space-between; align-items:baseline; gap:10px; flex-wrap:wrap; margin-top:12px; padding:12px 14px; border-radius:12px; background:rgba(255,255,255,.04); border:1px solid var(--line)}
.rp-res b{font-size:15px} .rp-res span{color:var(--muted); font-size:12.5px}
.rp-res.ok{background:var(--good-soft); border-color:rgba(61,214,140,.3)} .rp-res.ok b{color:var(--good)}
.rp-res.warn{background:var(--orange-soft); border-color:rgba(251,138,75,.35)} .rp-res.warn b{color:var(--orange2)}
.rp-res.bad{background:var(--bad-soft); border-color:rgba(255,107,129,.35)} .rp-res.bad b{color:var(--bad)}
.loan{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:6px 0 12px}
.loan small{display:block; color:var(--faint); font-size:12px} .loan b{font-family:var(--serif); font-size:20px}
.pay-l{display:flex; flex-direction:column; margin-top:10px}
.pay-l > div{display:grid; grid-template-columns:1fr auto; column-gap:12px; padding:9px 0; border-top:1px solid var(--line); font-size:13.5px}
.pay-l > div:first-child{border-top:0}
.pay-l span{color:var(--muted)} .pay-l b{text-align:right; font-variant-numeric:tabular-nums} .pay-l small{grid-column:1/-1; color:var(--faint); font-size:12px}
.pay-l .tot{border-top:1px solid var(--line2)} .pay-l .tot span{color:var(--text); font-weight:600}
.ctl{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px}
.ctl label{display:flex; flex-direction:column; gap:5px; font-size:12.5px; color:var(--muted); font-weight:600}
.ctl .in{text-align:right; min-height:42px}
@media (max-width:900px){ .seg-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))} .ctl{grid-template-columns:1fr} }
@media (max-width:600px){ .rp-h{display:none} .rp-r{grid-template-columns:1fr 1fr} .rp-r > span{grid-column:1/-1} }
.dt td.num, .dt td.r{white-space:nowrap}
.hbars.narrow .hb{grid-template-columns:1fr auto; row-gap:5px}
.hbars.narrow .hb .bar{grid-column:1/-1; order:3; height:7px}
@media (max-width:600px){ .kpi .v{font-size:24px; white-space:nowrap} .kpi{padding:14px 14px} .month-sw b{font-size:16px} }
.usd{color:#C4B5FD} .kpi .v.usd{color:#C4B5FD} .neg-v{color:var(--bad)}
#ctlU{margin-top:8px}
.money{position:relative; display:block}
.money > span{position:absolute; left:12px; top:50%; transform:translateY(-50%); font-size:13px; font-weight:700; pointer-events:none}
.money.uyu > span{color:var(--muted)} .money.usd > span{color:#C4B5FD}
.money.uyu .in{padding-left:28px} .money.usd .in{padding-left:44px; border-color:rgba(196,181,253,.35)}
.money .in{width:100%}
.ing-sum{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; margin-top:4px}
.ing-sum > div{padding:12px 14px; border-radius:12px; background:rgba(255,255,255,.03); border:1px solid var(--line); display:flex; flex-direction:column; gap:2px}
.ing-sum small{color:var(--muted); font-size:12px} .ing-sum b{font-size:17px; font-variant-numeric:tabular-nums} .ing-sum span{color:var(--faint); font-size:11.5px}
.ing-sum .net{background:var(--good-soft); border-color:rgba(61,214,140,.3)} .ing-sum .net b{color:var(--good)}
.neg-t{color:var(--orange2)}
.ing-d{margin-top:14px; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.02)}
.ing-d > summary{list-style:none; cursor:pointer; padding:12px 16px; display:flex; align-items:baseline; gap:12px; flex-wrap:wrap}
.ing-d > summary::-webkit-details-marker{display:none}
.ing-d > summary span{font-weight:700; color:var(--blue2)} .ing-d > summary span::before{content:"▸ "; display:inline-block; transition:transform .2s}
.ing-d[open] > summary span::before{content:"▾ "}
.ing-d > summary small{color:var(--faint); font-size:12.5px}
.dd{min-width:880px} .dd td,.dd th{padding-top:7px; padding-bottom:7px}
.dd tr.wk td{background:rgba(255,255,255,.02)} .dd tr.done td{color:var(--good)} .dd tr.done td b{color:var(--good)}
.ck{text-align:center; width:90px} .ck input{width:18px; height:18px; accent-color:#3DD68C; cursor:pointer}
.conc{margin-top:16px; padding-top:16px; border-top:1px solid var(--line)}
.conc h4{margin:0; font-size:14.5px} .conc p{margin:3px 0 12px; font-size:13px}
.conc .ctl{grid-template-columns:repeat(2,minmax(0,1fr)); max-width:640px}
@media (max-width:1100px){ .ing-sum{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:600px){ .ing-sum{grid-template-columns:repeat(2,minmax(0,1fr))} .conc .ctl{grid-template-columns:1fr} }
/* mes en curso editable */
.seg-m{display:inline-flex; padding:4px; gap:4px; border-radius:14px; background:rgba(255,255,255,.04); border:1px solid var(--line)}
.seg-m button{border:0; background:none; color:var(--muted); padding:8px 14px; border-radius:10px; cursor:pointer; text-align:left; display:flex; flex-direction:column}
.seg-m button b{font-size:14px; color:inherit} .seg-m button small{font-size:11.5px; color:var(--faint)}
.seg-m button.on{background:var(--blue-soft); color:var(--text); box-shadow:inset 0 0 0 1px rgba(127,166,255,.4)}
.saved{font-size:12.5px; color:var(--good); opacity:0; transition:opacity .3s} .saved.show{opacity:1}
.oc-pace .pace{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px}
.pace small{display:block; color:var(--muted); font-size:12.5px} .pace b{font-family:var(--serif); font-size:24px; display:block} .pace span{color:var(--faint); font-size:12px}
.pace b.up{color:var(--good)} .pace b.dn{color:var(--bad)}
.com-in{display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--muted); font-weight:600}
.money.pct{width:96px} .money.pct .in{padding:8px 26px 8px 10px; text-align:right; min-height:36px} .money.pct > span{left:auto; right:10px}
.dt.ed td{padding-top:4px; padding-bottom:4px}
.cell{width:100%; background:transparent; border:1px solid transparent; border-radius:8px; color:var(--text); font:inherit; font-size:13.5px; padding:7px 8px; min-height:34px}
.cell:hover{border-color:var(--line2)} .cell:focus{outline:none; border-color:var(--blue2); background:rgba(13,91,255,.08)}
.cell.num{text-align:right; font-variant-numeric:tabular-nums; min-width:92px}
.cell.note{color:var(--muted); min-width:120px} .cell.note::placeholder{color:var(--faint); opacity:.6}
select.cell{appearance:none; -webkit-appearance:none; cursor:pointer; padding-right:8px}
select.cell option{background:#0E1422; color:var(--text)}
.cell[type=date]{color-scheme:dark; min-width:130px}
.st{font-weight:700; font-size:12.5px} .st-pagado{color:var(--good)} .st-pendiente{color:var(--orange2)} .st-proximo{color:var(--blue2)}
#ocGas{min-width:980px} #ocGas td:first-child{min-width:200px}
#ocCob tr.empty input.num::placeholder{color:var(--faint)} #ocCob tr.empty td{opacity:.75}
#ocCob tr.last td{box-shadow:inset 0 -2px 0 rgba(127,166,255,.45)}
.del{width:30px; height:30px; border-radius:8px; border:1px solid transparent; background:none; color:var(--faint); font-size:18px; cursor:pointer}
.del:hover{color:var(--bad); border-color:rgba(255,107,129,.4)}
.oc-add{display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:14px 18px; border-top:1px solid var(--line)}
@media (max-width:900px){ .oc-pace .pace{grid-template-columns:1fr} .seg-m button{padding:7px 10px} }
#ocGas{min-width:1180px}
#ocGas td:nth-child(1){min-width:210px} #ocGas td:nth-child(2) .cell{min-width:150px} #ocGas td:nth-child(3) .cell{min-width:110px} #ocGas td:nth-child(4) .cell{min-width:140px} #ocGas td:nth-child(5) .cell{min-width:160px} #ocGas td:nth-child(6) .cell{min-width:140px} #ocGas td:nth-child(7) .cell{min-width:170px}
#ocGas .grp-t{float:none; margin-left:12px}
.n-col{width:44px; text-align:center; color:var(--faint); font-size:12.5px}
.dt tr.grp td{background:rgba(255,255,255,.035); padding-top:9px; padding-bottom:9px; font-size:12px; text-transform:uppercase; letter-spacing:.07em; color:var(--muted)}
.dt tr.grp b{color:var(--text)} .grp-t{float:right; text-transform:none; letter-spacing:0; font-variant-numeric:tabular-nums; font-weight:700; color:var(--muted)}
.dt tr.grp{cursor:pointer} .dt tr.grp:hover td{background:rgba(255,255,255,.06)}
.dt tr.grp:focus-visible{outline:2px solid var(--blue2); outline-offset:-2px}
.chev{display:inline-block; width:16px; color:var(--faint); transition:transform .15s; text-transform:none}
.dt tr.grp.closed .chev{transform:rotate(-90deg)}
.grp-n{margin-left:10px; text-transform:none; letter-spacing:0; color:var(--faint); font-weight:400}
.dt tfoot tr.ft td{background:none; border-top:1px solid var(--line); padding-top:9px; padding-bottom:9px}
.dt tfoot tr.ft:first-child td{border-top:1px solid var(--line2)}
.ft .dot{display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:9px; vertical-align:middle}
.ft-pag .dot{background:var(--good)} .ft-pen .dot{background:var(--orange2)} .ft-prox .dot{background:var(--blue2)}
.ft-pag td.num{color:var(--good)} .ft-pen td.num{color:var(--orange2)} .ft-prox td.num{color:var(--blue2)}
.dt tfoot tr.ft-tot td{background:rgba(255,255,255,.05); border-top:1px solid var(--line2); font-size:14.5px}
.dt tr.grp td{background:rgba(13,91,255,.14); border-top:1px solid rgba(127,166,255,.28); color:#AFC6FF}
.dt tr.grp b{color:#CFDDFF} .dt tr.grp .grp-t{color:#AFC6FF} .dt tr.grp .chev{color:#7FA6FF}
.dt tr.grp:hover td{background:rgba(13,91,255,.22)}
#ocSum{grid-template-columns:repeat(7,minmax(0,1fr))}
#ocSum .transit{background:rgba(127,166,255,.08); border-color:rgba(127,166,255,.3)} #ocSum .transit b{color:var(--blue2)}
#ocCob{min-width:1180px}
.cw{display:flex; align-items:center; gap:2px}
td.edited .cell{color:var(--orange2); background:var(--orange-soft); border-color:rgba(251,138,75,.4)}
.rv{border:0; background:none; color:var(--orange2); cursor:pointer; font-size:14px; padding:2px 4px; border-radius:6px}
.rv:hover{background:var(--orange-soft)}
.bk{font-size:12px; white-space:nowrap; color:var(--muted)} .bk-transit{color:var(--blue2); font-weight:600} .bk-ok{color:var(--good)}
#ocCob tr.future td{opacity:.45} #ocCob tr.today td{background:rgba(13,91,255,.08)}
.hoy{font-size:10.5px; font-weight:700; color:var(--blue2); text-transform:uppercase; margin-left:3px}
.cell:disabled{cursor:default}
@media (max-width:1300px){ #ocSum{grid-template-columns:repeat(4,minmax(0,1fr))} }
@media (max-width:600px){ #ocSum{grid-template-columns:repeat(2,minmax(0,1fr))} }
#ocCob tr.today.empty td{opacity:1}
#ocCob tr.done td{background:rgba(61,214,140,.07)} #ocCob tr.done .cell{color:var(--good)}
#ocCob tr.done td, #ocCob tr.done td.edited .cell{background:rgba(61,214,140,.13)}
#ocCob tr.done td{color:var(--good); border-color:rgba(61,214,140,.25)} #ocCob tr.done td b, #ocCob tr.done .cell, #ocCob tr.done td.muted, #ocCob tr.done td.faint{color:var(--good)}
#ocCob tr.today td{background:rgba(127,166,255,.06)} #ocCob tr.today .cell{color:var(--muted); font-style:italic}
.parc{font-size:12px; color:var(--blue2); font-style:italic; white-space:nowrap}
.mpick{display:flex; align-items:center; gap:8px}
.mp-sel select{min-height:40px; padding:8px 34px 8px 14px; font-weight:700; font-size:15px; font-family:var(--serif); background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%); background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%; background-size:5px 5px; background-repeat:no-repeat; appearance:none; -webkit-appearance:none; cursor:pointer; min-width:220px}
.mp-sel select option{background:#0E1422; font-family:var(--sans); font-weight:500}
.ms:disabled{opacity:.35; cursor:default}
.sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0)}
.hist-note{display:flex; gap:12px; align-items:flex-start} .hist-note p{margin:0; color:var(--muted); font-size:13.5px; line-height:1.55}
.view-sw{display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:26px}
.view-sw .muted{font-size:13px}
.cur-sw{display:inline-flex; gap:4px; padding:4px; border-radius:12px; background:rgba(255,255,255,.04); border:1px solid var(--line)}
.cur-sw button{border:0; background:none; color:var(--muted); padding:8px 14px; border-radius:9px; cursor:pointer; font-weight:700; font-size:13.5px; display:flex; align-items:center; gap:7px}
.cur-sw button span{font-size:12px; padding:2px 6px; border-radius:6px; background:rgba(255,255,255,.06)}
.cur-sw button small{font-weight:600; color:var(--faint); font-size:12.5px}
.cur-sw button.on[data-cur="uyu"]{background:rgba(255,255,255,.08); color:var(--text)} .cur-sw button.on[data-cur="uyu"] small{color:var(--text)}
.cur-sw button.on[data-cur="usd"]{background:rgba(196,181,253,.14); color:#C4B5FD} .cur-sw button.on[data-cur="usd"] small{color:#C4B5FD}
.cur-sw button[data-cur="usd"] span{color:#C4B5FD}
.usd-t td.num, .usd-t td.num b{color:#C4B5FD} .usd-t td.pos{color:#C4B5FD}
.cur-t td{padding-top:12px; padding-bottom:12px}
.pend-v{color:var(--orange2); font-style:italic}
.mv .mv-l{display:inline-block; font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--orange2); margin-bottom:6px}
.mv .lead{margin:0; font-size:17px; line-height:1.55}
.sv .glass{display:flex; flex-direction:column; gap:6px} .sv b{font-size:15px} .sv p{margin:0; color:var(--muted); font-size:13.5px; line-height:1.5}
.sv-h{margin:22px 0 10px; font-size:13px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); font-family:var(--sans)}
.sv.nx .tag{align-self:flex-start}
.ed-bar{position:sticky; top:118px; z-index:12; display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:10px 14px; margin:0 0 16px; border-radius:14px; background:rgba(12,17,30,.95); border:1px solid rgba(127,166,255,.45); box-shadow:0 10px 30px rgba(0,0,0,.4)}
.ed-tag{font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--blue2); background:var(--blue-soft); padding:3px 9px; border-radius:99px}
.ed-tools{display:flex; gap:4px; flex-wrap:wrap} .ed-act{display:flex; gap:8px; margin-left:auto}
.tb{border:1px solid var(--line2); background:rgba(255,255,255,.04); color:var(--text); border-radius:8px; padding:6px 10px; cursor:pointer; font-size:13px; min-height:32px}
.tb:hover{border-color:var(--blue2)}
article.doc.editing{outline:2px dashed rgba(127,166,255,.45); outline-offset:10px; border-radius:6px}
article.doc.editing [contenteditable], article.doc.editing *:focus{outline:none}
article.doc.editing p:hover, article.doc.editing li:hover, article.doc.editing h2:hover, article.doc.editing h3:hover{background:rgba(13,91,255,.07); border-radius:4px}
@media (max-width:900px){ .ed-bar{top:100px} .ed-act{margin-left:0} }
.esc-t{font-size:22px; margin:0}
.esc-presets{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:16px}
.esc-p{display:flex; flex-direction:column; align-items:flex-start; gap:2px; padding:12px 14px; border-radius:14px; border:1px solid var(--line); background:var(--glass); color:var(--text); cursor:pointer; text-align:left}
.esc-p .dot{width:10px; height:10px; border-radius:50%} .esc-p small{color:var(--faint); font-size:12px}
.esc-p.on{border-color:rgba(127,166,255,.6); background:rgba(13,91,255,.12)}
.esc-grid{display:grid; grid-template-columns:340px minmax(0,1fr); gap:16px; align-items:start}
.esc-in{position:sticky; top:130px; max-height:calc(100vh - 150px); overflow:auto; display:flex; flex-direction:column; gap:4px}
.esc-in .mini-h{margin:12px 0 2px} .esc-in .mini-h:first-child{margin-top:0}
.esc-in label{display:flex; flex-direction:column; gap:3px; font-size:12.5px; color:var(--muted); margin-top:6px}
.esc-in label b[data-o]{position:absolute; right:0; top:0} .esc-in label{position:relative}
.esc-in input[type=range]{width:100%; accent-color:#3B7BFF; min-height:22px} .esc-in input[type=range]:disabled{opacity:.4}
.esc-in label b{color:var(--text); font-variant-numeric:tabular-nums; font-size:12.5px}
.vt{border:1px solid var(--line); border-radius:12px; padding:8px 12px 10px; margin-top:8px}
.vt.off label:not(.sw-l){opacity:.4; pointer-events:none}
.sw-l{flex-direction:row!important; align-items:center; gap:8px!important; font-size:13px!important; color:var(--text)!important; flex-wrap:wrap}
.sw-l input{width:18px; height:18px; accent-color:#3DD68C}
.sm-sel{min-height:30px; padding:3px 8px; font-size:12.5px; width:auto}
.esc-out{display:flex; flex-direction:column; gap:14px}
#escTbl .dot{display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:6px}
#escTbl th.sel, #escTbl td.sel{background:rgba(13,91,255,.1); color:var(--text); font-weight:700}
@media (max-width:1100px){ .esc-grid{grid-template-columns:1fr} .esc-in{position:static; max-height:none} .esc-presets{grid-template-columns:repeat(2,minmax(0,1fr))} }
.ns-grid{display:grid; grid-template-columns:380px minmax(0,1fr); gap:16px; align-items:start; margin-top:14px}
.ns-in{display:flex; flex-direction:column; gap:7px; position:sticky; top:130px; max-height:calc(100vh - 150px); overflow:auto}
.ns-in .mini-h{margin:14px 0 2px} .ns-in .mini-h:first-child{margin-top:0}
.mr{display:grid; grid-template-columns:minmax(0,1fr) 150px; gap:10px; align-items:center; font-size:13px; color:var(--muted)}
.mr small{display:block; color:var(--faint); font-size:11.5px}
.mr .money .in{text-align:right; min-height:38px; font-variant-numeric:tabular-nums; padding-top:6px; padding-bottom:6px}
.money.sfx .in{padding-left:10px; padding-right:62px} .money.sfx > span{left:auto; right:10px; font-size:11.5px; font-weight:600; color:var(--faint)}
.ns-tot{display:flex; justify-content:space-between; padding:9px 12px; border-radius:10px; background:rgba(255,255,255,.04); border:1px solid var(--line2); font-size:13.5px; margin-top:2px}
.ns-tot b{font-variant-numeric:tabular-nums}
.ns-rec{margin-top:4px}
.ns-out{display:flex; flex-direction:column; gap:14px}
.ns-out .kpi .v{font-size:28px}
@media (max-width:1100px){ .ns-grid{grid-template-columns:1fr} .ns-in{position:static; max-height:none} }
.money.sfx{display:flex; align-items:center; gap:8px} .money.sfx > span{position:static; transform:none; white-space:nowrap; font-size:11.5px}
.money.sfx .in{padding:6px 10px; width:62px; flex:none}
.mr .money.sfx{justify-content:flex-end}
.ns-out .kpi .v{font-size:24px}
/* onboarding */
.sub-tabs{display:inline-flex; gap:4px; padding:4px; border-radius:12px; background:rgba(255,255,255,.04); border:1px solid var(--line); margin-bottom:18px; flex-wrap:wrap}
.sub-tabs button{border:0; background:none; color:var(--muted); padding:8px 14px; border-radius:9px; cursor:pointer; font-weight:700; font-size:13.5px}
.sub-tabs button.on{background:var(--blue-soft); color:var(--text); box-shadow:inset 0 0 0 1px rgba(127,166,255,.4)}
.ob-row{display:flex; justify-content:space-between; align-items:center; gap:12px; padding:11px 0; border-top:1px solid var(--line)}
.ob-row small{display:block; color:var(--faint); font-size:12px} .ob-tags{display:flex; gap:5px; flex-wrap:wrap; margin-top:5px}
.ob-st{display:flex; align-items:center; gap:10px; margin:14px 0 6px} .ob-st small{color:var(--faint)} .ob-st .st-n{width:24px; height:24px; font-size:12px}
.ob-task{display:flex; gap:10px; align-items:center; padding:7px 0; border-top:1px solid var(--line)}
.ob-task small{display:block; color:var(--faint); font-size:12px}
.ok-b{width:30px; height:30px; border-radius:50%; border:1px solid var(--line2); background:none; color:var(--faint); cursor:pointer; flex:none; font-weight:700}
.ok-b:hover{border-color:var(--good); color:var(--good); background:var(--good-soft)}
.hoy-tag{font-size:11px; font-weight:700; color:var(--blue2); background:var(--blue-soft); padding:1px 7px; border-radius:99px}
.prog{height:6px; border-radius:99px; background:rgba(255,255,255,.07); overflow:hidden; width:120px; margin-bottom:3px} .prog i{display:block; height:100%; background:var(--c1)}
.sala{border-radius:20px; border:1px solid var(--line2); background:#05080F; padding:20px}
.sala-top{display:flex; align-items:center; gap:14px; color:var(--muted); font-size:13px; flex-wrap:wrap} .sala-top .btn{margin-left:auto}
.live{color:var(--good); font-weight:700}
.sala-card{margin-top:16px; padding:30px; border-radius:18px; background:linear-gradient(140deg,rgba(13,91,255,.22),rgba(234,88,12,.08)); border:1px solid rgba(127,166,255,.35)}
.sala-hi{color:var(--blue2); font-weight:700; text-transform:uppercase; letter-spacing:.1em; font-size:13px}
.sala-n{font-family:var(--serif); font-size:46px; font-weight:600; line-height:1.1; margin:4px 0 10px}
.sala-meta{display:flex; gap:20px; flex-wrap:wrap; color:var(--muted); font-size:16px} .sala-meta b{color:var(--text)}
.sala-al{margin-top:14px; padding:10px 14px; border-radius:12px; background:var(--orange-soft); color:var(--orange2); font-weight:600}
.sala-p{margin-top:18px} .sala-ph{font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--faint); margin-bottom:6px}
.sala-pi{display:flex; justify-content:space-between; align-items:center; gap:10px; padding:12px 16px; border-radius:12px; background:rgba(255,255,255,.05); margin-top:8px; font-size:17px}
.sala-q{display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:16px; color:var(--muted); font-size:13px} .sala-q span{padding:4px 10px; border-radius:99px; background:rgba(255,255,255,.05)}
.au-k{text-align:left; cursor:pointer; color:var(--text); font:inherit} .au-k:hover{border-color:var(--blue2)}
.au-tools{display:flex; gap:10px; padding:0 18px 12px; flex-wrap:wrap} .au-tools .in{max-width:280px; min-height:38px}
@media (max-width:700px){ .sala-n{font-size:32px} }
.fun3{display:flex; flex-direction:column; gap:8px}
.f3{position:relative; display:flex; align-items:baseline; gap:12px; padding:12px 16px; border-radius:12px; background:rgba(255,255,255,.03); overflow:hidden}
.f3::before{content:""; position:absolute; inset:0 auto 0 0; width:var(--w); background:rgba(59,123,255,.28); border-radius:12px}
.f3 > *{position:relative} .f3 span{font-weight:600; min-width:190px} .f3 b{font-family:var(--serif); font-size:22px} .f3 small{color:var(--muted)}
.bs-segs{display:grid; grid-template-columns:repeat(9,minmax(0,1fr)); gap:8px}
.bs-s{display:flex; flex-direction:column; align-items:flex-start; gap:2px; padding:12px; border-radius:12px; border:1px solid var(--line); background:var(--glass); color:var(--text); cursor:pointer; text-align:left; font:inherit}
.bs-s b{font-family:var(--serif); font-size:22px} .bs-s span:last-child{font-size:12px; color:var(--muted); line-height:1.3}
.bs-s .sw, .bs-t .sw{display:inline-block; width:9px; height:9px; border-radius:3px; margin-right:6px}
.bs-s.on{border-color:rgba(127,166,255,.6); background:rgba(13,91,255,.12)}
.bs-r{cursor:pointer} .bs-r:hover td{background:rgba(255,255,255,.03)}
.bs-t td.todo{font-size:12.5px; color:var(--muted)}
.bs-f td{background:rgba(13,91,255,.06)!important; padding:14px 18px}
.bs-fi{display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:12px}
.bs-fi small{display:block; color:var(--faint); font-size:11.5px} .bs-fi b{font-size:14px}
.bs-fa{display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-top:12px; font-size:13.5px}
@media (max-width:1300px){ .bs-segs{grid-template-columns:repeat(5,minmax(0,1fr))} }
@media (max-width:700px){ .bs-segs{grid-template-columns:repeat(2,minmax(0,1fr))} .f3 span{min-width:0} }
.int-t{display:inline-block; margin-left:6px; font-size:11px; font-weight:600; padding:1px 7px; border-radius:99px; background:rgba(168,85,247,.16); color:#D8B4FE; vertical-align:1px}
.int-f{display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:0 18px 12px} .int-f .muted{font-size:13px}
.sala-int{margin-top:14px; padding:12px 16px; border-radius:12px; background:rgba(168,85,247,.12); border:1px solid rgba(168,85,247,.35)}
.sala-int span{font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:#D8B4FE; margin-right:10px} .sala-int b{font-size:18px} .sala-int p{margin:6px 0 0; color:var(--muted); font-size:15px}
.np-m{display:flex; flex-direction:column; gap:14px}
.np-m > div{display:grid; grid-template-columns:90px 60px 1fr; gap:4px 12px; align-items:center}
.np-m span{color:var(--muted); font-size:13px} .np-m b{font-family:var(--serif); font-size:26px} .np-m small{color:var(--faint); font-size:12px}
.np-b{grid-column:1/-1; display:flex; height:10px; border-radius:99px; overflow:hidden; gap:2px}
.en-list{display:flex; flex-direction:column}
.en-c{padding:14px 18px; border-top:1px solid var(--line)} .en-c p{margin:8px 0 0; line-height:1.55}
.en-h{display:flex; align-items:center; gap:8px; flex-wrap:wrap} .en-f{font-size:12.5px; margin-left:4px}
.en-h .en-s{margin-left:auto; width:auto !important; flex:0 0 150px; min-height:32px; padding:4px 10px; font-size:12.5px}
.en-resuelto{opacity:.6}
.np-dot{width:30px; height:30px; border-radius:50%; display:grid; place-items:center; font-weight:700; font-size:13px}
.np-dot.p{background:var(--good-soft); color:var(--good)} .np-dot.d{background:var(--bad-soft); color:var(--bad)} .np-dot.u{background:rgba(255,255,255,.08); color:var(--muted)}
.ai-h{display:flex; align-items:center; justify-content:flex-start; gap:10px; flex-wrap:wrap; margin-bottom:12px} .ai-h .mini-h{margin:0}
.tag.purple{background:rgba(168,85,247,.16); color:#D8B4FE}
.ai-h .muted{margin-left:auto} .ai-h .mini-h{flex:0 0 auto}
.en-toast{position:fixed; left:50%; bottom:24px; transform:translateX(-50%); background:#F1F5F9; color:#0B1220; padding:10px 16px; border-radius:12px; font-size:14px; z-index:99; box-shadow:0 8px 30px rgba(0,0,0,.4)}
