.access-page { max-width: 1120px; margin: auto; padding: 48px 30px 60px; }
.access-page h1 { font: 400 clamp(2.2rem, 5vw, 3.6rem)/1.12 Georgia, serif; letter-spacing: -.035em; margin: 0 0 22px; }
.access-page h2 { font: 400 1.6rem/1.25 Georgia, serif; margin: 0 0 16px; }
.access-page h3 { font-size: 1rem; margin: 0; overflow-wrap: anywhere; }
.access-lead { max-width: 780px; color: #52625a; margin-bottom: 32px; }
.access-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 26px; }
.access-card { border: 1px solid #d9dfd5; border-radius: 14px; padding: 28px; background: #fffefa; min-width: 0; }
.access-guide { background: #edf1e9; }
.access-guide li { margin-bottom: 14px; }
.access-form label, .access-card > label { display: block; font-size: .9rem; margin: 18px 0 6px; font-weight: 600; }
.access-form input:not([type="hidden"]), .access-copy-source { display: block; width: 100%; min-height: 46px; border: 1px solid #adb9af; border-radius: 6px; padding: 10px 12px; font: inherit; color: #173e34; background: white; box-sizing: border-box; }
.access-copy-source { font-size: .88rem; margin: 10px 0 14px; resize: vertical; }
.access-form ul { font-size: .8rem; color: #52625a; padding-left: 20px; }
.access-form input:focus-visible, .access-copy-source:focus-visible, .access-page button:focus-visible { outline: 3px solid #a67b18; outline-offset: 3px; }
.access-members { margin-top: 42px; }
.access-member { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 0; border-top: 1px solid #d9dfd5; }
.access-member p { font-size: .85rem; margin: 4px 0 10px; overflow-wrap: anywhere; }
.access-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.access-actions button, .access-secondary { padding: 11px 15px; min-height: 44px; border: 1px solid #adb9af; border-radius: 8px; background: transparent; color: #173e34; font: inherit; font-size: .8rem; cursor: pointer; }
.access-actions .access-danger { color: #803e32; border-color: #cdb7ae; }
.access-state { display: inline-block; padding: 3px 10px; border-radius: 99px; font-size: .72rem; background: #e7ecdf; }
.access-note, .access-empty { color: #52625a; font-size: .85rem; }
.access-notice { border-left: 3px solid #b59040; background: #f1eee2; padding: 15px 20px; }
.access-narrow { max-width: 580px; margin: 0 auto; }
.access-page .errorlist { color: #8c352a; }
.access-page button:disabled { opacity: .5; cursor: not-allowed; }
@media (max-width: 720px) { .access-page { padding: 32px 22px 40px; } .access-grid { grid-template-columns: 1fr; } .access-card { padding: 22px; } .access-member { align-items: flex-start; flex-direction: column; } .access-actions { justify-content: flex-start; } }
