.cp-lock-shell{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:calc(28px + env(safe-area-inset-top)) 18px calc(28px + env(safe-area-inset-bottom));box-sizing:border-box;background:var(--canvas,#f3f5f8);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#202a3b}.cp-lock-card{width:min(100%,480px);box-sizing:border-box;background:#fff;border:1px solid #e0e6ed;border-radius:26px;padding:30px;box-shadow:0 20px 60px rgba(31,45,61,.12)}.cp-lock-logo{display:block;width:min(255px,75%);height:auto;margin:0 auto 28px}.cp-lock-kicker{font-size:12px;letter-spacing:.16em;font-weight:800;color:#7d899b;margin:0 0 8px}.cp-lock-card h1{font-size:32px;line-height:1.08;margin:0 0 14px}.cp-lock-copy,.cp-lock-foot,.cp-lock-note{line-height:1.5;color:#657184}.cp-lock-copy{font-size:16px;margin:0 0 22px}.cp-lock-foot{font-size:12px;margin:20px 0 0}.cp-lock-note{font-size:13px;margin:14px 0 0}.cp-lock-card label{display:block;font-weight:750;margin:0 0 8px}.cp-lock-card input{width:100%;box-sizing:border-box;border:1px solid #cfd7e2;border-radius:13px;padding:14px 15px;font-size:17px;background:#fff;color:#172033;outline:none}.cp-lock-card input:focus{border-color:#526f93;box-shadow:0 0 0 4px rgba(82,111,147,.12)}.cp-lock-primary,.cp-lock-secondary{width:100%;border:0;border-radius:13px;padding:14px 16px;font-size:16px;font-weight:800;cursor:pointer}.cp-lock-primary{background:#526f93;color:#fff;box-shadow:0 12px 28px rgba(82,111,147,.22);margin-bottom:12px}.cp-lock-secondary{background:#edf1f6;color:#2f465f;margin-top:12px}.cp-lock-primary:disabled,.cp-lock-secondary:disabled{opacity:.6}.cp-lock-divider{display:flex;align-items:center;gap:12px;color:#8b95a5;font-size:12px;margin:7px 0 15px}.cp-lock-divider:before,.cp-lock-divider:after{content:"";height:1px;background:#e2e7ed;flex:1}.cp-lock-error{background:#fff0f2;color:#a3273d;border:1px solid #f0c7cf;border-radius:12px;padding:11px 13px;margin:0 0 15px;font-size:14px;line-height:1.4}.cp-lock-card code{font-size:.92em;background:#f2f4f7;padding:2px 5px;border-radius:5px}@media (prefers-color-scheme:dark){html[data-color-mode="dark"] .cp-lock-shell{background:#11171e;color:#edf2f7}html[data-color-mode="dark"] .cp-lock-card{background:#19212b;border-color:#344250}html[data-color-mode="dark"] .cp-lock-card input{background:#11171e;color:#edf2f7;border-color:#42505e}html[data-color-mode="dark"] .cp-lock-secondary{background:#25313d;color:#edf2f7}html[data-color-mode="dark"] .cp-lock-copy,html[data-color-mode="dark"] .cp-lock-foot,html[data-color-mode="dark"] .cp-lock-note{color:#aab5c3}}
.cp-security-link{display:block;box-sizing:border-box;text-align:center;text-decoration:none}.cp-start-error{max-width:680px;margin:12vh auto;padding:32px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#172033}.cp-start-error h1{font-size:24px;margin:0 0 12px}.cp-start-error p{line-height:1.6}.cp-start-error-details{margin-top:20px}.cp-start-error-details summary{cursor:pointer}.cp-start-error-details code{display:block;margin-top:10px;padding:12px;background:#eef1f6;border-radius:8px;overflow-wrap:anywhere}


/* V0.6 — Face ID chamado diretamente pelo mesmo gesto do utilizador. */
.cp-face-card{text-align:center;user-select:none;-webkit-user-select:none}.cp-face-card .cp-lock-kicker,.cp-face-card h1{text-align:left}.cp-face-tap{width:100%;min-height:250px;border:1px solid #d9e1ea;border-radius:22px;background:linear-gradient(180deg,#f8fafc 0%,#f1f5f8 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;color:#243a50;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.cp-face-tap strong{font-size:20px}.cp-face-tap>span:last-child{font-size:13px;color:#718096;font-weight:750}.cp-face-tap.authenticating{opacity:.78;transform:scale(.995)}.cp-face-symbol{position:relative;display:block;width:78px;height:78px;margin-bottom:5px}.cp-face-corner{position:absolute;width:22px;height:22px;border:4px solid #526f93}.cp-face-corner.tl{left:0;top:0;border-right:0;border-bottom:0;border-radius:10px 0 0 0}.cp-face-corner.tr{right:0;top:0;border-left:0;border-bottom:0;border-radius:0 10px 0 0}.cp-face-corner.bl{left:0;bottom:0;border-right:0;border-top:0;border-radius:0 0 0 10px}.cp-face-corner.br{right:0;bottom:0;border-left:0;border-top:0;border-radius:0 0 10px 0}.cp-face-eye{position:absolute;top:28px;width:5px;height:8px;border-radius:999px;background:#526f93}.cp-face-eye.left{left:25px}.cp-face-eye.right{right:25px}.cp-face-nose{position:absolute;left:37px;top:30px;width:5px;height:19px;border-left:3px solid #526f93;border-bottom:3px solid #526f93;border-radius:0 0 0 5px}.cp-face-mouth{position:absolute;left:25px;bottom:18px;width:29px;height:11px;border-bottom:3px solid #526f93;border-radius:0 0 50% 50%}.cp-lock-link{appearance:none;border:0;background:transparent;color:#526f93;font-size:14px;font-weight:800;padding:14px 10px 8px;cursor:pointer}.cp-pass-fallback{margin-top:8px;text-align:left}.cp-pass-fallback[hidden]{display:none!important}@media(max-width:520px){.cp-face-card{padding:24px 20px}.cp-face-tap{min-height:220px}.cp-face-symbol{width:72px;height:72px}}

/* V0.6: todo o ecrã protegido é um único alvo de desbloqueio; os controlos de recuperação ficam excluídos pelo JS. */
.cp-face-shell{cursor:pointer;-webkit-tap-highlight-color:transparent}.cp-face-shell .cp-lock-card{cursor:default}.cp-face-shell .cp-face-tap{pointer-events:none}.cp-face-shell .cp-lock-link,.cp-face-shell .cp-pass-fallback,.cp-face-shell .cp-pass-fallback *{pointer-events:auto}

/* CadProf 0.16.25 — alteração segura da frase-passe. */
.cp-security-card{width:min(100%,560px)}
.cp-security-section{border-top:1px solid #e3e8ef;padding-top:20px;margin-top:20px}
.cp-security-section h2{font-size:19px;line-height:1.25;margin:0 0 7px;color:#202a3b}
.cp-security-section>p{margin:0 0 16px;color:#657184;line-height:1.5;font-size:14px}
.cp-security-section form{display:grid;gap:10px}
.cp-security-section form label{margin:3px 0 -2px}
.cp-security-section .cp-lock-primary{margin-top:8px}
.cp-security-message.success{background:#effaf5;color:#176b4a;border-color:#bce5d2}
@media (prefers-color-scheme:dark){html[data-color-mode="dark"] .cp-security-section{border-color:#344250}html[data-color-mode="dark"] .cp-security-section h2{color:#edf2f7}html[data-color-mode="dark"] .cp-security-message.success{background:#173a2d;color:#bcebd7;border-color:#2f6a52}}
