:root{color-scheme:light;--ink:#19273b;--muted:#5d6b7d;--accent:#235de1;--page:#f5f7fb;--surface:#fff;--border:#dfe5ef;--input-border:#b7c3d3;--secondary:#e8edf7;--notice:#e9f2ff;--notice-border:#cbdcf8;--error:#a31e37;--button-ink:#fff}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--ink:#e7edf7;--muted:#a8b5c8;--accent:#91b7ff;--page:#101722;--surface:#192333;--border:#344359;--input-border:#52647e;--secondary:#29384e;--notice:#1b304e;--notice-border:#3d5d88;--error:#ff9eae;--button-ink:#102345}}
:root[data-theme=dark]{color-scheme:dark;--ink:#e7edf7;--muted:#a8b5c8;--accent:#91b7ff;--page:#101722;--surface:#192333;--border:#344359;--input-border:#52647e;--secondary:#29384e;--notice:#1b304e;--notice-border:#3d5d88;--error:#ff9eae;--button-ink:#102345}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--page);color:var(--ink);font:16px/1.6 system-ui,sans-serif}
header{background:var(--surface);border-bottom:1px solid var(--border);padding:20px max(24px,calc((100% - 1000px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px}
a{color:var(--accent)}.brand{font-weight:750;font-size:21px;color:var(--ink);text-decoration:none}
nav{display:flex;align-items:center;gap:20px;flex-wrap:wrap}nav form{margin:0}main{max-width:1000px;margin:48px auto;padding:0 24px;min-height:65vh}
h1{font-size:clamp(26px,4vw,36px);line-height:1.2;letter-spacing:-.025em}h2{font-size:20px}
.card{padding:32px;background:var(--surface);border:1px solid var(--border);border-radius:16px}.narrow{max-width:520px;margin:auto}
label{display:block;font-weight:600;margin:18px 0 5px}input:not([type=checkbox]),select{width:100%;border:1px solid var(--input-border);border-radius:8px;padding:12px;font:inherit;background:var(--surface);color:var(--ink)}
button,.button{display:inline-block;background:var(--accent);color:var(--button-ink);border:0;border-radius:8px;padding:11px 18px;font:inherit;cursor:pointer;text-decoration:none}
button.link{padding:0;background:none;color:var(--accent);border-radius:0}.secondary{background:var(--secondary);color:var(--ink)}
.theme-toggle{padding:7px 12px;font-size:14px;border:1px solid var(--border)}.theme-toggle[aria-pressed=true]{border-color:var(--accent)}
.helptext,.muted,footer{color:var(--muted)}.helptext{font-size:14px;display:block}.errorlist{color:var(--error);padding-left:20px}
.notice{background:var(--notice);border:1px solid var(--notice-border);border-radius:10px;padding:14px;margin-bottom:20px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}.resource{display:flex;flex-direction:row;align-items:center;gap:16px;text-decoration:none;color:var(--ink)}.resource strong{min-width:0;overflow-wrap:anywhere}
.resource:hover{border-color:var(--accent)}.resource span{color:var(--accent)}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:24px}
.resource-icon{display:block;flex-shrink:0}.twitch-icon{color:#9146ff}:root[data-theme=dark] .twitch-icon{color:#b591ff}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .twitch-icon{color:#b591ff}}
.resource-caption{min-width:0}.resource-caption p{margin:6px 0 0;font-size:14px;white-space:pre-wrap}.upload-card{max-width:800px}.upload-card fieldset{border:0;min-width:0;padding:0;margin:0}.upload-card textarea{box-sizing:border-box;width:100%;resize:vertical;border:1px solid var(--input-border);border-radius:8px;padding:12px;background:var(--surface);color:var(--ink);font:inherit}.upload-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:150px;border:2px dashed var(--input-border);border-radius:12px;padding:24px;text-align:center;cursor:pointer}.upload-drop span{font-weight:400;color:var(--muted)}.upload-drop.dragging{border-color:var(--accent);background:var(--notice)}.upload-file-list{padding:0;list-style:none}.upload-file-list li,.download-list li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--border)}.upload-file-list span,.download-list a{min-width:0;overflow-wrap:anywhere}.upload-file-list button{font-size:13px;padding:6px 10px;flex-shrink:0}.upload-roles{margin-top:24px!important}.upload-roles legend{font-weight:600}.upload-roles label,.check-label{display:flex;align-items:center;gap:8px;font-weight:400}.upload-roles label{margin:8px 0}.upload-roles .helptext{margin-bottom:16px}#upload-errors{color:var(--error)}#upload-progress{margin-top:24px}#upload-progress progress{width:100%;accent-color:var(--accent)}.download-list{list-style:none;padding:0}.download-list span{white-space:nowrap;font-size:14px}.publication-description{white-space:normal;overflow-wrap:anywhere;margin-bottom:24px}
.role-indicators{position:absolute;top:14px;right:14px;left:14px;display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap;z-index:2;pointer-events:none}.role-dot{display:block;width:11px;height:11px;flex-shrink:0;border-radius:50%;background:var(--role-color);border:1px solid #8290a388;box-shadow:0 0 0 2px var(--surface);pointer-events:auto}.has-role-indicators{padding-top:42px}
.resource-tile{position:relative}.resource-main::after{content:"";position:absolute;inset:0;border-radius:16px}.resource-access{position:relative;z-index:1;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.resource-access p{margin:0 0 12px;font-size:14px}.role-badge{display:inline-block;padding:2px 8px;margin:2px;background:var(--secondary);color:var(--ink);border-radius:6px}.resource-access summary{cursor:pointer;color:var(--accent)}.resource-access form{margin-top:16px}.resource-access fieldset{border:0;padding:0;margin:0 0 16px;min-width:0}.resource-access legend{font-weight:600;margin-bottom:8px}.resource-access label{font-weight:400;display:flex;gap:8px;align-items:center;margin:8px 0}.resource-access input[type=checkbox]{flex-shrink:0}.resource-tile:focus-within{border-color:var(--accent)}
.resource-details-panel{box-sizing:border-box;position:fixed;inset:0 0 0 auto;margin:0;width:min(520px,100vw);max-width:100vw;height:100dvh;max-height:100dvh;padding:24px;border:0;border-left:1px solid var(--border);background:var(--surface);color:var(--ink);box-shadow:-12px 0 48px #0004;overflow:auto}.resource-details-panel::backdrop{background:#0006}.details-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;position:sticky;top:-24px;margin:-24px -24px 24px;padding:18px 24px;background:var(--surface);border-bottom:1px solid var(--border);z-index:1}.details-heading h2{margin:0}.details-heading button{padding:6px 12px}.resource-details-form fieldset{min-width:0;border:0;border-bottom:1px solid var(--border);padding:0 0 20px;margin:0 0 24px}.resource-details-form legend{font-weight:700;margin-bottom:12px}.resource-details-form input,.resource-details-form select{box-sizing:border-box}.resource-details-form textarea{box-sizing:border-box;display:block;width:100%;min-height:120px;resize:vertical;padding:12px;border:1px solid var(--input-border);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit}.details-choices label{display:flex;align-items:center;gap:8px;font-weight:400;margin:8px 0}.details-save{display:flex;align-items:center;gap:12px;padding-bottom:16px}.resource-details-trigger{font-size:14px}
footer{text-align:center;padding:28px}form p{margin:0 0 16px}form ul{font-size:14px;padding-left:20px}
:focus-visible{outline:3px solid #91b3ff;outline-offset:3px}@media(max-width:600px){header{align-items:flex-start;flex-direction:column}.card{padding:24px}main{margin-top:28px}}
