:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#173b3b;background:#f3f7f6;font-size:15px}*{box-sizing:border-box}body{margin:0}a{color:#087a71;text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit}button,.actions a{border:1px solid #b6cec7;border-radius:9px;padding:10px 15px;background:white;color:#12594f;cursor:pointer}button:hover,.actions a:hover{background:#e6f4ee}button:disabled{opacity:.5;cursor:wait}input,select{display:block;width:100%;padding:12px;border:1px solid #afc8c1;border-radius:8px;background:#fff;color:#203d38}input:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid #84cab3;outline-offset:3px}label{font-size:13px;font-weight:600;display:block}label input,label select{margin-top:8px}header{background:white;border-bottom:1px solid #d4e2dd;padding:22px max(24px,5vw);display:flex;justify-content:space-between;align-items:center;gap:20px}header>div{display:flex;align-items:center;gap:24px}.brand{font-size:18px;font-weight:700;color:#153b36}.brand span{display:block;font-size:12px;font-weight:400;color:#607b73;margin-top:5px}main{max-width:1280px;margin:0 auto;padding:46px 28px 80px}h1{font-size:clamp(36px,4vw,52px);letter-spacing:-.04em;margin:10px 0}h2{font-size:27px;letter-spacing:-.025em;margin:7px 0 12px}h3{margin-top:28px}p{line-height:1.6;color:#58746c}.eyebrow{color:#087b6d;font-size:11px;font-weight:700;letter-spacing:.13em}.panel,.section{padding:30px;background:#fff;border:1px solid #d8e5df;border-radius:18px}.login{max-width:540px;margin:30px 0}.login form{display:grid;gap:20px}.primary{background:#087d71;color:#fff;border-color:#087d71}.primary:hover{background:#08645b}.tabs{display:flex;gap:8px;border-bottom:1px solid #ccdcd5;margin:24px 0;overflow:auto;padding-bottom:12px}.tabs a{padding:12px 16px;border-radius:8px;white-space:nowrap;color:#41645a}.tabs a[aria-current=page]{background:#0c6f62;color:white;font-weight:600}.identity{display:flex;align-items:center;justify-content:space-between}.metrics{display:flex;gap:16px;flex-wrap:wrap;margin:24px 0}.metric{background:#eef6f2;border-radius:13px;padding:20px 24px;min-width:150px;flex:1}.metric strong{display:block;font-size:30px;font-weight:650;margin-top:8px;letter-spacing:-.03em}.metric span{color:#5a756b;font-size:13px}.filters{display:flex;gap:20px;align-items:end;margin:24px 0}.filters label:first-child{flex:1}.filters label:last-child{width:240px}.hint{font-size:13px;max-width:900px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;font-size:11px;letter-spacing:.05em;color:#627e72;background:#f2f7f4;text-transform:uppercase;padding:14px 12px;white-space:nowrap}td{padding:16px 12px;border-bottom:1px solid #e4ede7;vertical-align:top}td small{display:block;color:#6a7c75;margin-top:5px}td button{padding:7px 10px;font-size:12px;margin:2px}.badge{display:inline-block;background:#e7f5ed;border-radius:14px;padding:5px 10px;color:#216442;font-size:12px}.badge.pending{background:#fff3dd;color:#8a6118}.actions{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}.section-heading{display:flex;gap:20px;justify-content:space-between}#message:not(:empty){background:#e5f2ec;padding:15px 18px;border-radius:10px}footer{padding:26px max(24px,5vw);border-top:1px solid #d6e2dc;display:flex;justify-content:space-between;font-size:13px;color:#668075}[hidden]{display:none!important}@media(max-width:700px){header{align-items:flex-start;flex-direction:column}header>div{width:100%;justify-content:space-between}main{padding:30px 16px}.section,.panel{padding:22px 16px}.filters{flex-direction:column;align-items:stretch}.filters label:last-child{width:auto}.metric{min-width:115px;padding:16px}.tabs{margin:20px -4px}.section-heading{flex-direction:column}}
:root dialog{max-width:520px;width:calc(100% - 32px);border:1px solid #afc8c1;border-radius:16px;padding:28px;color:inherit}dialog::backdrop{background:#102f2b80}dialog form{display:grid;gap:12px}.confirm{display:flex;gap:10px;align-items:center}.confirm input{width:auto;margin:0}#pinMessage{color:#8a3f23;margin:0}
/* Keep the 2D reference workflow and educator grants visible without wide tables. */
.reference-intro{display:flex;align-items:center;gap:24px;background:#eef8f3;border:1px solid #badbca;border-radius:14px;padding:22px;margin:24px 0}.reference-intro>div{flex:1;min-width:0}.reference-intro h3{margin:7px 0 10px;font-size:22px}.reference-intro p{margin:0}.reference-editor-link{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:13px 18px;background:#087d71;color:#fff;border-radius:9px;font-weight:650;text-align:center;flex:none;min-height:44px}.reference-editor-link:hover{background:#08645b;text-decoration:none}.reference-authors{display:grid;gap:12px}.reference-author{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px;border:1px solid #d8e5df;border-radius:12px}.reference-author>div:first-child{min-width:0}.reference-author strong,.reference-author small{display:block;overflow-wrap:anywhere}.reference-author small{color:#607b73;margin:5px 0 9px}.reference-author p{font-size:13px;margin:9px 0 0}.reference-author-actions{flex:none}.reference-author-actions:empty{display:none}.reference-author-actions button{min-height:44px}.reference-author .badge{line-height:1.4}@media(max-width:700px){.reference-intro,.reference-author{flex-direction:column;align-items:stretch;gap:16px;padding:18px}.reference-editor-link,.reference-author-actions button{width:100%}.reference-author-actions{min-width:0}}
/* Account activation and module licences are intentionally separate controls. */
:root .access-dialog{max-width:820px;max-height:calc(100dvh - 32px);overflow:auto;padding:28px}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.dialog-heading h2{margin-top:4px}.dialog-heading .eyebrow{margin:0}.access-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.access-tile{border:1px solid #d8e5df;border-radius:10px;padding:14px;min-width:0}.access-tile strong,.access-tile small{display:block}.access-tile small{color:#5d756d;margin-top:7px;overflow-wrap:anywhere}.access-tile .badge{margin-top:8px}.badge.expired{background:#fcebe7;color:#963f2a}.badge.upcoming{background:#fff3dd;color:#8a6118}.badge.neutral{background:#edf1f0;color:#596f67}.account-type-form{grid-template-columns:1fr auto;align-items:end;margin-top:22px}.account-type-form button{min-height:44px}.grant-form{margin:24px 0;padding:20px;border:1px solid #d4e3dc;border-radius:12px;background:#f8fbf9}.grant-form h3{margin:0}.grant-form p{margin:0}.grant-form .actions{margin:5px 0 0}.date-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grant-form .confirm{line-height:1.5}.access-record{padding:16px 0;border-top:1px solid #d8e5df}.access-record p{margin:5px 0;font-size:13px;overflow-wrap:anywhere}.access-record strong{display:block}.access-record button{margin-top:8px}.access-record .badge{margin-left:8px}.module-list{display:grid;gap:4px;font-size:12px;min-width:160px}.module-list span{display:block}.module-list .ended{color:#963f2a}.module-list .due{color:#8a6118}.module-list .unavailable{color:#74827c}.access-category{font-weight:600;margin-bottom:6px}.module-action{margin-top:10px}#accessMessage:not(:empty){border-radius:8px;padding:12px 14px;background:#fff0d8;color:#755515}#accessName{font-weight:600;overflow-wrap:anywhere}#accessAccountHint{margin-top:-6px}#grantEndField[hidden]+*{margin:0}@media(max-width:550px){:root .access-dialog{padding:20px 16px}.access-summary,.date-fields,.account-type-form{grid-template-columns:1fr}.dialog-heading h2{font-size:24px}.grant-form{padding:16px}.access-record .badge{display:inline-block;margin:7px 0 0}.module-list{min-width:150px}}
/* Conference hosting stays usable on a phone without exposing account tools. */
.session-create,.session-manage{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid #b6cec7;border-radius:9px;padding:10px 15px;font-weight:600}.session-create{align-self:flex-start;white-space:nowrap}.session-filters{display:flex;gap:16px;margin:24px 0}.session-filters label{min-width:200px}.session-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.session-card{min-width:0;padding:22px;border:1px solid #d2e3da;border-radius:14px;background:#fbfdfc}.session-card-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.session-card h3{margin:0;font-size:20px;overflow-wrap:anywhere}.session-card-heading .badge{flex:none}.session-card p{margin:8px 0;overflow-wrap:anywhere}.session-module{font-weight:600;color:#08786b}.session-owner{font-size:13px}.session-stats{display:flex;flex-wrap:wrap;gap:14px 22px;margin:22px 0}.session-stats div{min-width:90px}.session-stats dt{font-size:12px;color:#627b71}.session-stats dd{margin:5px 0 0;font-size:15px;font-weight:600}.session-manage{background:#087d71;color:white;border-color:#087d71}.session-manage:hover{background:#08645b;text-decoration:none}.session-empty{grid-column:1/-1;padding:22px;background:#f1f7f3;border-radius:12px}#sessionsMessage:not(:empty){padding:12px 14px;background:#fff3dd;color:#785a20;border-radius:9px}#sessionsUpdated{font-size:12px}@media(max-width:700px){.session-cards{grid-template-columns:1fr}.session-filters{flex-direction:column}.session-filters label{min-width:0}.session-create{white-space:normal;width:100%}.session-card{padding:18px}.session-card-heading{gap:10px}.session-card h3{font-size:18px}.session-manage{width:100%}}
