:root{--access-bg:#F0EBE3;--access-surface:#fff;--access-ink:#2C1A0E;--access-muted:#6B5A47;--access-line:#E3D8C8;--access-brand:#D85A30;--access-action:#B64724}
*{box-sizing:border-box}
body{margin:0;background:var(--access-bg);color:var(--access-ink);font:16px/1.55 Inter,system-ui,sans-serif;letter-spacing:0}
.access-wrap{max-width:1040px;margin:auto;padding:24px 24px 64px}
.access-wrap a{color:var(--access-action);text-decoration:none;text-underline-offset:4px}
.access-wrap a:hover{text-decoration:underline}
.access-wrap h1,.access-wrap h2{font-family:Unbounded,Inter,sans-serif;font-weight:700;line-height:1.4;text-wrap:balance;overflow-wrap:anywhere}
.access-wrap h1{font-size:28px;margin:0}
.access-wrap h2{font-size:18px;margin:0 0 20px}
.access-wrap p{margin:0 0 16px}
.access-wrap form{margin:0}
.access-wrap label{display:block;font-size:13px;font-weight:600;min-width:0}
.access-wrap input,.access-wrap button{font:inherit;max-width:100%;min-width:0}
.access-wrap input:not([type=checkbox]):not([type=hidden]){display:block;width:100%;height:46px;background:var(--access-surface);color:var(--access-ink);border:1px solid #AD9C87;border-radius:6px;padding:10px 12px;margin:7px 0 0;font-size:16px}
.access-wrap input::placeholder{color:var(--access-muted);opacity:1}
.access-wrap input[aria-invalid=true]{border-color:#AE3030}
.access-wrap input[type=date]{appearance:none;-webkit-appearance:none}
.access-wrap input[type=date]::-webkit-date-and-time-value{text-align:left}
.access-wrap button{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:44px;border:1px solid var(--access-action);border-radius:6px;padding:10px 16px;background:var(--access-action);color:#fff;font-size:14px;font-weight:600;line-height:1.4;cursor:pointer;transition:background .15s,border-color .15s}
.access-wrap button:hover{background:#963A1D;border-color:#963A1D}
.access-wrap button.secondary{color:var(--access-ink);background:#fff;border-color:var(--access-line)}
.access-wrap button.secondary:hover{background:#FAF6EF;border-color:#AD9C87}
.access-wrap button.danger{color:#A02C27;background:transparent;border-color:transparent}
.access-wrap button.danger:hover{background:#FCECE8;border-color:#E9BAB1}
.access-wrap .check{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:400;margin:14px 0 22px;color:var(--access-muted);min-height:24px;cursor:pointer}
.access-wrap .check input{width:17px;height:17px;margin:0;accent-color:var(--access-action)}
.access-wrap :focus-visible{outline:3px solid #327B85;outline-offset:3px}
.access-crumbs{display:flex;flex-wrap:wrap;gap:10px;font-size:13px;color:var(--access-muted);margin-bottom:32px}
.access-session{display:flex;gap:20px;align-items:center;justify-content:space-between;margin:0 0 20px}
.access-session>div{min-width:0}
.access-session form{flex:none}
.access-wrap .access-overline{font-size:13px;color:var(--access-muted);margin-bottom:6px}
.access-links{display:flex;flex-wrap:wrap;gap:12px 24px;padding:0 0 24px;margin-bottom:28px;border-bottom:1px solid var(--access-line);font-size:14px}
.access-error{background:#FCE5E1;color:#8A2B20;padding:12px 14px;border:1px solid #E9BAB1;border-radius:6px;overflow-wrap:anywhere;font-size:14px}
.access-note{color:var(--access-muted);font-size:13px;line-height:1.65}
.access-create{padding-bottom:28px}
.access-create-form{display:grid;grid-template-columns:minmax(0,1fr) 200px auto;gap:16px;align-items:end}
.access-create-form button{min-height:46px}
.access-create .access-note{margin:12px 0 0}
.access-roster-heading{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--access-line)}
.access-roster-heading h2{margin:0}
.access-count{font-size:14px;color:var(--access-muted);font-variant-numeric:tabular-nums}
.access-row{display:grid;grid-template-columns:minmax(160px,1fr) auto auto;gap:20px;align-items:end;padding:20px 0;border-bottom:1px solid var(--access-line)}
.access-person{align-self:center;min-width:0}
.access-person strong{display:block;font-size:15px;font-weight:600;overflow-wrap:anywhere}
.access-status{display:flex;align-items:center;gap:6px;color:#28693B;font-size:12px;margin-top:5px}
.access-status::before{content:'';display:block;width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.access-status.is-expired{color:#A02C27}
.access-expiry{display:flex;gap:8px;align-items:end}
.access-expiry label{width:170px}
.access-expiry button{min-height:46px}
.access-revoke button{min-height:46px}
.access-empty{padding:28px 0;border-bottom:1px solid var(--access-line)}
.access-empty p:first-child{font-size:15px;font-weight:600;margin-bottom:6px}
.access-empty .access-note{margin:0}
.access-issued{background:#F1F8F2;color:#235A35;padding:20px;border:1px solid #ADCAB3;border-radius:8px;margin:0 0 28px}
.access-issued strong{font-size:15px;overflow-wrap:anywhere}
.access-password-copy{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:12px 0}
.access-issued code{font-size:24px;font-weight:600;overflow-wrap:anywhere;user-select:all;line-height:1.5}
.access-issued .access-note{color:#325C3E;margin:0}
#copy-status:empty{display:none}
.access-destinations{display:flex;flex-direction:column;border-top:1px solid var(--access-line);margin-top:28px}
.access-destinations a{padding:18px 0;border-bottom:1px solid var(--access-line);font-weight:500}
.access-standalone{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100svh}
.access-wrap--login{display:flex;flex-direction:column;max-width:460px;width:100%;padding:32px 24px}
.access-wrap--login .access-crumbs{order:2;justify-content:center;margin:22px 0 0}
.access-login{background:#fff;border:1px solid var(--access-line);border-top:3px solid var(--access-brand);border-radius:8px;padding:36px 32px 32px;box-shadow:0 10px 32px #2C1A0E0A}
.access-login .access-brand{font:800 22px/1.4 Unbounded,Inter,sans-serif;color:var(--access-brand);margin:0 0 28px}
.access-login h1{font-size:19px;margin:0 0 10px}
.access-login>.access-note{font-size:14px;margin-bottom:28px}
.access-password-form>button{width:100%;font-size:16px;min-height:48px}
.access-password-form input:not([type=checkbox]):not([type=hidden]){height:50px}
.access-login .access-error{margin-bottom:20px}
@media(max-width:760px){
  .access-wrap{padding:20px 18px 40px}
  .access-wrap h1{font-size:24px}
  .access-create-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .access-create-form>label:first-of-type{grid-column:1/-1}
  .access-row{grid-template-columns:minmax(0,1fr) auto;gap:14px}
  .access-person{grid-column:1/-1}
  .access-expiry{flex-wrap:wrap}
  .access-expiry label{width:160px}
  .access-wrap--login{padding:24px 18px}
  .access-login h1{font-size:19px}
}
@media(max-width:480px){
  .access-crumbs{margin-bottom:24px}
  .access-session{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}
  .access-session>div{display:contents}
  .access-session .access-overline{grid-column:1;grid-row:1;margin:0}
  .access-session h1{grid-column:1/-1;grid-row:2;font-size:20px}
  .access-session form{grid-column:2;grid-row:1}
  .access-session button{padding:9px 12px}
  .access-links{gap:10px 20px}
  .access-create-form{grid-template-columns:minmax(0,1fr)}
  .access-create-form>button{justify-self:start}
  .access-wrap h2{font-size:16px}
  .access-row{grid-template-columns:minmax(0,1fr);gap:10px}
  .access-expiry{display:grid;grid-template-columns:minmax(0,1fr) auto}
  .access-expiry label{width:auto}
  .access-expiry button{max-width:125px}
  .access-revoke{justify-self:start}
  .access-revoke button{padding-left:0}
  .access-login{padding:28px 22px 24px}
  .access-login .access-brand{font-size:20px}
  .access-login h1{font-size:17px}
  .access-issued{padding:16px}
}
@media(prefers-reduced-motion:reduce){.access-wrap button{transition:none}}
.access-activity{font-size:12px;color:var(--access-muted);margin:10px 0 6px}
.access-activity>div{display:flex;flex-wrap:wrap;gap:4px 10px}
.access-activity dt{min-width:112px}
.access-activity dd{margin:0;font-variant-numeric:tabular-nums;color:var(--access-ink)}
.access-history-link,.access-back{font-size:13px}
.access-wrap select{display:block;width:100%;min-width:0;height:46px;margin-top:7px;border:1px solid #AD9C87;border-radius:6px;padding:9px 28px 9px 10px;font:400 14px/1.4 Inter,system-ui,sans-serif;background:#fff;color:var(--access-ink)}
.history-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:12px 0 28px;border-bottom:1px solid var(--access-line)}
.history-field{min-width:0}
.history-filter-actions{display:flex;align-items:center;gap:18px;align-self:end;font-size:13px;min-height:46px}
.history-heading{display:flex;gap:12px;align-items:center;margin:28px 0 16px}
.history-heading h2{margin:0}
.history-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:14px;background:#fff}
.history-table th{font-size:12px;color:var(--access-muted);text-align:left;font-weight:500;background:var(--access-bg)}
.history-table td,.history-table th{padding:14px 16px;border-bottom:1px solid var(--access-line);vertical-align:top;overflow-wrap:anywhere}
.history-table th:first-child{width:155px}
.history-table th:nth-child(2){width:26%}
.history-table time{font-size:13px;font-variant-numeric:tabular-nums}
.history-action,.history-section{display:block;color:var(--access-muted);font-size:12px;line-height:1.5}
.history-action{margin-bottom:4px;color:var(--access-ink);font-weight:600}
.history-section{margin-top:6px}
.history-pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:20px;margin-top:24px;font-size:13px}
.history-pagination a{padding:10px 14px;background:#fff;border:1px solid var(--access-line);border-radius:6px}
@media(max-width:760px){.history-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.history-field:first-child{grid-column:1/-1}}
@media(max-width:480px){
  .access-session>.access-back{grid-row:1;grid-column:2}
  .history-filters{grid-template-columns:minmax(0,1fr)}
  .history-table,.history-table tbody{display:block}
  .history-table thead{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
  .history-table tr{display:block;border-bottom:1px solid var(--access-line);padding:14px}
  .history-table td{display:block;border:0;padding:0 0 10px}
  .history-table td:last-child{padding-bottom:0}
  .history-table td:first-child{color:var(--access-muted)}
  .history-table td:nth-child(2){font-weight:600}
}
