.access-page { min-height:100svh; display:flex; flex-direction:column; }
.access-header { padding:2rem clamp(1.5rem,5vw,5rem); }
.access-main { flex:1; display:grid; place-items:center; padding:2rem 1.5rem 6rem; }
.access-panel { width:100%; max-width:27.5rem; }
.access-eyebrow { color:var(--text-brand); font-size:var(--type-small); margin:0 0 1rem; }
.access-panel h1 { font-family:var(--font-heading); font-size:var(--type-display); line-height:var(--type-display-line-height); letter-spacing:var(--type-display-tracking); margin:0 0 1.5rem; }
.access-intro { color:var(--text-secondary); margin:0 0 2rem; }
.access-panel label { display:block; font-size:var(--type-small); margin:0 0 0.5rem; }
.access-input { display:flex; border:1px solid var(--border-control); border-radius:0.5rem; background:var(--background-surface); }
.access-input:focus-within { outline:2px solid var(--focus-ring); outline-offset:3px; }
.access-input input { min-width:0; width:100%; min-height:3.25rem; padding:0.75rem; border:0; border-radius:0.5rem; background:transparent; color:var(--text-primary); font:inherit; font-size:1rem; }
.access-input input:focus { outline:none; }
.access-input button { border:0; background:transparent; color:var(--text-brand); padding:0.75rem; min-height:3rem; font:inherit; cursor:pointer; }
.access-submit { width:100%; margin-top:1.5rem; min-height:3.25rem; padding:0.75rem 1.5rem; border-radius:0.5rem; font-size:1rem; font-weight:400; }
.access-error { color:var(--status-error-text); font-size:var(--type-small); margin:0.75rem 0 0; }
.access-back,.access-contact { display:block; width:fit-content; margin-top:1.5rem; color:var(--text-secondary); font-size:var(--type-small); }
.access-contact { margin-top:0.75rem; }
.project-lock { display:inline-flex; align-items:center; gap:0.375rem; margin-left:0.625rem; font-size:0.75rem; color:var(--text-muted); }
.project-lock svg { width:0.875rem; height:0.875rem; fill:none; stroke:currentColor; stroke-width:1.7; }
.project-access-logout { display:block; margin-top:1rem; }
.project-access-logout button { background:none; border:0; padding:0.5rem 0; color:var(--text-secondary); font:inherit; font-size:var(--type-small); text-decoration:underline; cursor:pointer; }
@media(max-width:480px) { .access-header { padding-top:1.5rem; } .access-main { align-items:start; padding-top:3rem; } }
