/* Portal del cliente · GREPP FINANCE. Letra alojada en el propio sistema (SIL OFL 1.1). Primero teléfono; luego escritorio. */
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:200 800;font-display:swap;src:url(/p/fonts/plus-jakarta-sans-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:200 800;font-display:swap;src:url(/p/fonts/plus-jakarta-sans-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  --font:'Plus Jakarta Sans',system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--ease:cubic-bezier(.2,.8,.2,1);--spring:cubic-bezier(.34,1.4,.64,1);
  --bg:#f3f6fc;--bg2:#e6eefb;--panel:#fff;--panel2:#f7f9fd;--field:#f1f5fb;--text:#0b1b38;--soft:#43536f;--muted:#58677f;--line:rgba(28,56,110,.12);--edge:rgba(28,56,110,.34);
  --primary:#0d5bd0;--link:#0d5bd0;--primary-hi:#1a6ff0;--on-primary:#fff;--accent:#2f80ed;--ok:#17783f;--bad:#c53b3b;--warn:#8a5a0b;--info:#0e7fa8;
  --info-ink:#0a6486;--ok-bg:rgba(23,120,63,.11);--bad-bg:rgba(197,59,59,.1);--warn-bg:rgba(183,121,31,.14);--info-bg:rgba(14,127,168,.1);--mute-bg:rgba(28,56,110,.08);
  --ring:0 0 0 4px rgba(47,128,237,.22);--shadow:0 24px 60px -28px rgba(14,30,66,.4);--soft-shadow:0 10px 28px -16px rgba(14,30,66,.34);--scrim:rgba(8,16,36,.5);
  --hero1:#0b3f93;--hero2:#1a6ff0;--hero3:#56ccf2;--top:rgba(243,246,252,.86);--tab:rgba(255,255,255,.9);
  --safe-b:env(safe-area-inset-bottom,0px);--tabh:64px;--railw:248px;
}
@media (prefers-color-scheme:dark){:root{--bg:#07111f;--bg2:#0b1b33;--panel:#0e1b2e;--panel2:#0a1626;--field:#0a1626;--text:#f5f8fc;--soft:#d4deea;--muted:#9fb0c6;--line:rgba(159,176,198,.16);--edge:rgba(159,176,198,.34);
  --primary:#2f80ed;--link:#7db8ff;--primary-hi:#4d95f5;--accent:#56ccf2;--ok:#34c77b;--bad:#ff7b7b;--warn:#f2c94c;--info:#56ccf2;--ok-bg:rgba(52,199,123,.14);--bad-bg:rgba(255,123,123,.14);--warn-bg:rgba(242,201,76,.14);--info-bg:rgba(86,204,242,.14);--mute-bg:rgba(159,176,198,.12);
  --ring:0 0 0 4px rgba(86,204,242,.25);--shadow:0 24px 60px -28px rgba(0,0,0,.85);--soft-shadow:0 10px 28px -16px rgba(0,0,0,.7);--scrim:rgba(2,6,14,.66);--hero1:#082a63;--hero2:#1553b8;--hero3:#2f80ed;--top:rgba(7,17,31,.86);--tab:rgba(14,27,46,.92)}}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
html,body{margin:0;min-height:100%}html.lock{overflow:hidden}
body{background:var(--bg);color:var(--text);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--link)}
h1,h2,h3,h4{margin:0;letter-spacing:-.02em;font-family:var(--font)}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}.soft{color:var(--soft)}
svg.i{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}svg.i.sm{width:16px;height:16px}svg.i.lg{width:26px;height:26px}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;background:var(--primary);color:#fff;padding:10px 14px;border-radius:10px;z-index:100;text-decoration:none}.skip:focus{top:10px}
/* ---- marco ---- */
.app{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:1fr}
.rail{display:none}
.main{min-width:0;display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
.top{position:sticky;top:0;z-index:30;background:var(--top);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0)}
.top-in{display:flex;align-items:center;gap:10px;height:60px;padding:0 16px;max-width:1180px;margin:0 auto}
.top .back{display:none}
.top h1{font-size:18px;font-weight:800;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brandm{display:flex;gap:10px;align-items:center;flex:1;min-width:0}
.logo{width:36px;height:36px;border-radius:11px;background:linear-gradient(135deg,#2f80ed,#56ccf2);display:grid;place-items:center;color:#fff;font:800 17px var(--font);flex:none;box-shadow:0 8px 20px -8px rgba(47,128,237,.7)}
.brandm b{font:800 15px/1.1 var(--font);white-space:nowrap}.brandm small{display:block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ib{width:40px;height:40px;border-radius:12px;border:0;background:transparent;display:grid;place-items:center;color:var(--soft);position:relative}.ib:hover{background:var(--mute-bg)}
.ib .dot{position:absolute;top:8px;right:9px;min-width:16px;height:16px;border-radius:99px;background:var(--bad);color:#fff;font:700 10px/16px var(--font);text-align:center;padding:0 4px}
.av{width:36px;height:36px;border-radius:12px;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;font:800 13px var(--font);display:grid;place-items:center;border:0;flex:none}
.page{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:16px 16px calc(var(--tabh) + var(--safe-b) + 28px)}
.page>section{animation:rise .4s var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(10px)}}
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;background:var(--tab);backdrop-filter:saturate(1.4) blur(16px);-webkit-backdrop-filter:saturate(1.4) blur(16px);border-top:1px solid var(--line);padding:6px 6px calc(6px + var(--safe-b))}
.tabbar button{flex:1;border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;color:var(--muted);font:600 11px var(--font);border-radius:14px;position:relative;min-width:0}
.tabbar button .ti2{display:grid;place-items:center;width:44px;height:28px;border-radius:99px;transition:background .25s,color .25s}
.tabbar button.on{color:var(--primary)}.tabbar button.on .ti2{background:var(--info-bg)}
.offline{position:sticky;top:60px;z-index:29;background:var(--warn-bg);color:var(--warn);text-align:center;font-weight:700;font-size:13px;padding:7px 12px;border-bottom:1px solid var(--line)}
/* ---- escritorio ---- */
@media (min-width:980px){
  .app{grid-template-columns:var(--railw) 1fr}
  .rail{display:flex;flex-direction:column;gap:6px;position:sticky;top:0;height:100vh;padding:22px 14px 0;border-right:1px solid var(--line);background:var(--panel);overflow:auto}
  .rail .brandm{padding:0 8px 18px}
  .rail nav{display:flex;flex-direction:column;gap:3px}
  .rail nav button{display:flex;gap:12px;align-items:center;border:0;background:none;padding:11px 12px;border-radius:13px;color:var(--soft);font-weight:650;text-align:left;position:relative}
  .rail nav button:hover{background:var(--mute-bg)}
  .rail nav button.on{background:var(--info-bg);color:var(--primary)}
  .rail nav button .n{margin-left:auto;background:var(--bad);color:#fff;font:700 11px/18px var(--font);min-width:20px;text-align:center;border-radius:99px;padding:0 5px}
  .rail .me{margin:auto -14px 0;position:sticky;bottom:0;background:var(--panel);border-top:1px solid var(--line);padding:14px 18px;display:flex;gap:11px;align-items:center}
  .rail .me b{display:block;font-size:13.5px}.rail .me span{font-size:12px;color:var(--muted)}
  .tabbar{display:none}.top .brandm,.top .av{display:none}
  .page{padding:26px 32px 48px}.top-in{padding:0 32px;height:68px}.top h1{font-size:22px}
  .offline{top:68px}
}
/* ---- tarjetas y listas ---- */
.card{background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--soft-shadow)}
.card.flat{box-shadow:none}.card.tight{padding:0;overflow:hidden}
.card h3{font-size:16px;font-weight:800}.card .sub{color:var(--muted);font-size:13px;margin:2px 0 0}
.sec-h{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:26px 2px 12px}.sec-h h2{font-size:17px;font-weight:800}.sec-h a,.sec-h button{border:0;background:none;color:var(--primary);font-weight:700;font-size:13.5px;padding:4px 2px}
.grid{display:grid;gap:14px}.g2{grid-template-columns:1fr}.g3{grid-template-columns:1fr}.g4{grid-template-columns:1fr 1fr}
@media (min-width:760px){.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}}
@media (min-width:1100px){.g32{grid-template-columns:1.55fr 1fr}}
.row{display:flex;align-items:center;gap:12px}.row.wrap{flex-wrap:wrap}.sp{flex:1}
.list{display:flex;flex-direction:column}
.li{display:flex;align-items:center;gap:13px;padding:14px 16px;border:0;background:none;width:100%;text-align:left;border-bottom:1px solid var(--line);position:relative}
.li:last-child{border-bottom:0}.li:hover,.li:focus-visible{background:var(--panel2)}
.li .lic{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:var(--info-bg);color:var(--primary);flex:none}
.li .lic.ok{background:var(--ok-bg);color:var(--ok)}.li .lic.bad{background:var(--bad-bg);color:var(--bad)}.li .lic.warn{background:var(--warn-bg);color:var(--warn)}.li .lic.mute{background:var(--mute-bg);color:var(--muted)}
.li .lt{flex:1;min-width:0}.li .lt b{display:block;font-weight:700;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.li .lt span{display:block;color:var(--muted);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.li .lr{text-align:right;flex:none}.li .lr b{display:block;font-weight:800}.li .lr span{font-size:12px;color:var(--muted)}
.li>svg.i:last-child{color:var(--muted)}
.kv{display:grid;grid-template-columns:1fr auto;gap:2px 14px;font-size:14px}.kv dt{color:var(--muted)}.kv dd{margin:0;text-align:right;font-weight:650}.kv>*{padding:9px 0;border-bottom:1px solid var(--line)}.kv>*:nth-last-child(-n+2){border-bottom:0}
.chip{display:inline-flex;align-items:center;gap:5px;font:700 12px/1 var(--font);padding:5px 10px;border-radius:99px;background:var(--mute-bg);color:var(--soft);white-space:nowrap}
.chip.ok{background:var(--ok-bg);color:var(--ok)}.chip.bad{background:var(--bad-bg);color:var(--bad)}.chip.warn{background:var(--warn-bg);color:var(--warn)}.chip.info{background:var(--info-bg);color:var(--info-ink)}.chip.mute{background:var(--mute-bg);color:var(--muted)}
.chip.pri{background:var(--primary);color:var(--on-primary)}
.eyebrow{font:700 12px var(--font);letter-spacing:.13em;text-transform:uppercase;color:var(--link);margin:0 0 6px}
.big{font:800 30px/1.1 var(--font);letter-spacing:-.03em}.big.s{font-size:22px}
/* ---- botones ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:14px;border:1px solid var(--edge);background:var(--panel);color:var(--text);font-weight:700;text-decoration:none;transition:transform .12s,filter .15s,background .15s}
.btn:hover{background:var(--panel2)}.btn:active{transform:translateY(1px)}.btn[disabled]{opacity:.6;cursor:not-allowed}
.btn.pri{background:linear-gradient(180deg,var(--primary-hi),var(--primary));border-color:transparent;color:var(--on-primary);box-shadow:0 12px 26px -14px var(--primary)}.btn.pri:hover{filter:brightness(1.07);background:linear-gradient(180deg,var(--primary-hi),var(--primary))}
.btn.bad{background:var(--bad);border-color:transparent;color:#fff}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--mute-bg)}
.btn.sm{min-height:36px;padding:0 13px;font-size:13.5px;border-radius:11px}.btn.block{width:100%}
.btn .sp2{display:none;width:16px;height:16px;border:2.4px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.btn.load .sp2{display:block}.btn.load{pointer-events:none;opacity:.85}
@keyframes spin{to{transform:rotate(360deg)}}
/* ---- formularios ---- */
.field{display:block;margin:14px 0 0}.field>span{display:block;font-size:13px;font-weight:650;color:var(--soft);margin:0 0 7px}.field .hint{display:block;font-size:12.5px;color:var(--muted);margin:6px 2px 0;font-weight:500}.field .errm{display:block;font-size:12.5px;color:var(--bad);margin:6px 2px 0;font-weight:600}
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea{width:100%;padding:13px 14px;border-radius:14px;border:1px solid var(--edge);background:var(--field);color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s,background .15s;min-height:48px}
textarea{min-height:110px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:var(--ring);background:var(--panel)}
input.bad,select.bad,textarea.bad{border-color:var(--bad)}
input::placeholder,textarea::placeholder{color:var(--muted)}
.seg{display:flex;background:var(--mute-bg);border-radius:14px;padding:4px;gap:4px}.seg button{flex:1;border:0;background:none;padding:9px 10px;border-radius:11px;font-weight:700;color:var(--soft);font-size:13.5px}.seg button.on{background:var(--panel);color:var(--text);box-shadow:var(--soft-shadow)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--soft);margin-top:14px}.check input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--primary);flex:none}
.range{width:100%;accent-color:var(--primary)}
/* ---- anillo, barras, línea de tiempo ---- */
.ringw{position:relative;display:grid;place-items:center}.ringw svg{transform:rotate(-90deg)}.ringw .rc{position:absolute;text-align:center}
.ringw circle{fill:none;stroke-linecap:round}.ringw .rt{stroke:var(--mute-bg)}.ringw .rv{stroke:var(--primary);transition:stroke-dasharray 1s var(--ease)}
.bar{height:8px;border-radius:99px;background:var(--mute-bg);overflow:hidden}.bar>i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--primary),var(--accent));transition:width .9s var(--ease)}
.tl{list-style:none;margin:0;padding:0}.tl li{position:relative;padding:0 0 18px 30px}.tl li::before{content:'';position:absolute;left:9px;top:20px;bottom:0;width:2px;background:var(--line)}.tl li:last-child::before{display:none}
.tl li .tdot{position:absolute;left:0;top:2px;width:20px;height:20px;border-radius:50%;background:var(--panel);border:2px solid var(--edge);display:grid;place-items:center}
.tl li.done .tdot{background:var(--ok);border-color:var(--ok);color:#fff}.tl li.now .tdot{border-color:var(--primary);box-shadow:0 0 0 5px var(--info-bg)}.tl li.bad .tdot{background:var(--bad);border-color:var(--bad);color:#fff}
.tl .tdot svg{width:12px;height:12px;stroke-width:3}
/* ---- varios ---- */
.empty{text-align:center;padding:34px 20px;color:var(--muted)}.empty .ei{width:60px;height:60px;border-radius:20px;background:var(--info-bg);color:var(--primary);display:grid;place-items:center;margin:0 auto 12px}.empty b{display:block;color:var(--text);font-size:16px;margin-bottom:4px}.empty p{margin:0 auto 14px;max-width:36ch}
.sk{border-radius:18px;background:linear-gradient(90deg,var(--mute-bg),var(--line),var(--mute-bg));background-size:200% 100%;animation:shim 1.3s infinite;margin-bottom:12px}@keyframes shim{to{background-position:-200% 0}}
.note{display:flex;gap:11px;padding:13px 15px;border-radius:16px;background:var(--info-bg);color:var(--soft);font-size:13.5px;border:1px solid color-mix(in srgb,var(--info) 25%,transparent)}.note svg{color:var(--info);margin-top:1px}.note.warn{background:var(--warn-bg);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}.note.warn svg{color:var(--warn)}.note.bad{background:var(--bad-bg);border-color:color-mix(in srgb,var(--bad) 30%,transparent)}.note.bad svg{color:var(--bad)}.note.ok{background:var(--ok-bg);border-color:color-mix(in srgb,var(--ok) 30%,transparent)}.note.ok svg{color:var(--ok)}
.hero{position:relative;overflow:hidden;color:#fff;border-radius:26px;padding:22px;background:radial-gradient(520px 260px at 100% 0,var(--hero3),transparent 60%),linear-gradient(150deg,var(--hero1),var(--hero2));box-shadow:var(--shadow)}
.hero .chip{background:rgba(255,255,255,.18);color:#fff}.hero .muted{color:rgba(255,255,255,.76)}
.crumb{display:flex;gap:6px;align-items:center;color:var(--muted);font-size:13px;margin:0 0 12px}.crumb button{border:0;background:none;color:var(--primary);font-weight:700;padding:0;display:inline-flex;align-items:center;gap:4px}
/* ---- hoja / ventana ---- */
.ov{position:fixed;inset:0;z-index:80;background:var(--scrim);display:flex;align-items:flex-end;justify-content:center;opacity:0;transition:opacity .22s}.ov.in{opacity:1}
.sheet{width:100%;max-width:560px;max-height:92dvh;display:flex;flex-direction:column;background:var(--panel);border-radius:26px 26px 0 0;box-shadow:var(--shadow);transform:translateY(40px);transition:transform .3s var(--ease);padding-bottom:var(--safe-b)}.ov.in .sheet{transform:none}
.sheet.wide{max-width:760px}
.sheet .grab{width:44px;height:5px;border-radius:99px;background:var(--edge);margin:9px auto 2px;touch-action:none;cursor:grab;flex:none}
.sheet header{display:flex;align-items:flex-start;gap:12px;padding:10px 20px 8px;flex:none}.sheet header>div{flex:1;min-width:0}.sheet header h3{font-size:19px;font-weight:800}.sheet header p{margin:3px 0 0;color:var(--muted);font-size:13.5px}
.sheet .x{width:44px;height:44px;border-radius:12px;border:0;background:var(--mute-bg);display:grid;place-items:center;color:var(--soft)}
.sheet .sb{padding:6px 20px 18px;overflow:auto;flex:1;overscroll-behavior:contain}
.sheet footer{display:flex;gap:10px;justify-content:flex-end;padding:12px 20px 16px;border-top:1px solid var(--line);flex:none}.sheet footer .btn{flex:1}
@media (min-width:700px){.ov{align-items:center}.sheet{border-radius:26px;max-height:88vh;transform:translateY(18px) scale(.98)}.ov.in .sheet{transform:none}.sheet .grab{display:none}.sheet footer .btn{flex:none;min-width:130px}}
#toasts{position:fixed;left:12px;right:12px;bottom:calc(var(--tabh) + var(--safe-b) + 14px);z-index:90;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}
.toast{pointer-events:auto;display:flex;gap:11px;align-items:flex-start;max-width:460px;width:100%;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--info);border-radius:16px;padding:12px 14px;box-shadow:var(--shadow);transform:translateY(16px);opacity:0;transition:.3s var(--ease)}.toast.in{transform:none;opacity:1}
.toast.ok{border-left-color:var(--ok)}.toast.bad{border-left-color:var(--bad)}.toast .ti{color:var(--info);margin-top:1px}.toast.ok .ti{color:var(--ok)}.toast.bad .ti{color:var(--bad)}.toast b{display:block;font-size:14px}.toast span:not(.ti){display:block;font-size:13px;color:var(--muted)}
@media (min-width:980px){#toasts{bottom:24px;left:auto;right:24px;align-items:flex-end}}
/* ---- acceso ---- */
.gate{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:1fr;background:radial-gradient(900px 520px at 12% 10%,var(--bg2),transparent 65%),var(--bg)}
.gate .gcard{margin:auto;width:min(440px,100% - 32px);padding:30px 26px}
.gate .gbrand{display:flex;gap:12px;align-items:center;margin:0 0 22px}.gate .gbrand b{font:800 17px var(--font)}.gate .gbrand small{display:block;font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.gate h1{font-size:28px;font-weight:800;line-height:1.12;margin:0 0 8px}.gate .lead{color:var(--soft);margin:0 0 18px}
.codebox{display:grid;grid-template-columns:repeat(8,1fr);gap:7px;margin:6px 0 0}.codebox input{padding:0;text-align:center;font:800 22px var(--font);min-height:54px;border-radius:13px}
@media (max-width:380px){.codebox{gap:4px}.codebox input{font-size:19px;min-height:48px}}
.foot-note{display:flex;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted)}.foot-note svg{color:var(--ok);margin-top:2px}
.linkbtn{border:0;background:none;color:var(--primary);font-weight:700;padding:6px 2px}.linkbtn[disabled]{color:var(--muted);cursor:default}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media print{.rail,.tabbar,.top,#toasts{display:none!important}.page{padding:0}.card{box-shadow:none}}

/* táctil: objetivos de al menos 44 px en el teléfono */
@media (max-width:979px){.ib{width:44px;height:44px}.av{width:44px;height:44px}.btn.sm{min-height:44px}.seg button{min-height:40px}.chip{min-height:28px}}
.tabbar button:focus-visible{outline-offset:-4px;border-radius:14px}
.check input{width:22px;height:22px}
.check{min-height:44px;align-items:center}

/* contraste en oscuro y objetivos */
@media (prefers-color-scheme:dark){:root{--info-ink:#7fd6f2}.btn.bad{background:#ff8d8d;color:#2a0a0a}.crumb button,.sec-h a,.sec-h button,.linkbtn{color:var(--link)}.tabbar button.on{color:var(--link)}.rail nav button.on{color:var(--link)}}
.tabbar{padding-inline:2px}.tabbar button{padding-inline:0}
.chip.ok,.chip.warn,.chip.bad{font-weight:800}

@media (max-width:350px){.tabbar button{font-size:10px;letter-spacing:-.01em}.tabbar button .ti2{width:34px}}
.tabbar{overflow:hidden}.tabbar button{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* contraste del botón primario y del foco sobre degradados (revisión final) */
.btn.pri,.btn.pri:hover{background:linear-gradient(180deg,#1a6ff0,#0d5bd0);color:#fff}
.hero :focus-visible,.hm-hero :focus-visible,.py-hero :focus-visible,.cr-hero :focus-visible,.btn.pri:focus-visible{outline-color:#fff;box-shadow:0 0 0 4px rgba(13,91,208,.9)}
.skip:focus{background:#0d5bd0}
.ib{min-width:44px;min-height:44px}
.rail .me .ib{width:44px;height:44px}