/* Layout: barra lateral fija con navegación por iconos (escritorio) que pasa a barra superior con pestañas en móvil; contenido en columna de 1240px, tarjetas blancas sobre fondo gris hormigón */
/* Tokens: ver DESIGN.md. --brand es el naranja de relleno (con texto --brand-ink); --accent es el naranja legible para texto, barras y estados activos */
:root{
  --bg:#f6f5f2; --surface:#ffffff; --surface-2:#faf9f7; --ink:#0b0b0c; --muted:#6b6a70; --line:#e8e6e1; --line-2:#d7d4ce;
  --brand:#f28c1c; --brand-ink:#1a1006;
  --accent:#b4530a; --accent-ink:#1a1006; --accent-soft:#fdf0e1;
  --ok:#157a3d; --ok-soft:#e6f4ea; --warn:#9a6a00; --warn-soft:#fdf5d6; --bad:#c2261b; --bad-soft:#fcebe9;
  /* Menú lateral en gris hormigón; la opción activa en blanco con texto negro */
  --side:#e9e6df; --side-ink:#0b0b0c; --side-muted:#57565b; --side-hover:#dfdbd3; --side-line:#d6d2c9; --side-active:#ffffff; --side-accent:#0b0b0c;
  --shadow:0 1px 2px rgb(16 14 10 / .05);
  --shadow-lg:0 24px 60px -12px rgb(16 14 10 / .18),0 2px 6px rgb(16 14 10 / .05);
  --band:var(--side);
  --f-display:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-num:var(--f-body);
  --r:12px; --r-sm:8px; --r-lg:16px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0e0e10; --surface:#17171a; --surface-2:#1e1e22; --ink:#f4f4f5; --muted:#a1a1aa; --line:#26262b; --line-2:#34343a;
  --brand:#f59e2e; --brand-ink:#1a1006;
  --accent:#f5a54a; --accent-ink:#1a1006; --accent-soft:#2e2112;
  --ok:#4ade80; --ok-soft:#10261a; --warn:#facc15; --warn-soft:#2b250c; --bad:#f87171; --bad-soft:#331615;
  --side:#141416; --side-ink:#f4f4f5; --side-muted:#a1a1aa; --side-hover:#1f1f23; --side-line:#26262b; --side-active:rgb(255 255 255 / .09); --side-accent:#ffffff;
  --shadow:0 1px 2px rgb(0 0 0 / .4); --shadow-lg:0 24px 60px -12px rgb(0 0 0 / .7); color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0e0e10; --surface:#17171a; --surface-2:#1e1e22; --ink:#f4f4f5; --muted:#a1a1aa; --line:#26262b; --line-2:#34343a;
  --brand:#f59e2e; --brand-ink:#1a1006;
  --accent:#f5a54a; --accent-ink:#1a1006; --accent-soft:#2e2112;
  --ok:#4ade80; --ok-soft:#10261a; --warn:#facc15; --warn-soft:#2b250c; --bad:#f87171; --bad-soft:#331615;
  --side:#141416; --side-ink:#f4f4f5; --side-muted:#a1a1aa; --side-hover:#1f1f23; --side-line:#26262b; --side-active:rgb(255 255 255 / .09); --side-accent:#ffffff;
  --shadow:0 1px 2px rgb(0 0 0 / .4); --shadow-lg:0 24px 60px -12px rgb(0 0 0 / .7); color-scheme:dark}

*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--side)}
.num,td.n,th.n,.v,.hv,.v2{font-variant-numeric:tabular-nums}
h1,h2,h3{font-family:var(--f-display);font-weight:600;letter-spacing:-.025em;text-wrap:balance;margin:0;line-height:1.15}
h1{font-size:1.9rem} h2{font-size:1.6rem} h3{font-size:1.08rem;font-weight:600}
a{color:var(--accent)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* App: barra lateral + contenido */
.app{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100%}
.top{position:sticky;top:env(safe-area-inset-top,0px);align-self:start;height:calc(100vh - env(safe-area-inset-top,0px));background:var(--side);color:var(--side-ink);border-right:1px solid var(--side-line);z-index:9}
.top-in{height:100%;display:flex;flex-direction:column;gap:18px;padding-block:20px;padding-left:max(14px,env(safe-area-inset-left,0px));padding-right:14px;overflow-y:auto}
.brand{display:flex;align-items:center;gap:10px;padding:0 6px}
.brand .mark{width:34px;height:34px;border-radius:9px;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center;flex:none}
.brand .mark svg{width:20px;height:20px}
.brand h1{font-size:1.15rem;line-height:1.1}
.brand span{display:block;color:var(--side-muted);font-size:.76rem;font-weight:500}
.tabs{display:flex;flex-direction:column;gap:2px}
.tab{display:flex;align-items:center;gap:11px;background:none;border:0;color:var(--side-muted);padding:9px 10px;border-radius:9px;font-weight:500;font-size:.93rem;cursor:pointer;text-align:left;white-space:nowrap;transition:background .15s,color .15s}
.tab svg{width:19px;height:19px;flex:none}
.tab:hover{background:var(--side-hover);color:var(--side-ink)}
.tab[aria-current="page"]{background:var(--side-active);color:var(--side-accent);font-weight:600;box-shadow:var(--shadow)}
.navsep{font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:var(--side-muted);font-weight:600;padding:12px 10px 4px}
.quick{display:flex;flex-direction:column;gap:6px;margin-top:auto;padding-top:14px;border-top:1px solid var(--side-line)}
.quick .btn{justify-content:flex-start}

/* Botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);padding:8px 14px;border-radius:var(--r-sm);cursor:pointer;font-weight:600;font-size:.9rem;white-space:nowrap;box-shadow:var(--shadow);transition:background .15s,border-color .15s,box-shadow .15s}
.btn:hover{border-color:var(--muted);background:var(--surface-2)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.btn.primary:hover{filter:brightness(1.05);background:var(--brand)}
.btn.ghost{background:transparent;border-color:transparent;color:var(--accent);padding-inline:8px;box-shadow:none}
.btn.ghost:hover{background:var(--accent-soft)}
.btn.danger{color:var(--bad);background:transparent;box-shadow:none}
.btn.danger.armed{background:var(--bad);border-color:var(--bad);color:#fff}
.btn:disabled{opacity:.5;cursor:not-allowed}
a.btn{text-decoration:none}
.btn svg{width:16px;height:16px}

/* Contenido */
main{width:100%;max-width:1280px;margin:0 auto;padding-left:max(28px,env(safe-area-inset-left,0px));padding-right:max(28px,env(safe-area-inset-right,0px));padding-block:30px 72px;display:flex;flex-direction:column;gap:26px;min-width:0}
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.head p{margin:6px 0 0;color:var(--muted);max-width:66ch;font-size:.95rem}
.eyebrow{font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:600}
.head .eyebrow{color:var(--accent)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;box-shadow:var(--shadow)}
.card > h3{margin-bottom:14px}
.stack{display:flex;flex-direction:column;gap:12px}
.stack > h3{font-size:1.08rem}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:20px}
.grid2 > *{min-width:0}

