.access-public-page{min-height:100vh;background:var(--bg,#f6f7f8);color:var(--ink,#18202a)}
.access-public-shell{width:min(1080px,calc(100% - 32px));margin:0 auto;padding:48px 0 64px;display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,480px);gap:32px;align-items:start}
.access-intro,.access-card,.access-admin-panel{background:#fff;border:1px solid rgba(25,40,55,.12);border-radius:18px;box-shadow:0 14px 40px rgba(20,35,50,.06)}
.access-intro{padding:36px;position:sticky;top:28px}
.access-card{padding:30px}
.access-brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}
.access-brand .brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;font-weight:800}
.access-brand strong{display:block;font-size:1.05rem}
.access-brand span{display:block;font-size:.85rem;opacity:.68;margin-top:2px}
.access-eyebrow{font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;opacity:.62}
.access-intro h1,.access-card h1,.access-admin-header h1{margin:.45rem 0 .8rem;line-height:1.08}
.access-intro p,.access-card>p,.access-admin-header p{line-height:1.6;opacity:.78}
.access-principles{display:grid;gap:12px;margin-top:26px}
.access-principle{padding:14px 16px;border-radius:12px;background:rgba(30,100,90,.06);line-height:1.45}
.access-principle strong{display:block;margin-bottom:3px}
.access-form{display:grid;gap:18px;margin-top:24px}
.access-form label{display:grid;gap:7px;font-weight:700;font-size:.92rem}
.access-form input,.access-form textarea,.access-form select,.admin-filter select,.reject-box textarea{width:100%;box-sizing:border-box;border:1px solid rgba(25,40,55,.2);border-radius:10px;background:#fff;color:inherit;padding:12px 13px;font:inherit}
.access-form textarea,.reject-box textarea{min-height:120px;resize:vertical}
.access-form input:focus,.access-form textarea:focus,.access-form select:focus,.admin-filter select:focus,.reject-box textarea:focus{outline:3px solid rgba(25,115,100,.18);border-color:rgba(25,115,100,.55)}
.access-help{font-size:.8rem;font-weight:400;line-height:1.4;opacity:.66}
.access-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.access-submit,.access-action{border:0;border-radius:10px;padding:12px 16px;font:inherit;font-weight:800;cursor:pointer;background:#173f39;color:#fff}
.access-submit[disabled],.access-action[disabled]{opacity:.55;cursor:wait}
.access-action.secondary{background:#edf2f1;color:#183d38;border:1px solid rgba(24,61,56,.14)}
.access-action.danger{background:#fff3f1;color:#8a2f22;border:1px solid rgba(138,47,34,.18)}
.access-status{min-height:1.4em;border-radius:10px;font-size:.9rem;line-height:1.45}
.access-status.success{padding:12px 14px;background:#edf8f4;color:#175a49}
.access-status.error{padding:12px 14px;background:#fff1ef;color:#8b3024}
.access-links{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:22px;font-size:.9rem}
.access-links a{color:inherit;font-weight:700}
.invitation-person{padding:14px 16px;border-radius:12px;background:#f3f6f6;margin:18px 0}
.invitation-person strong,.invitation-person span{display:block}
.invitation-person span{margin-top:4px;opacity:.7}

.access-admin-page{min-height:100vh;background:var(--bg,#f6f7f8);color:var(--ink,#18202a)}
.access-admin-shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:34px 0 64px}
.access-admin-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}
.access-admin-header .access-brand{margin:0 0 12px}
.admin-filter{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.admin-filter label{font-weight:800;font-size:.86rem}
.access-admin-panel{padding:22px}
.access-admin-summary{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:18px;flex-wrap:wrap}
.access-admin-summary strong{font-size:1.05rem}
.invitation-output{display:none;margin-bottom:18px;padding:16px;border-radius:12px;background:#edf8f4;border:1px solid rgba(23,90,73,.18)}
.invitation-output.visible{display:block}
.invitation-output code{display:block;overflow-wrap:anywhere;margin:8px 0 12px;padding:10px;background:#fff;border-radius:8px}
.access-request-list{display:grid;gap:14px}
.access-request-card{border:1px solid rgba(25,40,55,.12);border-radius:14px;padding:18px;background:#fff}
.access-request-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.access-request-head h2{font-size:1.05rem;margin:0 0 4px}
.access-request-head p{margin:0;opacity:.7;font-size:.88rem}
.access-status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:800;background:#eef2f3;text-transform:uppercase;letter-spacing:.04em}
.access-status-badge.pending{background:#fff6dc;color:#76590c}
.access-status-badge.approved{background:#eaf7f2;color:#1d6654}
.access-status-badge.rejected{background:#fff0ed;color:#8b3024}
.access-status-badge.accepted{background:#edf1fb;color:#344f8a}
.access-request-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}
.access-request-meta div{padding:10px 12px;border-radius:10px;background:#f6f8f8;min-width:0}
.access-request-meta span{display:block;font-size:.72rem;font-weight:800;opacity:.6;text-transform:uppercase;letter-spacing:.04em}
.access-request-meta strong{display:block;margin-top:4px;font-size:.86rem;overflow-wrap:anywhere}
.access-purpose{margin:0 0 16px;line-height:1.55;white-space:pre-wrap}
.access-request-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.reject-box{margin-top:10px;padding-top:10px;border-top:1px solid rgba(25,40,55,.1)}
.reject-box summary{cursor:pointer;font-weight:800;color:#8a2f22}
.reject-box textarea{margin:10px 0;min-height:80px}
.access-empty{padding:34px 18px;text-align:center;opacity:.68}
.access-admin-nav{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.access-admin-nav a{color:inherit;font-weight:700}

@media(max-width:820px){
  .access-public-shell{grid-template-columns:1fr;padding-top:24px}
  .access-intro{position:static}
  .access-admin-header{align-items:flex-start;flex-direction:column}
  .access-request-meta{grid-template-columns:1fr}
}

@media(max-width:520px){
  .access-public-shell,.access-admin-shell{width:min(100% - 20px,1180px)}
  .access-intro,.access-card,.access-admin-panel{padding:20px;border-radius:14px}
  .access-request-head{flex-direction:column}
}


/* ------------------------------------------------------------------ minimal access overrides */
.access-public-page,.access-admin-page{background:#fafaf9;color:#18201f}
.access-public-shell{max-width:1040px;gap:20px;padding-top:32px}
.access-intro,.access-card,.access-admin-panel{
  border-radius:8px;
  box-shadow:none;
  border-color:#e5e8e7;
}
.access-intro{padding:28px;top:20px}
.access-card{padding:24px}
.access-brand .brand-mark{border-radius:8px;background:#0f766e;color:#fff}
.access-principle,.invitation-person,.access-request-meta div{
  border-radius:8px;background:#f3f6f5;
}
.access-form input,.access-form textarea,.access-form select,.admin-filter select,.reject-box textarea{
  border-radius:8px;border-color:#d5dad8;
}
.access-submit,.access-action{border-radius:8px;background:#0f766e;font-weight:650}
.access-action.secondary{background:#fff;border-color:#d5dad8}
.access-request-card{border-radius:8px;border-color:#e5e8e7}
.access-status-badge{border-radius:999px}
@media(max-width:520px){
  .access-intro,.access-card,.access-admin-panel{padding:16px;border-radius:8px}
}
