[hidden]{display:none!important}
#reader-shell{min-height:0;flex:1;display:flex;flex-direction:column}
.access-gate{width:min(100% - 40px,520px);margin:auto;overflow:auto;padding:28px 0;line-height:1.6}
.gate-brand{font:italic 700 42px "Onest",sans-serif;color:var(--purple);text-decoration:none}
.eyebrow{font-size:14px;color:var(--purple);margin-top:32px}
.access-gate h1{font-size:clamp(27px,5vw,38px);line-height:1.2;font-weight:600;color:var(--purple);margin:16px 0}
.access-gate form{display:grid;gap:12px;margin:28px 0}
input,select,textarea{max-width:100%;min-width:0;min-height:44px;font:inherit;padding:10px;border:1px solid #887a9c;border-radius:3px;background:white;color:var(--ink)}
label{display:block;margin:8px 0 5px}
#replace-device{width:100%}
button{cursor:pointer;font:inherit}
button:disabled{cursor:default;opacity:.55}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #9882c1;outline-offset:3px}
.note{font-size:14px;color:#70647c;line-height:1.55}
.account-button{display:flex;align-items:center;gap:10px;min-width:44px;min-height:44px;border:0;background:none;color:var(--purple);padding:8px}
.masthead-actions{margin-left:auto;flex:none}
.account-button .icon{width:24px;height:24px}
dialog{width:min(100% - 32px,560px);max-height:calc(100dvh - 32px);margin:auto;padding:28px;border:1px solid var(--line);border-radius:5px;color:var(--ink);background:white;line-height:1.6;overflow:auto;overflow-wrap:anywhere}
dialog::backdrop{background:#21163777}
.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.dialog-heading h2{font-size:26px;line-height:1.25;color:var(--purple);margin:5px 0 24px}
.dialog-heading button{min-width:44px;min-height:44px;border:0;background:none;font-size:30px;line-height:1;color:var(--purple)}
dialog h3{font-size:19px;color:var(--purple);margin:24px 0 10px}
.primary-button,.secondary-button{min-height:46px;padding:12px 18px;white-space:normal;line-height:1.4;text-align:center;justify-content:center}
.primary-button{border:1px solid var(--purple);border-radius:3px;background:var(--purple);color:white}
.secondary-button{border:1px solid #887a9c;border-radius:3px;background:white;color:var(--purple)}
dialog .primary-button,dialog .secondary-button{width:100%}
#logout{margin-top:20px}
body.admin-page{height:auto;min-height:100dvh;overflow:auto;background:var(--desk)}
.admin-header{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:24px clamp(20px,5vw,80px);background:white;border-bottom:1px solid var(--line)}
.admin-header h1{font-size:clamp(23px,4vw,32px);font-weight:600;color:var(--purple);margin:0}
.admin-main{width:min(100% - 40px,1280px);margin:28px auto 64px}
.admin-search{display:flex;align-items:end;gap:12px;margin:24px 0}
.admin-search label{flex:1;min-width:0}.admin-search input{display:block;width:100%;margin-top:8px}
.license-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:20px}
.license-card{padding:24px;background:white;border:1px solid var(--line);border-radius:4px;overflow-wrap:anywhere}
.license-card h2{font-size:20px;font-weight:600;margin:0 0 12px;color:var(--purple)}
.license-card p{margin:10px 0;line-height:1.5}
.license-card code{font-size:12px}.license-card ul{padding-left:20px}
.device-item{margin:16px 0;line-height:1.5}.device-item button{margin-top:7px;display:block}
.audit-list{display:grid;gap:12px;list-style:none;padding:0}.audit-list li{padding:16px;background:white;border-bottom:1px solid var(--line);overflow-wrap:anywhere;line-height:1.5}
@media(max-width:599px){.account-button span{display:none}.account-button{padding:5px}.access-gate{width:calc(100% - 32px)}dialog{padding:20px}.admin-search{flex-wrap:wrap}.admin-search label{flex-basis:100%}.license-card{padding:20px}}
