:root{--brand:#30395f;--brand-2:#4a5a96;--brand-dark:#1d2444;--accent:#f2d03b;--bg:#f3f4f9;--surface:#fff;--text:#1a2038;--muted:#5f6684;--line:#d9dcea;--ok:#0d7a4f;--warn:#9a6200;--danger:#b3261e;--radius:20px;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}body{background:var(--bg);-webkit-text-size-adjust:100%;min-height:100dvh;margin:0}h1,h2,p,dl,dd{margin:0}button,input{font:inherit}button{cursor:pointer;min-height:44px}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.login{background:var(--brand);flex-direction:column;min-height:100dvh;display:flex}.login-brand{color:#fff;text-align:center;padding:max(44px, calc(env(safe-area-inset-top) + 28px)) 24px 56px;background:radial-gradient(circle at 100% 0%, #ffffff1f, transparent 50%), var(--brand);justify-items:center;gap:8px;display:grid}.brand-mobile{justify-items:center;gap:8px;display:grid}.brand-desktop{display:none}.login-brand h2{margin-top:6px;font-size:1.5rem}.login-brand p{opacity:.8;font-size:.9rem}.login-card{padding:32px 24px max(32px, env(safe-area-inset-bottom));background:#fff;border-radius:28px 28px 0 0;flex:1;align-content:start;gap:6px;width:100%;margin-top:-28px;display:grid}.login-card h1{color:var(--brand);font-size:1.7rem}.login-card .sub{color:var(--muted);margin-bottom:12px;font-size:.95rem}.field{gap:6px;margin-top:8px;display:grid}.field>label{letter-spacing:.6px;text-transform:uppercase;color:var(--muted);font-size:.75rem;font-weight:700}.control{align-items:center;display:flex;position:relative}.control>svg{width:22px;height:22px;color:var(--muted);pointer-events:none;position:absolute;right:14px}.control .eye{width:44px;height:44px;min-height:0;color:var(--muted);background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;right:4px}.control .eye svg{width:22px;height:22px}.control input{border:1.5px solid var(--line);width:100%;min-height:54px;color:var(--text);background:#f7f8fc;border-radius:14px;padding:10px 52px 10px 16px;font-size:1rem}.control input::placeholder{color:#a3a9c1}.control input:focus{border-color:var(--brand);background:#fff;outline:none;box-shadow:0 0 0 4px #30395f24}.hint{color:var(--muted);font-size:.8rem}.error{color:var(--danger);background:#fde7e5;border-radius:12px;margin-top:4px;padding:10px 12px;font-size:.9rem;font-weight:600}.error:empty{display:none}.login-card .primary{border-radius:14px;margin-top:14px}@media (width>=900px){.login{background:#fff;flex-direction:row}.login-brand{text-align:left;background:radial-gradient(circle at 90% 8%, #ffffff24, transparent 40%), radial-gradient(circle at 0% 100%, #ffffff14, transparent 45%), linear-gradient(160deg, #3b4777 0%, var(--brand) 55%, var(--brand-dark) 100%);flex:50%;align-content:center;justify-items:start;gap:14px;padding:64px clamp(48px,7vw,120px)}.brand-mobile{display:none}.brand-desktop{width:min(420px,80%);height:auto;display:block}.login-card{border-radius:0;flex:50%;align-content:center;align-self:stretch;justify-items:stretch;max-width:none;margin:0;padding:48px clamp(48px,8vw,140px)}.login-card>*{justify-self:center;width:100%;max-width:400px}.login-card h1{font-size:2rem}}.primary,.secondary{border:0;border-radius:14px;padding:0 20px;font-weight:700}.primary{background:var(--brand);color:#fff;min-height:50px}.primary:hover:not(:disabled){background:var(--brand-2)}.secondary{background:var(--surface);color:var(--brand);border:1.5px solid var(--brand)}.ghost{color:inherit;background:0 0;border:0;border-radius:10px;padding:0 12px;font-weight:600}.screen{max-width:460px;min-height:100dvh;padding:max(12px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));flex-direction:column;gap:14px;margin:0 auto;display:flex}.topbar{color:var(--brand);justify-content:space-between;align-items:center;display:flex}.topbar-title{font-size:1.1rem;font-weight:800}.topbar-actions{display:flex}.topbar .ghost{color:var(--brand)}.banner{border-radius:12px;padding:12px 14px;font-size:.92rem;font-weight:600}.banner.info{color:#14407a;background:#e3eefc}.banner.danger{color:#8c1d18;background:#fde7e5}.tabs{gap:8px;display:flex;overflow-x:auto}.tab{border:1.5px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:0 16px;font-weight:600}.tab.active{background:var(--brand);border-color:var(--brand);color:#fff}.card-wrap{container-type:inline-size}.card{aspect-ratio:1.586;color:#fff;background:linear-gradient(150deg,#2b3260 0%,#161b3a 100%);border-radius:5cqw;flex-direction:column;justify-content:space-between;padding:5.5cqw;display:flex;position:relative;overflow:hidden;box-shadow:0 14px 30px #1d24444d}.card:after{content:"";pointer-events:none;background:#ffffff0d;border-radius:50%;width:45cqw;height:45cqw;position:absolute;bottom:-14cqw;right:-8cqw}.card.vencida{background:linear-gradient(150deg,#3d4252 0%,#23262f 100%)}.card>*{z-index:1;position:relative}.card-head{justify-content:space-between;align-items:center;gap:3cqw;display:flex}.brand{white-space:nowrap;align-items:center;gap:2.4cqw;font-size:4.6cqw;font-weight:600;display:flex}.brand img{width:8cqw;height:8cqw}.tipo{text-transform:uppercase;text-align:center;background:#ffffff29;border-radius:1.4cqw;padding:1.2cqw 2.6cqw;font-size:2.4cqw;font-weight:700}.label{letter-spacing:.1cqw;text-transform:uppercase;opacity:.7;font-size:2.2cqw;font-weight:600}.name{text-transform:uppercase;overflow-wrap:anywhere;margin-top:.8cqw;font-size:6.2cqw;line-height:1.1}.data{grid-template-columns:repeat(6,1fr);gap:2.8cqw 3cqw;display:grid}.data div{grid-column:span 2;min-width:0}.data div:first-child,.data div:nth-child(2){grid-column:span 3}.data dt{text-transform:uppercase;letter-spacing:.08cqw;opacity:.7;font-size:2.1cqw;font-weight:600}.data dd{font-variant-numeric:tabular-nums;white-space:nowrap;margin-top:.4cqw;font-size:3.7cqw;font-weight:700}.status{color:var(--muted);align-items:center;gap:10px;font-size:.85rem;display:flex}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:5px 12px;font-size:.82rem;font-weight:800}.chip.vigente{color:var(--ok)}.chip.por-vencer,.chip.pendiente{color:var(--warn)}.chip.vencida{color:var(--danger)}.notice{color:var(--muted);text-align:center;font-size:.85rem}.download-wrap{position:relative}.download{justify-content:center;align-items:center;gap:8px;width:100%;display:flex}.menu{z-index:5;border:1px solid var(--line);background:#fff;border-radius:14px;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden;box-shadow:0 12px 28px #1d24442e}.menu button{text-align:left;min-height:50px;color:var(--brand);background:0 0;border:0;padding:0 18px;font-weight:600}.menu button+button{border-top:1px solid var(--line)}.menu button:hover{background:#f3f4f9}@media (prefers-reduced-motion:no-preference){.primary,.secondary,.ghost,.tab{transition:background-color .15s,opacity .15s}}@media (width>=700px){.screen{max-width:520px;padding-top:28px}}.download{width:100%}@media (orientation:landscape) and (height<=520px){.screen{grid-template-columns:minmax(0,1fr) minmax(0,260px);grid-template-areas:"top top""card status""card download";align-content:start;align-items:center;gap:10px 20px;max-width:900px;min-height:0;display:grid}.topbar{grid-area:top}.card-wrap{grid-area:card;justify-self:center;width:min(100%,158.6dvh - 142.74px)}.status{flex-wrap:wrap;grid-area:status;align-self:end}.download-wrap{grid-area:download;align-self:start}.notice{grid-column:2}.banner,.tabs{grid-column:1/-1}}
