:root{
    --ased:#3071bd;
    --ased-dark:#142b47;
    --ased-soft:#eef5fb;
    --ink:#21344d;
    --muted:#657383;
    --line:#dfe7ee;
    --paper:#ffffff;
    --bg:#f4f6f8;
    --ok:#197a55;
    --warn:#b86516;
    --danger:#b8323b;
    --shadow:0 18px 45px rgba(25,52,80,.10);
    --radius:22px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
    margin:0;
    font-family:'Poppins',sans-serif;
    color:var(--ink);
    background:var(--bg);
    line-height:1.6;
}

body.password-capsule-page .navbar{transition:background-color .3s ease,box-shadow .3s ease}
body.password-capsule-page .navbar.capsula-nav-scrolled{background:#fff;box-shadow:0 10px 24px rgba(20,43,71,.14)}
body.password-capsule-page .navbar.capsula-nav-scrolled .nav-link{color:#172b43!important}
body.password-capsule-page .navbar.capsula-nav-scrolled .navbar-brand img{height:35px;filter:invert(1)}
body.password-capsule-page .navbar.capsula-nav-scrolled .navbar-toggler i{color:#172b43!important}

button,input{font:inherit}
button{cursor:pointer}

.capsula{
    width:min(1160px,calc(100% - 32px));
    margin:0 auto 64px;
}

.hero{
    position:relative;
    overflow:hidden;
    width:100vw;
    margin-left:calc(50% - 50vw);
    background:url('../../assets/images/capsulas/sistemas/contrasenas-img01.jpg') center/cover no-repeat;
    color:#fff;
    border-radius:0;
    padding:150px max(32px,calc((100vw - 1060px)/2)) 60px;
    box-shadow:0 24px 55px rgba(20,43,71,.22);
}

.hero:before{
    content:"";
    position:absolute;
    right:-150px;
    bottom:-180px;
    width:430px;
    height:430px;
    border:1px solid rgba(255,255,255,.10);
    border-radius:50%;
    box-shadow:0 0 0 55px rgba(255,255,255,.035),0 0 0 110px rgba(255,255,255,.02);
}

.hero:after{
    content:"••••••••";
    position:absolute;
    right:-45px;
    top:50px;
    font-size:95px;
    letter-spacing:-15px;
    font-weight:900;
    opacity:.06;
    transform:rotate(-8deg);
    white-space:nowrap;
}

.hero>*{position:relative;z-index:1}

.eyebrow{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-weight:700;
    font-size:.86rem;
    letter-spacing:.05em;
    text-transform:uppercase;
    opacity:.9;
}

h1{
    max-width:880px;
    font-size:clamp(2.35rem,6vw,5rem);
    line-height:.98;
    margin:18px 0 14px;
    letter-spacing:-.045em;
}

.hero h1{color:#fff}

.hero .lead{
    max-width:820px;
    font-size:1.13rem;
    color:rgba(255,255,255,.88);
    margin:0;
}

.stats{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:12px;
    margin-top:34px;
}

.stat{
    border:1px solid rgba(255,255,255,.20);
    background:rgba(255,255,255,.09);
    border-radius:14px;
    padding:15px 16px;
    backdrop-filter:blur(6px);
}

.stat strong{
    display:block;
    font-size:1.55rem;
    line-height:1;
    margin-bottom:5px;
}

.stat span{
    font-size:.82rem;
    color:rgba(255,255,255,.78);
}

.capsula>section{
    background:var(--paper);
    margin-top:22px;
    border-radius:var(--radius);
    padding:38px;
    box-shadow:0 8px 28px rgba(25,52,80,.055);
    border:1px solid #e5ebf0;
}

.section-kicker{
    color:var(--ased);
    font-weight:800;
    letter-spacing:.07em;
    text-transform:uppercase;
    font-size:.82rem;
    margin-bottom:6px;
}

h2{
    margin:0 0 12px;
    font-size:clamp(1.65rem,3vw,2.55rem);
    line-height:1.1;
    letter-spacing:-.025em;
}

h3{line-height:1.25}

.intro{
    max-width:900px;
    color:var(--muted);
    font-size:1.03rem;
    margin-top:0;
}

.cards{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
    margin-top:24px;
}

.card{
    border:1px solid var(--line);
    border-radius:16px;
    padding:22px;
    background:#fff;
    transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}

.capsula .card:hover{
    border-color:#bfd3e7;
    box-shadow:0 12px 28px rgba(33,63,96,.09);
    transform:translateY(-3px);
}

.card .icon{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border-radius:14px;
    background:var(--ased-soft);
    font-size:1.7rem;
    margin-bottom:12px;
}

.card h3{
    margin:0 0 8px;
    font-size:1.05rem;
}

.card p{
    margin:0;
    color:var(--muted);
    font-size:.94rem;
}

.compare{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
    margin-top:26px;
}

.password-box{
    border:1px solid var(--line);
    border-radius:18px;
    overflow:hidden;
    background:#fff;
}

.password-box .top{
    padding:16px 18px;
    font-weight:800;
    border-bottom:1px solid var(--line);
    background:#f6f7f9;
}

.password-box.bad .top{color:var(--danger)}
.password-box.good .top{color:var(--ok)}

.password-box .body{
    padding:22px;
}

.demo-pass{
    font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;
    font-size:1.2rem;
    font-weight:800;
    padding:15px 16px;
    border-radius:12px;
    background:#f7f8fa;
    border:1px solid var(--line);
    margin-bottom:14px;
    overflow-wrap:anywhere;
}

.password-box ul{
    padding-left:20px;
    margin:10px 0 0;
    color:var(--muted);
}

.password-box li{margin:6px 0}

.rules{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:14px;
    margin-top:24px;
}

.rule{
    display:grid;
    grid-template-columns:50px 1fr;
    gap:14px;
    border:1px solid var(--line);
    border-radius:16px;
    padding:18px;
    align-items:start;
}

.rule .num{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:var(--ased);
    color:#fff;
    font-weight:800;
}

.rule strong{display:block;margin-bottom:4px}
.rule p{margin:0;color:var(--muted);font-size:.94rem}

.builder{
    margin-top:26px;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);
    gap:22px;
    align-items:start;
}

.builder-panel{
    border:1px solid var(--line);
    border-radius:18px;
    padding:22px;
    background:#fff;
}

.builder-panel label{
    display:block;
    font-weight:800;
    margin-bottom:8px;
}

.builder-panel input{
    width:100%;
    border:1px solid #cfd5dc;
    border-radius:12px;
    padding:13px 14px;
    outline:none;
}

.builder-panel input:focus{
    border-color:var(--ased);
    box-shadow:0 0 0 3px rgba(48,113,189,.12);
}

.meter{
    height:10px;
    background:#eceff3;
    border-radius:999px;
    overflow:hidden;
    margin:16px 0 10px;
}

.meter > div{
    height:100%;
    width:0;
    background:var(--danger);
    transition:.2s ease;
}

.meter-label{
    font-weight:800;
    margin-bottom:12px;
}

.checks{
    display:grid;
    gap:8px;
}

.check{
    display:flex;
    align-items:center;
    gap:9px;
    color:var(--muted);
    font-size:.92rem;
}

.check.ok{color:var(--ok);font-weight:700}

.tipbox{
    border-radius:18px;
    padding:22px;
    background:var(--ased-soft);
    border:1px solid #cfe0ef;
}

.tipbox h3{margin:0 0 8px}
.tipbox p{margin:0;color:#4e647b}

.warning{
    margin-top:20px;
    border-left:5px solid var(--warn);
    background:#fff7ed;
    border-radius:14px;
    padding:18px 20px;
}

.warning strong{color:var(--warn)}

.mfa{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
    margin-top:24px;
}

.mfa-step{
    border:1px solid var(--line);
    border-radius:18px;
    padding:22px;
    background:#fff;
}

.mfa-step h3{margin:0 0 8px}
.mfa-step p{margin:0;color:var(--muted)}

.quiz{
    margin-top:24px;
    border:1px solid var(--line);
    border-radius:20px;
    overflow:hidden;
}

.quiz-top{
    display:flex;
    justify-content:space-between;
    gap:20px;
    align-items:center;
    padding:14px 18px;
    background:#f5f6f8;
    color:var(--muted);
    font-size:.9rem;
}

.progress{
    height:6px;
    background:#e8eaf0;
}

.progress > div{
    height:100%;
    background:var(--ased);
    width:25%;
    transition:.25s;
}

.quiz-body{padding:28px}

.quiz-question{
    font-size:1.15rem;
    font-weight:800;
    margin:0 0 18px;
}

.answers{display:grid;gap:10px}

.answer{
    width:100%;
    text-align:left;
    border:1px solid #dfe3e8;
    background:#fff;
    border-radius:12px;
    padding:13px 15px;
    color:var(--ink);
}

.answer:hover{
    border-color:var(--ased);
    background:var(--ased-soft);
}

.answer.correct{
    border-color:var(--ok);
    background:#effaf5;
    color:#115b3f;
}

.answer.wrong{
    border-color:var(--danger);
    background:#fff2f3;
    color:#7d2027;
}

.feedback{
    min-height:28px;
    margin-top:14px;
    color:var(--muted);
    font-size:.94rem;
}

.quiz-actions{
    display:flex;
    justify-content:flex-end;
    margin-top:14px;
}

.next-btn{
    border:0;
    border-radius:10px;
    padding:11px 17px;
    background:var(--ased);
    color:#fff;
    font-weight:800;
}

.next-btn:disabled{
    opacity:.4;
    cursor:not-allowed;
}

.habits{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:14px;
    margin-top:24px;
}

.habit{
    border:1px solid var(--line);
    border-radius:18px;
    padding:20px;
    background:#fff;
}

.habit b{
    width:30px;
    height:30px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:var(--ased);
    color:#fff;
    margin-bottom:12px;
}

.habit strong{display:block;margin-bottom:7px}
.habit p{margin:0;color:var(--muted);font-size:.93rem}

.final-banner{
    margin-top:22px;
    border-radius:22px;
    padding:32px;
    text-align:center;
    background:linear-gradient(135deg,#142b47,#244f82);
    color:#fff;
    box-shadow:0 18px 38px rgba(20,43,71,.16);
}

.final-banner h2{margin-bottom:8px}
.final-banner p{margin:0;color:rgba(255,255,255,.8)}

@media(max-width:900px){
    .stats,.habits{grid-template-columns:repeat(2,1fr)}
    .cards,.compare,.rules,.builder,.mfa{grid-template-columns:1fr}
}

@media(max-width:600px){
    .capsula{width:min(100% - 18px,1160px)}
    .hero{padding:120px 20px 32px}
    .capsula>section{padding:26px 20px;border-radius:18px}
    .stats,.habits{grid-template-columns:1fr}
    h1{font-size:2.5rem}
}
