/* neverlogoff/access.css — "Who has access" (/me/access), the access picker, access links (/a/<code>)
   Logical properties only (RTL-ready), 44px touch targets, elastic layout (no fixed text widths). */
.ax [hidden],.al [hidden]{display:none !important}
.ax{max-inline-size:960px;margin-inline:auto;padding:1rem .75rem 4rem;display:grid;gap:1rem}
.ax h1{margin:0}
.ax .lede{margin:0;color:#4a5263}
.ax-state{margin:0}
.ax-card{background:#fff;border:1px solid #d5dae2;border-radius:14px;padding:1rem;display:grid;gap:.75rem;min-inline-size:0}
.ax-card h2{font-size:1.1rem;margin:0}
.ax-card h3{font-size:1rem;margin:.25rem 0}
.ax-notices{background:#fff8e6;border-color:#e8c873}
.ax-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.ax-item{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.4fr) auto;gap:.5rem 1rem;align-items:center;padding:.6rem .75rem;border:1px solid #e3e7ee;border-radius:10px;min-inline-size:0}
.ax-item > *{min-inline-size:0;overflow-wrap:anywhere}
.ax-off{opacity:.62}
.ax-what{display:grid;gap:.1rem}
.ax-kind{font-size:.82rem;color:#5b6475}
.ax-words{display:flex;flex-wrap:wrap;gap:.25rem .75rem;align-items:center}
.ax-count{font-weight:600;color:#1d2433}
.ax-tag{font-size:.75rem;border:1px solid #c9cfd9;border-radius:999px;padding:.05rem .5rem;color:#3d4757}
.ax-btns{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:flex-end}
.ax-empty{color:#5b6475;margin:0}
.ax-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-end}
.ax-field{display:grid;gap:.25rem;flex:1 1 14rem;min-inline-size:0}
.ax-field span{font-size:.88rem;color:#3d4757}
.ax input,.ax select{min-block-size:44px;padding:.4rem .6rem;border:1px solid #b9c0cc;border-radius:8px;font:inherit;background:#fff;color:#1d2433;max-inline-size:100%}
.ax button{min-block-size:44px;padding:.4rem .9rem;border-radius:10px;font:inherit;font-weight:600;cursor:pointer;border:1px solid #3573b8}
.ax button.primary{background:#3573b8;color:#fff}
.ax button.ghost{background:#fff;color:#2d649f}
.ax button.small{min-block-size:40px;padding:.3rem .7rem;font-size:.9rem}
.ax button.danger{color:#a12a2a;border-color:#c45656}
.ax button:focus-visible,.ax input:focus-visible,.ax select:focus-visible{outline:3px solid #1d2433;outline-offset:2px}
.ax-sub{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-end;border-block-start:1px solid #e3e7ee;padding-block-start:.75rem}
.ax-listbox{border:1px solid #e3e7ee;border-radius:10px;padding:.75rem;display:grid;gap:.5rem}
.ax-wrap{flex-wrap:wrap}
.ax-frame{inline-size:100%;block-size:min(640px,80vh);border:1px solid #d5dae2;border-radius:10px;background:#f6f7f9}
.ax-dialog{max-inline-size:min(32rem,92vw);border:1px solid #d5dae2;border-radius:14px;padding:1rem}
.ax-dialog::backdrop{background:rgba(16,20,28,.45)}
.fine{font-size:.88rem;color:#4a5263;margin:0}
/* the picker */
.ap{border:1px solid #d5dae2;border-radius:12px;padding:.75rem;margin:0;display:grid;gap:.6rem;min-inline-size:0}
.ap legend{font-weight:700;padding-inline:.25rem}
.ap-radios{display:flex;flex-wrap:wrap;gap:.4rem}
.ap-radio,.ap-check{display:inline-flex;align-items:center;gap:.45rem;min-block-size:44px;padding:.25rem .7rem;border:1px solid #c9cfd9;border-radius:999px;background:#fff;cursor:pointer}
.ap-radio:has(input:checked),.ap-check:has(input:checked){border-color:#3573b8;background:#eaf2fb}
.ap-radio input,.ap-check input{inline-size:1.1rem;block-size:1.1rem;margin:0}
.ap-custom{display:flex;flex-wrap:wrap;gap:.4rem}
.ap-paid{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-end;flex-basis:100%}
.ap-price{display:grid;gap:.2rem;font-size:.85rem}
.ap-price input{inline-size:9rem}
.ap-until{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.ap-summary{margin:0;font-weight:600;color:#1d2433}
/* access links */
.al{max-inline-size:28rem;margin:12vh auto;padding:0 1rem;display:grid;gap:1rem;text-align:center}
@media (max-width:640px){.ax-item{grid-template-columns:minmax(0,1fr)}.ax-btns{justify-content:flex-start}}
