.home-access-entry { display:none; min-height:44px; width:100%; border:0; background:transparent; color:var(--md-text-2); align-items:center; justify-content:center; gap:7px; border-radius:12px; font:inherit; font-size:13px; cursor:pointer; }
.home-access-entry.is-visible { display:flex; }
.home-access-entry:hover, .home-access-entry:focus-visible { color:var(--brand-1); background:color-mix(in srgb, var(--brand-1) 7%, transparent); outline:none; }
.security-environment-card, .redlock-access-card { position:relative; max-width:390px; text-align:center; padding:30px 24px 24px; }
.security-environment-close { position:absolute; top:10px; right:10px; }
.security-environment-card--wifi { width:min(390px, calc(100vw - 24px)); max-height:min(88vh, 640px); padding:18px 18px max(14px, env(safe-area-inset-bottom)); overflow:hidden; display:flex; flex-direction:column; }
.security-environment-card--wifi .security-environment-body { min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:8px 4px 4px; scrollbar-width:thin; }
.security-environment-card--wifi .security-environment-icon { width:46px; height:46px; margin-bottom:9px; border-radius:15px; font-size:20px; }
.security-environment-card--wifi .security-environment-copy { margin:7px 0 12px; line-height:1.5; }
.security-environment-card--wifi .security-environment-network { margin-bottom:0; padding:11px 13px; }
.security-environment-icon { width:54px; height:54px; margin:0 auto 14px; border-radius:18px; display:grid; place-items:center; background:var(--md-brand-soft); color:var(--brand-1); font-size:23px; }
.security-environment-icon--wifi { background:color-mix(in srgb, #2778e8 13%, transparent); color:#2778e8; }
.security-environment-icon--error { background:color-mix(in srgb, #b3261e 12%, transparent); color:#b3261e; }
.security-environment-copy { margin:10px 0 18px; color:var(--md-text-2); line-height:1.65; font-size:14px; }
.security-environment-note { margin:-8px 0 16px; color:var(--md-text-3); font-size:12px; line-height:1.55; }
.security-environment-note--guide { margin:0 0 16px; text-align:left; }
.security-environment-path { display:flex; flex-direction:column; align-items:flex-start; gap:3px; margin:0 0 12px; padding:10px 12px; border:1px solid color-mix(in srgb, var(--brand-1) 24%, var(--md-outline)); border-radius:12px; background:color-mix(in srgb, var(--brand-1) 8%, var(--md-surface)); text-align:left; }
.security-environment-path span { color:var(--brand-1); font-size:11px; font-weight:800; }
.security-environment-path strong { color:var(--md-text); font-size:14px; line-height:1.35; }
.security-environment-steps { display:grid; gap:7px; margin:0 0 12px; padding:0; list-style:none; text-align:left; }
.security-environment-steps li { display:grid; grid-template-columns:25px 1fr; gap:9px; align-items:start; padding:8px 9px; border-radius:11px; background:var(--md-surface-2); color:var(--md-text-2); line-height:1.4; }
.security-environment-steps li > span { width:23px; height:23px; display:grid; place-items:center; border-radius:50%; background:var(--md-brand-soft); color:var(--brand-1); font-size:12px; font-weight:800; }
.security-environment-steps strong { display:block; color:var(--md-text); font-size:13px; }
.security-environment-steps small { display:block; margin-top:2px; color:var(--md-text-3); font-size:11px; }
.security-environment-progress { height:7px; overflow:hidden; border-radius:99px; background:var(--md-outline); }
.security-environment-progress span { display:block; width:72%; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--brand-1),var(--brand-2)); animation:securityProgress 1.4s ease-in-out infinite alternate; }
.security-environment-progress--indeterminate span { width:38%; animation:securityIndeterminate 1.25s ease-in-out infinite; }
.security-environment-stage { margin-top:9px; color:var(--md-text-3); font-size:12px; }
.security-environment-network { display:flex; flex-direction:column; align-items:flex-start; gap:4px; padding:13px 14px; border-radius:13px; background:var(--md-surface-2); color:var(--md-text-2); margin-bottom:15px; text-align:left; }
.security-environment-network span { font-size:12px; font-weight:700; color:var(--md-text-2); }
.security-environment-network strong { color:var(--md-text); font-size:20px; line-height:1.25; font-weight:850; overflow-wrap:anywhere; }
.security-environment-actions { display:grid; gap:9px; }
.security-environment-actions--fixed { flex:0 0 auto; margin:8px -4px 0; padding:12px 4px 0; border-top:1px solid var(--md-outline); background:var(--md-surface); }
.security-environment-actions--fixed .md-btn { width:100%; min-height:44px; }
.security-environment-action-row { display:grid; grid-template-columns:1fr; gap:9px; }
.security-environment-action-row .md-btn { min-height:40px; padding:10px 8px; font-size:13px; }
.security-environment-permission-link { min-height:32px; border:0; padding:3px 8px; background:transparent; color:var(--brand-1); font:inherit; font-size:12px; font-weight:750; cursor:pointer; }
.security-environment-permission-link:hover, .security-environment-permission-link:focus-visible { text-decoration:underline; outline:none; }
.security-environment-retry { min-height:38px; border:0; background:transparent; color:var(--md-text-2); font:inherit; font-size:12px; cursor:pointer; }
.security-environment-retry:hover { color:var(--brand-1); }
.redlock-access-kicker { color:var(--md-text-2); font-size:13px; margin-bottom:12px; }
.redlock-access-code { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-variant-numeric:tabular-nums; font-size:34px; font-weight:850; letter-spacing:.16em; color:var(--md-text); padding-left:.16em; }
.redlock-access-window { color:var(--md-text-3); font-size:12px; }
.redlock-access-card .security-environment-retry { margin-top:8px; }
@keyframes securityProgress { from { width:32%; } to { width:92%; } }
@keyframes securityIndeterminate { from { transform:translateX(-100%); } to { transform:translateX(280%); } }
@media (prefers-reduced-motion:reduce) { .security-environment-progress span { animation:none; width:70%; } }
