:root { --access-ink:#202c3b; --access-muted:#526277; --access-line:#cbd5e1; --access-blue:#176f8a; }
.access-header { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:0 16px; padding:8px 24px; border-bottom:1px solid var(--access-line); background:#fff; color:var(--access-ink); font-size:16px; line-height:24px; }
.access-brand { color:var(--access-ink); font-weight:700; text-decoration:none; min-width:0; }
.access-personal { display:flex; align-items:center; gap:8px; }
.access-personal form { margin:0; }
.access-personal button,.access-shell button,.access-shell .button { display:inline-flex; justify-content:center; align-items:center; box-sizing:border-box; min-height:44px; padding:8px 16px; font:inherit; font-weight:700; border:1px solid var(--access-blue); border-radius:6px; background:var(--access-blue); color:#fff; text-decoration:none; text-align:center; line-height:24px; cursor:pointer; }
.access-avatar-link { width:48px; height:48px; display:flex; align-items:center; justify-content:center; flex:none; border-radius:50%; text-decoration:none; }
.access-avatar { display:block; width:40px; height:40px; object-fit:cover; border-radius:50%; }
.access-initials { display:flex; align-items:center; justify-content:center; color:#fff; background:var(--access-blue); font-weight:700; }
.access-nav { grid-column:1/-1; display:flex; flex-wrap:wrap; align-items:center; gap:0 16px; }
.access-nav a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; min-width:44px; text-decoration:none; color:var(--access-blue); }
.access-header a:focus-visible,.access-shell :focus-visible { outline:3px solid var(--access-blue); outline-offset:3px; }
.access-nav a:hover { text-decoration:underline; }
.access-shell { max-width:1100px; margin:24px auto; color:var(--access-ink); font:16px/24px system-ui,sans-serif; }
.access-shell.access-narrow { max-width:640px; }
.access-shell h1 { font-size:24px; line-height:32px; margin:0 0 8px; }
.access-shell h2 { font-size:18px; line-height:24px; margin:0 0 16px; overflow-wrap:anywhere; }
.access-shell p { margin:0 0 16px; }
.access-shell .access-muted,.access-shell .access-help { color:var(--access-muted); font-size:16px; line-height:24px; font-weight:400; }
.access-wrap { overflow-wrap:anywhere; }
.access-panel { background:#fff; padding:16px; border:1px solid var(--access-line); border-radius:8px; margin-top:24px; min-width:0; }
.access-form,.access-fields { display:grid; gap:16px; min-width:0; }
.access-form label { display:grid; gap:8px; min-width:0; margin:0; font-weight:700; }
.access-form input:not([type=hidden]),.access-form select { display:block; width:100%; max-width:100%; min-width:0; box-sizing:border-box; min-height:44px; border:1px solid #78879a; border-radius:6px; background:#fff; color:var(--access-ink); padding:8px 12px; font:inherit; line-height:24px; margin:0; }
.access-form input[type=file] { overflow:hidden; font-size:16px; }
.access-form .access-check { display:flex; align-items:center; gap:12px; min-height:44px; font-weight:400; }
.access-form .access-check input { flex:none; width:20px; height:20px; min-height:20px; padding:0; accent-color:var(--access-blue); }
.access-form fieldset { border:0; padding:0; margin:0; min-inline-size:0; display:grid; gap:16px; }
.access-form fieldset h2,.access-form fieldset p { margin:0; }
.access-form fieldset:disabled input,.access-form fieldset:disabled select { color:var(--access-muted); background:#f5f7fb; opacity:1; }
.access-roles { display:grid; }
.access-form .access-role-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,240px); align-items:center; gap:16px; padding:8px 0; border-bottom:1px solid var(--access-line); }
.access-fixed { font-weight:400; color:var(--access-muted); padding:8px 12px; }
.access-form .access-days { max-width:240px; }
.access-shell .secondary { background:#fff; color:var(--access-blue); }
.access-shell .danger { background:#b42318; border-color:#b42318; }
.access-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.access-heading>div { min-width:0; }
.access-heading .button { flex:none; }
.access-selector { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; margin-top:24px; max-width:640px; }
.access-warning { color:#92400e; background:#fffbeb; border-left:4px solid #92400e; padding:16px; }
.access-after { margin-top:16px; }
.access-panel summary { min-height:44px; line-height:24px; padding:8px 0; box-sizing:border-box; font-weight:700; cursor:pointer; }
.access-danger summary { color:#b42318; }
.access-messages { max-width:1100px; margin:16px auto; overflow-wrap:anywhere; }
.access-messages .error { color:#b42318; }
@media(max-width:600px) {
  .access-header { padding-inline:16px; gap:0 8px; }
  .access-brand { font-size:16px; }
  .access-nav { gap:0 12px; }
  .access-shell { margin:16px auto; }
  .access-heading { align-items:flex-start; flex-direction:column; gap:8px; }
  .access-selector { grid-template-columns:minmax(0,1fr); }
  .access-form .access-role-row { grid-template-columns:minmax(0,1fr); gap:8px; padding:12px 0; }
  .access-form .access-role-row select { width:100%; }
  .access-fixed { padding:0; }
}
