:root{font-family:Inter,Arial,sans-serif;color:#171719;background:#f6f6f8;font-synthesis:none}*{box-sizing:border-box}body{margin:0}main{max-width:1160px;margin:auto;padding:28px 32px 64px}header,.title{display:flex;align-items:center;justify-content:space-between;gap:20px}header{padding-bottom:44px}header a{font-weight:700;color:inherit;text-decoration:none}header span{font-weight:400;color:#777}.eyebrow{font-size:11px;letter-spacing:.12em;color:#555}h1{font-size:40px;font-weight:550;letter-spacing:-.04em;margin:12px 0}h2{font-size:18px;font-weight:600;margin:0 0 16px}p{color:#666;line-height:1.6}.layout{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;margin:30px 0}aside{display:grid;align-content:start;gap:24px}.panel{padding:28px;background:white;border:1px solid #e3e3e8;border-radius:10px}label{display:block;font-size:13px;font-weight:600;margin:0 0 18px}input,select,textarea{display:block;width:100%;margin-top:8px;border:1px solid #cccdd4;border-radius:5px;background:white;color:#171719;font:inherit;font-weight:400;padding:12px;min-height:44px}textarea{resize:vertical;line-height:1.6}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid #4141ea;outline-offset:2px}.hint{font-size:12px;margin:-7px 0 20px}.terms{background:#f2f1ff;padding:16px;font-size:13px;line-height:1.6;margin-bottom:24px}button{min-height:42px;border:1px solid #cdced8;border-radius:5px;background:white;padding:10px 16px;font:inherit;font-size:13px;cursor:pointer}button.primary{background:#3434d9;border-color:#3434d9;color:white;width:100%;font-weight:600}button:disabled{opacity:.5;cursor:wait}.upload{color:#555}input[type=file]{padding:9px;font-size:12px}#login{max-width:460px;margin:40px auto}#login-form{margin-top:28px}#message{position:sticky;bottom:12px;background:#171719;color:white;padding:14px 18px;border-radius:6px;white-space:pre-line}#message:empty{display:none}.order{display:block;text-align:left;width:100%;margin:8px 0;overflow-wrap:anywhere}.facts{display:grid;grid-template-columns:100px 1fr;gap:10px;font-size:13px}.facts dt{color:#666}.facts dd{margin:0;overflow-wrap:anywhere}ul{padding-left:20px;font-size:13px;line-height:1.9;overflow-wrap:anywhere}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:14px 10px;border-bottom:1px solid #eee;vertical-align:top}td:last-child{min-width:170px}th{color:#666;font-weight:500}.good{color:#176447}.pending{color:#926016}[hidden]{display:none!important}@media(max-width:700px){main{padding:20px 16px 40px}header{padding-bottom:24px}header span{display:block;font-size:12px;margin-top:5px}h1{font-size:32px}.layout{grid-template-columns:1fr;gap:16px}.panel{padding:20px}.title{align-items:flex-start}.facts{grid-template-columns:80px 1fr}#login{margin:20px auto}button{min-height:44px}}

.check{display:flex;gap:10px;align-items:flex-start;line-height:1.6}.check input{width:18px;min-height:18px;height:18px;margin:2px 0 0;flex-shrink:0}

fieldset{border:0;padding:0;margin:0 0 24px;min-width:0}legend{font-size:13px;font-weight:600;margin-bottom:10px;padding:0}.access-buttons{display:flex;gap:8px}.access-buttons button{flex:1;padding:10px 6px}.access-buttons button[aria-pressed=true]{background:#3434d9;border-color:#3434d9;color:#fff}.email-row{display:flex;gap:10px;align-items:flex-end;margin-bottom:12px}.email-row label{flex:1;min-width:0;margin:0}.email-row button{flex-shrink:0}.access-review{border:1px solid #d8d7f8;background:#f6f5ff;border-radius:6px;padding:16px;margin-bottom:20px}.access-review h3{font-size:17px;margin:0 0 12px}.access-review p{font-size:13px;color:#333;margin:6px 0}.title{flex-wrap:wrap}

#catalogue{margin-top:24px}#catalogue th{min-width:170px}.permission-date{font-size:12px;color:#666;margin:6px 0 12px}details{font-size:12px;margin:10px 0;color:#666}.permission-warning{font-size:12px;color:#926016}dialog{border:1px solid #ddd;border-radius:12px;max-width:460px;width:calc(100% - 32px);padding:28px}dialog::backdrop{background:#0006}.dialog-actions{display:flex;gap:12px;margin-top:20px}#permission-review{padding:16px;background:#f2f1ff;line-height:1.6;border-radius:6px}#permission-error{color:#9c2a22;font-size:13px}

.layout{grid-template-columns:1fr}.dashboard-nav{display:flex;gap:8px;border-bottom:1px solid #dddde5;padding-bottom:16px;margin-bottom:28px}.dashboard-nav button[aria-pressed=true]{background:#3434d9;border-color:#3434d9;color:white}#catalogue{margin-top:0}

header{border-bottom:1px solid #dddde5;padding-bottom:0;margin-bottom:32px;min-height:68px;gap:28px}.dashboard-nav{align-self:stretch;align-items:stretch;margin:0 auto 0 12px;padding:0;border:0;gap:24px}.dashboard-nav button{border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:#666;padding:20px 0}.dashboard-nav button[aria-pressed=true]{background:transparent;color:#171719;border-color:#3434d9;font-weight:600}#logout{margin-left:auto}#catalogue th.member-actions-heading,.member-actions{min-width:48px;width:48px}.more-button{font-size:25px;line-height:1;border-color:transparent;padding:4px 10px}.more-button:hover{background:#f2f1ff}#member-menu{position:fixed;inset:auto;margin:0;width:240px;padding:8px;background:white;border:1px solid #dddde5;border-radius:8px;box-shadow:0 8px 28px #17171920}#member-menu p{font-size:12px;margin:4px 8px 8px;overflow-wrap:anywhere}#member-menu button{display:block;width:100%;border:0;text-align:left}#member-menu button:hover{background:#f6f6f8}.danger{color:#a32b2b}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(max-width:700px){header{flex-wrap:wrap;gap:12px}.dashboard-nav{order:3;flex-basis:100%;margin:0;gap:24px}.dashboard-nav button{padding:14px 0}#logout{align-self:center}.member-actions{position:sticky;right:0;background:white}}
#catalogue td.member-actions{min-width:48px;width:48px;text-align:right}
.member-actions-heading{position:relative}.sr-only{left:0;top:0}#catalogue>.title{margin-bottom:24px;align-items:center}#catalogue>.title h2{margin:0}@media(max-width:700px){#catalogue>.title h2{flex-basis:100%}}

#add-access .layout{width:50%}#enrol-form>fieldset,#enrol-form>#paid-fields,#enrol-form>#renewal-fields{margin:0 0 36px;padding:0 0 36px;border-bottom:1px solid #e3e3e8}#enrol-form legend{margin-bottom:18px}.email-row label{font-size:12px;font-weight:400;color:#666}.email-row input{font-size:13px;color:#171719}.csv-upload{margin:0 0 32px;padding-bottom:32px;border-bottom:1px solid #e3e3e8}.csv-upload summary{border:1px solid #cdced8;border-radius:5px;padding:14px 16px;cursor:pointer;font-size:13px;color:#333}.csv-upload[open] summary{margin-bottom:20px}.csv-upload .hint{margin-bottom:0}.csv-upload .upload{font-weight:400}@media(max-width:900px){#add-access .layout{width:100%}}

#add-access{text-align:center}#add-access .title{justify-content:center}#add-access .layout{margin:30px auto}#enrol-form legend{float:none;width:100%;text-align:center}#enrol-form input{text-align:center}.email-row input.email-confirmed{background:#187347;border-color:#187347;border-radius:30px;color:#fff;font-weight:500}.csv-upload{border:0;padding:0;margin:20px 0 0}.csv-upload summary{display:inline-block;border:0;border-radius:0;padding:0;min-height:32px;text-decoration:underline;text-underline-offset:4px;color:#666}.csv-upload .upload{margin-top:12px}#enrol-dialog{max-width:600px;max-height:90vh;overflow:auto;padding-top:64px}#enrol-close{position:absolute;top:12px;left:12px;border:0;font-size:24px}#enrol-back{width:100%;margin-top:12px}#enrol-error{color:#a32b2b}#enrol-error:empty{display:none}.member-progress{padding:20px 0;border-bottom:1px solid #e3e3e8}.member-progress h3{font-size:14px;overflow-wrap:anywhere}.member-progress ul{list-style:none;padding:0}.member-progress li{position:relative;margin:10px 0;line-height:1.5}.step-done{color:#176447}.step-waiting{color:#777}#enrol-return{margin-top:24px}#enrol-later{margin-top:12px}

#enrol-form .email-row label,#enrol-form .email-row input{text-align:left;direction:ltr}

#enrol-progress>#enrol-dialog-title,#enrol-progress>.hint{text-align:center}.step-icon{display:inline-block;width:14px;margin-right:4px;vertical-align:middle}.step-spinner{height:14px;border:2px solid #d5d5dc;border-top-color:#3434d9;border-radius:50%;animation:step-spin .8s linear infinite}@keyframes step-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.step-spinner{animation-duration:2s}}