/* KPIs */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:14px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--shadow);min-width:0}
.kpi .eyebrow{letter-spacing:.06em}
.kpi .v{font-family:var(--f-display);font-weight:700;font-size:1.95rem;line-height:1.1;letter-spacing:-.015em}
.kpi .s{color:var(--muted);font-size:.82rem}

/* Tablas */
.tbl{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow)}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th,td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}
th{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;background:var(--surface);white-space:nowrap;border-bottom:1px solid var(--line-2)}
td.n,th.n{text-align:right;white-space:nowrap}
tr:last-child td{border-bottom:0}
tbody tr{transition:background .12s}
tbody tr:hover td{background:var(--surface-2)}
tr.click{cursor:pointer}
tfoot td{font-weight:700;background:var(--surface-2);border-top:1px solid var(--line-2)}
.sub{display:block;color:var(--muted);font-size:.8rem;font-weight:400}

/* Señales */
.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:.76rem;font-weight:600;white-space:nowrap;background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}
.chip::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.chip.ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}
.chip.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.chip.bad{background:var(--bad-soft);color:var(--bad);border-color:transparent}
.chip.info{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.tag{display:inline-block;padding:2px 8px;border-radius:6px;background:var(--surface-2);border:1px solid var(--line);font-size:.76rem;margin:2px 4px 2px 0;white-space:nowrap;color:var(--muted);font-weight:500}
.pos{color:var(--ok)} .neg{color:var(--bad)}

/* Barra de consumo: la marca vertical es el 100 % previsto */
.meter{position:relative;height:8px;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;min-width:90px}
.meter i{position:absolute;inset:0 auto 0 0;border-radius:999px;background:var(--accent);transition:width .4s ease}
.meter i.warn{background:var(--warn)} .meter i.bad{background:var(--bad)}
.meter b{position:absolute;top:-4px;bottom:-4px;width:2px;border-radius:1px;background:var(--ink);opacity:.45}
.mcell{display:flex;align-items:center;gap:10px}
.mcell .num{font-size:.82rem;min-width:44px;text-align:right;font-weight:600}

/* Avisos */
.alerts{display:flex;flex-direction:column;gap:8px}
.alert{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;padding:12px 16px;border-radius:var(--r-sm);background:var(--warn-soft);border:1px solid transparent}
.alert.bad{background:var(--bad-soft)}
.alert p{margin:0}
.alert strong{display:block;color:var(--warn)}
.alert.bad strong{color:var(--bad)}
.banner{padding:14px 18px;border-radius:var(--r);background:var(--accent-soft);display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.banner p{margin:0;max-width:72ch}

/* Partidas obra */
.part{display:grid;grid-template-columns:minmax(120px,1.2fr) repeat(3,minmax(80px,1fr)) minmax(110px,1.3fr);gap:8px 14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.part:last-child{border-bottom:0}
.part.h{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;padding-top:0}
.part .r{text-align:right}

/* Vacío */
.empty{padding:32px;text-align:left;border:1px dashed var(--line-2);border-radius:var(--r);background:var(--surface);color:var(--muted)}
.empty h3{color:var(--ink);margin-bottom:6px}
.steps{margin:10px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:4px}

/* Filtros */
.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.field{display:flex;flex-direction:column;gap:5px;min-width:0}
.field label{font-size:.78rem;font-weight:600;color:var(--muted)}
.field small{color:var(--muted);font-size:.78rem}
input,select,textarea{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:9px 11px;width:100%;min-width:0;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
input[type=number]{font-variant-numeric:tabular-nums}
textarea{min-height:64px;resize:vertical}

/* Panel: tarjetas de obra */
.ocards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px}
.ocard{display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow);cursor:pointer;text-align:left;color:inherit;font:inherit;transition:border-color .15s,box-shadow .15s,transform .15s}
.ocard:hover{border-color:var(--accent);box-shadow:0 6px 20px rgb(20 30 26 / .09);transform:translateY(-1px)}
.ocard .ot{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.ocard .ot strong{font-size:1rem;line-height:1.3}
.ocard .om{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding-top:10px;border-top:1px solid var(--line)}
.ocard .om span{display:flex;flex-direction:column;font-size:.72rem;color:var(--muted);font-weight:500}
.ocard .om b{font-size:.98rem;color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums}
.ocard .ob{display:flex;flex-direction:column;gap:7px}
.ocard .obl{display:grid;grid-template-columns:96px 1fr 46px;gap:8px;align-items:center;font-size:.78rem;color:var(--muted)}
.ocard .obl .num{text-align:right;color:var(--ink);font-weight:600}
.sbar{height:7px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);position:relative;overflow:hidden}
.sbar i{position:absolute;inset:0 auto 0 0;border-radius:999px;background:var(--accent);transition:width .4s ease}
.sbar i.warn{background:var(--warn)}.sbar i.bad{background:var(--bad)}.sbar i.ok{background:var(--ok)}

@media (max-width:980px){
  .app{display:block}
  .top{position:sticky;height:auto;border-right:0;border-bottom:1px solid var(--line)}
  .top-in{height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px 12px;padding-block:10px 0;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));overflow:visible}
  .brand{flex:1;padding:0}
  .quick{flex-direction:row;margin:0;padding:0;border:0}
  .quick .btn{padding:7px 11px}
  .quick .btn .lbl{display:none}
  .tabs{flex-direction:row;overflow-x:auto;scrollbar-width:none;width:100%;gap:2px;padding-bottom:6px}
  .tabs::-webkit-scrollbar{display:none}
  .navsep{display:none}
  .tab{padding:8px 11px;font-size:.88rem}
  .tab svg{width:17px;height:17px}
  main{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:20px 64px;gap:20px}
}

/* Hoja (formulario emergente) */
[hidden]{display:none!important}
.sheet{position:fixed;inset:0;z-index:20;background:#0a0d1299;display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:max(24px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) max(24px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px))}
.sheet-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;width:100%;max-width:640px;box-shadow:0 20px 50px #0005}
.sheet-card header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}
.sheet-card form{padding:18px;display:flex;flex-direction:column;gap:14px}
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:12px}
.fsec{font-family:var(--f-display);font-size:1.05rem;font-weight:600;border-top:1px solid var(--line);padding-top:12px;margin-top:2px}
.factions{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:14px}
.factions > div{display:flex;gap:8px;flex-wrap:wrap}
.prows{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:6px}
.prow{display:grid;grid-template-columns:1fr 110px;gap:10px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--line)}
.prow:last-child{border-bottom:0}
.prow label{font-weight:500}
.prow label small{display:block;color:var(--muted);font-weight:400}
.hint{font-size:.82rem;color:var(--muted);margin:0}
.calc{background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:12px;display:flex;flex-direction:column;gap:10px}

.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--surface);padding:10px 16px;border-radius:6px;z-index:30;max-width:min(92vw,520px);font-size:.9rem}
.muted{color:var(--muted)}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.loading{color:var(--muted);padding:40px 0}
.sheet-card.wide{max-width:1100px}
.caprow td{background:var(--surface-2);font-weight:600;font-size:.8rem;letter-spacing:.02em}
td.cod{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--muted)}
.avance{display:grid;grid-template-columns:minmax(160px,220px) 1fr;gap:16px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:6px;background:var(--surface-2)}
.avance .v{display:block;font-size:1.8rem;font-weight:600;line-height:1.1;margin:4px 0}
.avance .s{display:block;color:var(--muted);font-size:.85rem}
.avbars{display:flex;flex-direction:column;gap:8px}
.avrow{display:grid;grid-template-columns:110px 1fr auto;gap:10px;align-items:center;font-size:.85rem}
.avrow .mcell{grid-column:2/4}
.w-cert{width:70px}
.kpi.click{cursor:pointer}.kpi.click:hover{background:var(--surface-2)}
.kpi .vy{font-size:1.1rem;color:var(--muted);font-weight:600}
.hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:24px;align-items:center;border-left:6px solid var(--accent)}
.hero .hmain{display:flex;flex-direction:column;gap:4px}
.hero .hv{font-family:var(--f-display);font-weight:700;font-size:3.4rem;line-height:1;font-variant-numeric:tabular-nums}
.hero .hv small{font-size:1.1rem;color:var(--muted);font-weight:600;margin-left:6px}
.hero .s{color:var(--muted);font-size:.85rem}
.hero .hside{display:flex;flex-direction:column;gap:12px;border-left:1px solid var(--line);padding-left:20px}
.hero .hside>div{display:flex;flex-direction:column}
.hero .v2{font-family:var(--f-display);font-weight:700;font-size:1.7rem;line-height:1.1;font-variant-numeric:tabular-nums}
.cbar.static{cursor:default}.cbar.static:hover{background:none;border-color:transparent}
.cbar .cl .sub{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.meter.big{height:14px;border-radius:7px;margin:6px 0}
.meter.big i{border-radius:6px;transition:width .4s ease}
.mbars{display:grid;grid-template-columns:repeat(12,1fr);gap:6px;align-items:end;height:150px;padding-top:4px}
.mb{display:flex;flex-direction:column;align-items:center;height:100%;gap:4px;min-width:0}
.mbv{font-size:.66rem;color:var(--muted);font-family:var(--f-num);white-space:nowrap;min-height:1em}
.mbt{flex:1;width:100%;max-width:38px;display:flex;align-items:flex-end;border-bottom:1px solid var(--line)}
.mbt i{display:block;width:100%;background:var(--accent);border-radius:4px 4px 0 0;min-height:0;transition:height .4s ease}
.mb:hover .mbt i{filter:brightness(1.15)}
.mbl{font-size:.7rem;color:var(--muted);text-transform:capitalize}
@media (max-width:640px){.hero{grid-template-columns:1fr}.hero .hside{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:12px}.hero .hv{font-size:2.6rem}.mbv{display:none}.mbars{gap:3px}}
.fbar{display:block;position:relative;height:10px;border-radius:5px;background:var(--surface-2);border:1px solid var(--line);overflow:hidden;margin:6px 0 4px}
.fbar i{position:absolute;inset:0 auto 0 0;background:var(--accent);border-radius:0 4px 4px 0;transition:width .4s ease}
.fbar i.over{background:var(--warn)}
.fbar.sm{height:6px;margin:4px 0 2px;min-width:120px;margin-left:auto}
.vcell{min-width:170px}
.kventa .vy{font-size:1.1rem;color:var(--muted);font-weight:600}
.kventa .pc{color:var(--accent);font-weight:600}
.msearch{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;position:sticky;top:calc(env(safe-area-inset-top,0px) + 92px);z-index:5;background:var(--bg);padding:8px 0}
.msearch .sbox{flex:1 1 320px}
.msearch .sbox input{font-size:1.05rem;padding:11px 14px 11px 38px;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23596170' stroke-width='2'%3E%3Ccircle cx='8' cy='8' r='6'/%3E%3Cpath d='m13 13 4 4'/%3E%3C/svg%3E") no-repeat 12px center}
.kpi-t{font-size:1.35rem!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cbars{display:flex;flex-direction:column;gap:4px}
.cbar{display:grid;grid-template-columns:minmax(120px,220px) 1fr 90px 60px;gap:10px;align-items:center;background:none;border:1px solid transparent;border-radius:6px;padding:5px 8px;cursor:pointer;text-align:left;color:inherit}
.cbar:hover{background:var(--surface-2);border-color:var(--line)}
.cbar.on{background:var(--accent-soft);border-color:var(--accent)}
.cbar.off{opacity:.45}
.cbar .cl{font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cbar .ct{height:12px;background:var(--surface-2);border-radius:0 4px 4px 0;position:relative}
.cbar .ct i{position:absolute;inset:0 auto 0 0;background:var(--accent);border-radius:0 4px 4px 0;transition:width .4s ease}
.cbar .cv{text-align:right;font-size:.85rem}.cbar .cp{text-align:right;font-size:.78rem;color:var(--muted)}
.mhead,.mat>summary{display:grid;grid-template-columns:minmax(200px,2.4fr) minmax(90px,1fr) 70px minmax(100px,1fr) minmax(150px,1.3fr);gap:12px;align-items:center}
.mhead{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600;padding:0 14px}
.mhead span:not(:first-child){text-align:right}
.mats{display:flex;flex-direction:column;gap:6px}
.mat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);transition:border-color .15s,box-shadow .15s}
.mat:hover{border-color:var(--muted)}
.mat[open]{border-color:var(--accent);box-shadow:0 2px 10px #0001}
.mat>summary{list-style:none;cursor:pointer;padding:12px 14px}
.mat>summary::-webkit-details-marker{display:none}
.mat>summary>span:not(.mname){text-align:right}
.mname strong{display:block;position:relative;padding-left:16px}
.mname strong::before{content:"";position:absolute;left:0;top:.45em;border:5px solid transparent;border-left-color:var(--muted);transition:transform .15s}
.mat[open] .mname strong::before{transform:rotate(90deg) translateX(2px);border-left-color:var(--accent)}
.mtags{display:block;padding-left:16px}
.tag.cat{background:var(--accent-soft);border-color:transparent;color:var(--accent)}
.ud{color:var(--muted);font-size:.8rem}
.mi .num{display:block}
.mbar{display:block;height:6px;background:var(--surface-2);border-radius:3px;margin-top:4px;position:relative;overflow:hidden}
.mbar i{position:absolute;inset:0 0 0 auto;background:var(--accent);border-radius:3px}
.mdet{padding:0 14px 14px;display:flex;flex-direction:column;gap:10px}
.medit{display:grid;grid-template-columns:minmax(180px,2fr) minmax(160px,1fr) auto;gap:10px;align-items:end;padding:10px;background:var(--surface-2);border-radius:6px}
.medit .hint{grid-column:1/-1}
mark{background:#ffe58a;color:#15191f;border-radius:2px;padding:0 1px}
@media (max-width:760px){
 .mhead{display:none}
 .mat>summary{grid-template-columns:1fr 1fr;gap:6px 12px}
 .mat>summary .mname{grid-column:1/-1}
 .mat>summary>span:not(.mname){text-align:left}
 .mat>summary>span[data-l]::before{content:attr(data-l);display:block;font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
 .cbar{grid-template-columns:1fr 70px;}.cbar .ct{grid-column:1/-1;grid-row:2}.cbar .cp{display:none}
 .medit{grid-template-columns:1fr}
 .msearch{position:static}
}
@media (max-width:640px){.avance{grid-template-columns:1fr}.avrow{grid-template-columns:90px 1fr auto}}
.drop{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border:2px dashed var(--line);border-radius:8px;padding:14px;background:var(--surface-2)}
.drop p{margin:2px 0 0}
.drop.over{border-color:var(--accent);background:var(--accent-soft)}
.flist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.flist:empty{display:none}
.flist li{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:6px 10px;border:1px solid var(--line);border-radius:6px;font-size:.88rem}
.flist .fn{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.flist .fs{color:var(--muted);white-space:nowrap}
.lt td{padding:6px 6px;vertical-align:top}
.lt input,.lt select{padding:5px 6px;font-size:.85rem;min-width:110px}
.lt input[type=checkbox]{min-width:0;width:18px;height:18px;margin-top:6px}
.lt .w-num{min-width:90px}.lt .w-imp{min-width:100px;text-align:right}
.lt td:nth-child(6) input{min-width:170px}
.lt td:nth-child(9){min-width:150px}
.warnrow td{background:var(--warn-soft)}
.errrow td{background:var(--bad-soft)}
.savedrow td{opacity:.55}
.warnTxt{color:var(--warn)!important}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;padding:0}
.fact{display:block;max-width:100%;max-height:240px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}
.lineas summary{cursor:pointer;font-weight:500;color:var(--accent);padding:4px 0}
.lineas .tbl{margin-top:8px;max-height:260px;overflow:auto}
@media (max-width:640px){
  h1{font-size:1.7rem}
  .part{grid-template-columns:1fr 1fr 1fr;}
  .part .lbl{grid-column:1/-1;font-weight:600}
  .part .bar{grid-column:1/-1}
  .part.h{display:none}
  .part .r::before{content:attr(data-l);display:block;font-family:var(--f-body);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
}
/* Ajustes del rediseño */
.gbars{display:flex;flex-direction:column;gap:12px}
.gb{display:grid;grid-template-columns:minmax(150px,1.2fr) 2fr minmax(110px,auto);gap:14px;align-items:center}
.gl strong{display:block;font-size:.92rem}
.gt{position:relative;height:22px}
.gt i{position:absolute;left:0;border-radius:6px}
.gt i.p{top:0;height:22px;background:var(--accent-soft);border:1.5px dashed var(--accent);opacity:.9}
.gt i.r{top:6px;height:10px;background:var(--accent)}.gt i.r.over{background:var(--bad)}
.gv{text-align:right;font-size:.9rem}.gv .sub{display:block}
.legend .li.prevh{background:var(--accent-soft);outline:1.5px dashed var(--accent)}.legend .li.realh{background:var(--accent)}
.plist{list-style:none;margin:0;padding:0}.plist li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line)}.plist li:first-child{border-top:0}
.tdot.okd{background:var(--ok)}
.ptab td .chip{margin:1px 0;white-space:nowrap}
.lgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:14px;align-items:start}
.lcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px}
.lhead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.lhead strong{display:block;font-size:.93rem}
.clamp2{display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.modo.seg{display:flex!important}.okc.sm{width:22px;height:22px;font-size:.8rem}
.mtab tr.done td{color:var(--muted)}.mtab td .chip{margin:1px 0;white-space:nowrap}
.btab td:first-child{min-width:240px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.cierre{border-left:4px solid var(--accent)}
.lecc{background:var(--accent-soft);border-radius:var(--r-sm);padding:12px 14px}.lecc ul{margin:6px 0 0;padding-left:18px}.lecc li{margin:3px 0}
.envq{white-space:nowrap}.envin{width:56px;padding:2px 4px;font-size:.8rem;text-align:right;min-height:0}
.pbtitle{font:inherit;font-family:var(--f-display);font-size:1.6rem;font-weight:700;border:1px solid transparent;border-radius:var(--r-sm);padding:2px 6px;margin-left:-6px;background:transparent;color:inherit;width:min(100%,640px)}.pbtitle:hover,.pbtitle:focus{border-color:var(--line-2);background:var(--surface)}
.pbtab td{vertical-align:top}.pbtab td:first-child{min-width:300px}.pbdesc{width:100%;font:inherit;font-weight:600;border:1px solid transparent;border-radius:6px;padding:3px 5px;background:transparent;color:inherit}.pbdesc:hover,.pbdesc:focus{border-color:var(--line-2);background:var(--surface)}
.pbin{width:84px}.pbin[data-pbf=pv]{width:112px}.pbdesc{resize:vertical;line-height:1.35}
main{padding-bottom:96px}.pbin.sm{width:58px}.pbh{display:inline-flex;align-items:center;gap:4px;margin:0 8px 4px 0;white-space:nowrap;font-size:.85rem}.pbadd{font-size:.8rem;padding:2px 4px;min-height:0;width:auto}
ul.plain{margin:0;padding-left:18px}ul.plain li{margin:3px 0}tr.click{cursor:pointer}tr.click:hover td{background:var(--surface-2)}
.asisbtn{position:fixed;right:20px;bottom:20px;z-index:40;display:flex;align-items:center;gap:8px;background:#141416;color:#f4f4f5;border:1px solid #26262b;border-radius:999px;padding:12px 18px;font:inherit;font-weight:600;box-shadow:0 10px 30px -6px rgba(0,0,0,.35);cursor:pointer}.asisbtn svg{width:20px;height:20px;color:#f7a64a}
.asis-on .asisbtn{display:none}
.asis{position:fixed;top:0;right:0;bottom:0;z-index:60;width:min(460px,100vw);background:var(--surface);border-left:1px solid var(--line);box-shadow:-8px 0 30px rgba(0,0,0,.12);display:flex;flex-direction:column}
.asis[hidden]{display:none!important}
.ahead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding:16px 18px;border-bottom:1px solid var(--line)}.ahead .sub{display:block;font-size:.8rem}
.amsgs{flex:1;overflow:auto;padding:16px 18px;display:flex;flex-direction:column;gap:12px}
.amsg{max-width:92%;padding:10px 14px;border-radius:14px;font-size:.92rem;line-height:1.45;overflow-wrap:anywhere}
.amsg.u{align-self:flex-end;background:var(--ink);color:var(--bg);border-bottom-right-radius:4px;white-space:pre-wrap}
.amsg.a{align-self:flex-start;background:var(--surface-2);border-bottom-left-radius:4px}.amsg .li{display:block;padding-left:4px}
.astatus{display:block;color:var(--muted);font-size:.82rem;font-style:italic}.aerr{display:block;color:var(--bad);font-size:.85rem;margin-top:6px}
.acard{margin-top:10px;background:var(--surface);border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.acard p{margin:0}
.aempty{margin:auto 0;text-align:left}.asug{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.asug .btn{text-align:left;white-space:normal}
.aform{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line);align-items:flex-end}.aform textarea{flex:1;resize:none;font:inherit;border:1px solid var(--line-2);border-radius:10px;padding:8px 10px;background:var(--surface);color:inherit;min-height:44px;max-height:140px}
@media (max-width:980px){.asisbtn{bottom:16px;right:16px;padding:12px}.asisbtn span{display:none}}
.exform{grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));align-items:start}.exbtns{display:flex;flex-wrap:wrap;gap:2px;margin-top:4px}.wkx{max-width:320px;margin-top:8px}.tiposum span.warnb b{color:var(--warn)}
.docsel{font-size:.8rem;padding:2px 4px;min-height:0;margin-bottom:2px}
.encmode .top,.encmode .asisbtn{display:none!important}.encmode .app{display:block}.encmode #main{max-width:560px;margin:0 auto;padding:16px}
.enc{display:flex;flex-direction:column;gap:16px}.enchead{display:flex;justify-content:space-between;align-items:flex-start}.enchead h2{text-transform:capitalize;margin:2px 0 0}
.encbig{font-size:1.05rem!important;min-height:52px;width:100%}.encdate{width:auto;font:inherit;padding:6px 8px;border:1px solid var(--line-2);border-radius:8px;background:var(--surface);color:inherit}
.enclist{list-style:none;margin:0 0 14px;padding:0}.enclist li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 0;border-top:1px solid var(--line)}.enclist li:first-child{border-top:0}
.encn{font-weight:600;min-width:0}.encn .sub{display:block;font-weight:400}.encq{display:flex;align-items:center;gap:6px;flex:none}
.encb{width:44px;height:44px;border-radius:10px;border:1px solid var(--line-2);background:var(--surface);font-size:1.3rem;font-weight:700;color:var(--ink);cursor:pointer}.encb.e8{font-size:.95rem;color:var(--accent)}
.enci{width:72px;height:44px;text-align:center;font-size:1rem;padding:0 2px;font-weight:700;border:1px solid var(--line-2);border-radius:10px;background:var(--surface);color:inherit}
.encbtns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.encbtn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 12px;border-radius:16px;border:1px solid var(--line-2);background:var(--surface);font:inherit;font-weight:700;color:var(--ink);cursor:pointer;text-align:center}.encbtn svg{width:34px;height:34px;color:var(--accent)}
@media (max-width:420px){.encb{width:38px}.enci{width:64px}}.enchead h2{text-transform:none}
.alert{position:relative}.alert .aok{position:absolute;top:8px;right:8px}.alert p{padding-right:90px}.alert.okal{background:var(--ok-soft);border-color:transparent}.alert.okal strong{color:var(--ok)}
.pxbox{border-left:4px solid var(--warn)}.pxops{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:12px}
.pxop{border:1px solid var(--line-2);border-radius:var(--r-sm);padding:12px 14px;display:flex;flex-direction:column;gap:8px;background:var(--surface)}.pxop.done{opacity:.6}
.pxsel{display:flex;gap:10px;align-items:flex-start;cursor:pointer}.pxsel input{width:18px;height:18px;margin-top:2px;accent-color:var(--accent);flex:none}.pxsel .sub{display:block}
.pxtags{display:flex;gap:6px;flex-wrap:wrap}.pxmat{font-size:.86rem}.pxp{justify-content:space-between}.pxq{background:var(--warn-soft);border-radius:8px;padding:8px 12px;font-size:.88rem}.pxq ul{margin-top:4px}
.cplist{list-style:none;margin:0;padding:0}.cplist li{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:9px 0;border-top:1px solid var(--line)}.cplist li:first-child{border-top:0}
.cplist .cpd{min-width:0}.cplist .cpd strong{font-weight:600;font-size:.92rem}.cplist .cpd .sub{display:block}.cplist li.no .cpd strong{color:var(--muted);text-decoration:line-through}.cplist .cpv{text-align:right;white-space:nowrap}.cplist .cpv s{color:var(--muted)}
.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:999px;overflow:hidden;flex:none}.seg button{border:0;background:var(--surface);color:var(--muted);font:inherit;font-size:.8rem;font-weight:600;padding:6px 11px;cursor:pointer;white-space:nowrap}.seg button+button{border-left:1px solid var(--line-2)}
.seg button.on{background:var(--accent-soft);color:var(--accent)}.seg button.on.bad{background:var(--bad-soft);color:var(--bad)}
@media (max-width:700px){.cplist li{grid-template-columns:1fr auto}.cplist .seg{grid-column:1/-1;justify-self:start}}
.lcount{font-weight:700;font-size:.8rem;padding:3px 10px;border-radius:999px;background:var(--warn-soft);color:var(--warn);white-space:nowrap}.lcount.ok{background:var(--ok-soft);color:var(--ok)}
.slist{list-style:none;margin:0;padding:0}
.slist li{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}.slist li:first-child{border-top:0}
.slist label{display:flex;gap:10px;align-items:flex-start;flex:1;min-width:0;cursor:pointer}
.slist input[type=checkbox]{width:18px;height:18px;margin-top:2px;accent-color:var(--ok);flex:none}
.slist .ln{flex:1;min-width:0;font-size:.9rem}.slist .ln .sub{display:block;overflow:hidden;text-overflow:ellipsis}
.slist li.done label .ln>:first-child{}
.slist .lr{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right;flex:none;max-width:45%}
.slist .lr .btn{padding:0 6px;min-height:0;line-height:1.2;color:var(--muted)}
.lstate{font-size:.76rem;font-weight:600;color:var(--muted)}.lstate.ok{color:var(--ok)}.lstate.warn{color:var(--warn)}
.xbox{border-color:var(--warn);background:linear-gradient(var(--warn-soft),var(--warn-soft)) top/100% 4px no-repeat,var(--surface)}
.ptab td:nth-child(2){min-width:280px}.ptab td:nth-child(2) .sub{max-width:340px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:700px){.gb{grid-template-columns:1fr;gap:4px}.gv{text-align:left}}
.modo-s .adv{display:none!important}
.tab .ls{display:none}.modo-s .tab .ls{display:inline}.modo-s .tab .lc{display:none}
.modo{display:flex;border:1px solid var(--line-2);border-radius:var(--r-sm);overflow:hidden}
.modo button{flex:1;border:0;background:var(--surface);color:var(--muted);font-weight:600;font-size:.8rem;padding:6px 8px;cursor:pointer}
.modo button[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent)}
.addb{justify-content:center!important;padding:10px 14px!important;font-size:.95rem!important}
.subnav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:-8px}
.subnav button{border:1px solid var(--line-2);background:var(--surface);border-radius:999px;padding:6px 14px;font-weight:600;font-size:.85rem;color:var(--muted);cursor:pointer}
.subnav button.on{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.big3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:14px}
.b3{display:flex;flex-direction:column;gap:6px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;box-shadow:var(--shadow);cursor:pointer;color:inherit;font:inherit;transition:border-color .15s}
.b3:hover{border-color:var(--accent)}
.b3 .l{font-size:.85rem;color:var(--muted);font-weight:600}
.b3 .v{font-family:var(--f-display);font-size:2.3rem;font-weight:700;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.b3 .s{font-size:.82rem;color:var(--muted)}.b3 .s.neg{color:var(--bad);font-weight:600}
.tasks{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column}
.tasks li{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--line)}
.tasks li:first-child{border-top:0}
.tdot{width:10px;height:10px;border-radius:50%;flex:none;background:var(--warn)}.tdot.bad{background:var(--bad)}
.tasks .tt{flex:1;min-width:0}.tasks .tt strong{display:block;font-size:.93rem}
.todook{display:flex;gap:12px;align-items:center;padding:6px 0}
.okc{width:30px;height:30px;border-radius:50%;background:var(--ok-soft);color:var(--ok);display:grid;place-items:center;font-weight:700}
.legend .li.gastado{background:var(--ok)}
.lm{display:inline-block;width:3px;height:12px;border-radius:2px}.lm.fac{background:var(--accent)}.lm.cob{background:var(--ink)}
.o2 .st{font-size:.74rem;font-weight:700;padding:3px 10px;border-radius:999px;white-space:nowrap;background:var(--surface-2);color:var(--muted)}
.o2 .st.ok{background:var(--ok-soft);color:var(--ok)}.o2 .st.warn{background:var(--warn-soft);color:var(--warn)}.o2 .st.bad{background:var(--bad-soft);color:var(--bad)}
.life{position:relative;height:12px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line)}
.life i{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:var(--ok);transition:width .4s ease}
.life i.warn{background:var(--warn)}.life i.bad{background:var(--bad)}
.life b{position:absolute;top:-5px;bottom:-5px;width:3px;border-radius:2px;margin-left:-1px}
.life b.fac{background:var(--accent)}.life b.cob{background:var(--ink)}
.o2 .ol{display:flex;justify-content:space-between;gap:8px;font-size:.8rem;color:var(--muted);flex-wrap:wrap}.o2 .ol b{color:var(--ink);font-weight:700}
.aops{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:10px}
.aop{display:flex;gap:12px;align-items:center;text-align:left;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:12px 14px;cursor:pointer;color:inherit;font:inherit;transition:border-color .15s,background .15s}
.aop:hover{border-color:var(--accent);background:var(--accent-soft)}
.aic{width:36px;height:36px;border-radius:9px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;flex:none}.aic svg{width:20px;height:20px}
@media (max-width:980px){.modo{display:none}.addb .lbl{display:inline!important}}
.obusca{min-width:min(100%,300px)}
.obusca input{padding:9px 12px 9px 36px;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23697570' stroke-width='2'%3E%3Ccircle cx='8' cy='8' r='6'/%3E%3Cpath d='m13 13 4 4'/%3E%3C/svg%3E") no-repeat 11px center}
.obar{align-items:flex-end;flex-wrap:nowrap}
.obusca{max-width:440px}
@media (max-width:760px){.obar{flex-wrap:wrap}}
@media (max-width:640px){.obusca{flex:1 1 100%}}
.otabs{display:flex;gap:4px;border-bottom:1px solid var(--line-2);overflow-x:auto;scrollbar-width:none;margin-bottom:-6px}
.otabs::-webkit-scrollbar{display:none}
.otab{background:none;border:0;border-bottom:2px solid transparent;padding:10px 14px;font-weight:600;font-size:.92rem;color:var(--muted);cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:7px;margin-bottom:-1px}
.otab:hover{color:var(--ink)}
.otab[aria-selected="true"]{color:var(--accent);border-bottom-color:var(--accent)}
.otab .oc{font-size:.72rem;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:1px 7px;color:var(--muted);font-weight:600}
.otab[aria-selected="true"] .oc{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.qform{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:10px;align-items:end}
.qform .qwide{grid-column:span 2}
.qbtn{display:flex}
@media (max-width:640px){.qform .qwide{grid-column:1/-1}}
.tiposum{display:flex;gap:10px;flex-wrap:wrap}
.tiposum span{display:flex;flex-direction:column;padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);min-width:130px;box-shadow:var(--shadow)}
.tiposum small{font-size:.74rem;color:var(--muted)}.tiposum b{font-variant-numeric:tabular-nums;font-size:1.05rem}
.tiposum .tt{background:var(--accent-soft);border-color:transparent}.tiposum .tt small{color:var(--accent)}
table.wk td,table.wk th{padding:8px 8px}
table.wk th.today{color:var(--accent)}
.wkin{width:68px;text-align:right;padding:7px 8px}
.wkl{font-variant-numeric:tabular-nums;min-width:150px;text-align:center}
.btn.sm{padding:3px 8px;font-size:.8rem}
.ivag{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px}
.ivq{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2)}
.ivq.act{border-color:var(--accent);background:var(--accent-soft)}
.ivr{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.ivr span{display:flex;flex-direction:column;font-size:.74rem;color:var(--muted)}.ivr b{color:var(--ink);font-size:.95rem;font-variant-numeric:tabular-nums}
.ivt{font-size:.85rem;font-weight:600;color:var(--bad)}.ivt b{font-size:1.25rem;font-variant-numeric:tabular-nums}.ivt.pos{color:var(--ok)}
.alist{margin:6px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:3px}
.alist li{font-size:.9rem}.alist li.bad b{color:var(--bad)}.alist li.warn b{color:var(--warn)}
.chips{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.chip.more{padding:3px 8px}.chip.more::before{display:none}
.banner.warnb{background:var(--warn-soft)}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.8rem;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.li{width:12px;height:12px;border-radius:3px;display:inline-block}.li.ing{background:var(--accent)}.li.gas{background:var(--line-2)}
.rchart{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;align-items:end;padding-top:6px}
.rm{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
.rm.off{opacity:.35}
.rres{font-size:.68rem;font-weight:600;white-space:nowrap;min-height:1.1em;font-variant-numeric:tabular-nums}
.rbars{width:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px;border-bottom:1px solid var(--line-2)}
.rbars i{display:block;width:min(18px,42%);border-radius:4px 4px 0 0;transition:height .4s ease}
.rbars i.ing{background:var(--accent)}.rbars i.gas{background:var(--line-2)}
.rm:hover .rbars i.ing{filter:brightness(1.12)}.rm:hover .rbars i.gas{background:var(--muted)}
.rl{font-size:.72rem;color:var(--muted)}
.cbar.mg .ct i{background:var(--ok)}.cbar.mg .ct i.neg{background:var(--bad)}
@media (max-width:640px){.rres{display:none}.rchart{gap:3px}.kpi .v{font-size:1.45rem}.kpi{padding:14px}}
.fmin{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0 6px}
.fmin span{display:flex;flex-direction:column;font-size:.74rem;color:var(--muted);font-weight:500;padding:8px 10px;background:var(--surface-2);border-radius:8px}
.fmin .ftot{background:var(--accent-soft);color:var(--accent)}
@media (max-width:640px){.fmin{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fmin small{font-size:.7rem;color:var(--muted);font-weight:400}
.fmin b{font-size:1rem;color:var(--ink);font-variant-numeric:tabular-nums}
.antic{display:flex;flex-direction:column;gap:10px;margin-top:12px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2)}
.antg{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:10px}
.antg span{display:flex;flex-direction:column;font-size:.78rem;color:var(--muted);font-weight:500}
.antg b{font-size:1.15rem;color:var(--ink);font-variant-numeric:tabular-nums}
.meter i.certi{background:var(--ok)}
@keyframes flash{0%{box-shadow:0 0 0 4px var(--ok-soft);border-color:var(--ok)}100%{box-shadow:none}}
input.flash{animation:flash 1.6s ease}
.sheet-card{border-radius:16px;box-shadow:var(--shadow-lg)}
.sheet-card header{padding:16px 22px}
.sheet-card form{padding:20px 22px}
.sheet{background:rgb(10 14 12 / .55);backdrop-filter:blur(2px)}
.card .tbl,.mdet .tbl,.lineas .tbl,.calc .tbl{box-shadow:none}
.hero{border-left:0;background:linear-gradient(135deg,var(--accent-soft),var(--surface) 60%)}
.hero .hv{letter-spacing:-.02em}
.avance{border-radius:var(--r-sm)}
.msearch{top:env(safe-area-inset-top,0px)}
.mat{box-shadow:var(--shadow)}
.mat[open]{box-shadow:0 6px 20px rgb(20 30 26 / .09)}
.calc{border-radius:var(--r-sm)}
.drop{border-radius:var(--r)}
.toast{border-radius:10px;box-shadow:var(--shadow-lg)}
.kpi.click:hover{border-color:var(--accent)}
.lineas summary{font-weight:600}
@media (max-width:980px){.msearch{position:static}.top-in .quick{order:2}.top-in .tabs{order:3}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
