/* UI components adapted from staged cockpit privacy.css. Workshop owns only the namespace/tokens. */
.workshop-resources, .wr-dialog { --ui-ink-1:#172c48; --ui-ink-2:#34465e; --ui-ink-3:#687990; --ui-ink-4:#8a98ab; --ui-line:#e3e9f2; --ui-line-soft:#edf1f7; --ui-line-strong:#cdd8e8; --ui-surface:#fff; --ui-surface-2:#f6f8fc; --ui-surface-3:#eef2f8; --ui-accent:#2c60e9; --ui-accent-soft:#edf3ff; --ui-r-panel:12px; --ui-r-ctrl:7px; --ui-shadow-1:0 2px 8px #18375505; --ui-shadow-3:0 20px 70px #18375530; --sl-color-primary-700:#234fc5; --sl-focus-ring-color:#2c60e9; --red:#b42332; --green:#22805b; --amber:#976000; min-width:0; }
.workshop-resources *, .wr-dialog * { box-sizing:border-box; }
.workshop-resources [hidden], .wr-dialog[hidden] { display:none!important; }
.workshop-page .wr-heading { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:16px; margin-bottom:22px; }
.workshop-resources h1 { margin:0 0 6px; color:var(--ui-ink-1); font-size:25px; line-height:1.4; font-weight:800; letter-spacing:-.02em; }
.workshop-resources h2 { font-size:16px; color:var(--ui-ink-1); margin:0 0 5px; line-height:1.5; }
.workshop-resources h3 { font-size:15px; color:var(--ui-ink-1); margin:0; line-height:1.5; }
.workshop-resources p { margin:0; }
.workshop-page .wr-subtitle,.workshop-page .wr-help { color:var(--ui-ink-3); font-size:13px; line-height:1.7; }
.workshop-page .wr-eyebrow { font-size:11px; letter-spacing:.08em; font-weight:700; color:var(--ui-ink-3); }
.workshop-page .wr-panel { border:1px solid var(--ui-line); border-radius:var(--ui-r-panel); background:var(--ui-surface); box-shadow:var(--ui-shadow-1); padding:24px; min-width:0; }
.workshop-page .wr-profile-grid { display:grid; grid-template-columns:minmax(0,1fr) 270px; gap:20px; align-items:start; }
.workshop-page .wr-form { display:grid; gap:24px; min-width:0; }
.workshop-page .wr-form-section { min-width:0; }
.workshop-page .wr-form-section+.wr-form-section { border-top:1px solid var(--ui-line-soft); padding-top:22px; }
.workshop-page .wr-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:18px; }
.workshop-page .wr-field { display:flex; flex-direction:column; gap:7px; min-width:0; color:var(--ui-ink-2); font-size:13px; font-weight:600; }
.workshop-page .wr-field-wide { grid-column:1/-1; }
.workshop-page .wr-field input,.workshop-page .wr-field textarea,.workshop-page .wr-field select { width:100%; min-width:0; min-height:42px; border:1px solid var(--ui-line-strong); border-radius:var(--ui-r-ctrl); background:var(--ui-surface); color:var(--ui-ink-1); padding:10px 12px; font-size:14px; line-height:1.5; font-weight:400; transition:border-color .15s; }
.workshop-page .wr-field textarea { min-height:96px; resize:vertical; }
.workshop-page .wr-field input:read-only { background:var(--ui-surface-2); color:var(--ui-ink-3); }
.workshop-page .wr-field input::placeholder,.workshop-page .wr-field textarea::placeholder { color:var(--ui-ink-4); }
.workshop-page .wr-app :is(button,a,summary,input,textarea,select):focus-visible { outline:3px solid var(--sl-focus-ring-color); outline-offset:2px; border-color:var(--ui-accent); }
.workshop-page .wr-app input[type=checkbox] { appearance:auto; width:17px; height:17px; flex:0 0 17px; accent-color:var(--ui-accent); margin:0; }
.workshop-page .wr-checks { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.workshop-page .wr-checks label { display:flex; align-items:center; gap:9px; min-height:42px; padding:8px 11px; background:var(--ui-surface-2); border:1px solid var(--ui-line); border-radius:var(--ui-r-ctrl); font-size:13px; overflow-wrap:anywhere; }
.workshop-page .wr-checks label:has(input:checked) { border-color:color-mix(in srgb,var(--ui-accent) 40%,var(--ui-line)); background:var(--ui-accent-soft); }
.workshop-page .wr-public-fields { border:0; padding:0; margin:18px 0 0; min-width:0; }
.workshop-page .wr-public-fields legend { font-size:13px; font-weight:700; color:var(--ui-ink-2); padding:0 0 10px; }
.workshop-page .wr-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; min-width:0; }
.workshop-page .wr-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:40px; max-width:100%; padding:9px 15px; border:1px solid var(--ui-line-strong); border-radius:var(--ui-r-ctrl); color:var(--ui-ink-2); background:var(--ui-surface); box-shadow:var(--ui-shadow-1); font-size:13px; font-weight:600; line-height:1.4; text-align:center; cursor:pointer; overflow-wrap:anywhere; }
.workshop-page .wr-button:hover { color:var(--ui-accent); border-color:color-mix(in srgb,var(--ui-accent) 45%,var(--ui-line)); background:var(--ui-surface-2); }
.workshop-page .wr-button-primary { color:var(--ui-surface); background:var(--ui-accent); border-color:var(--ui-accent); }
.workshop-page .wr-button-primary:hover { background:var(--sl-color-primary-700); color:var(--ui-surface); }
.workshop-page .wr-button-danger { color:var(--red); }
.workshop-page .wr-button:disabled { opacity:.5; cursor:not-allowed; }
.workshop-page .wr-button[aria-busy=true]::before,.workshop-page .wr-spinner { content:''; display:inline-block; width:15px; height:15px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:wr-spin .7s linear infinite; flex-shrink:0; }
.workshop-page .wr-form-footer { border-top:1px solid var(--ui-line-soft); padding-top:20px; display:flex; flex-wrap:wrap; align-items:center; gap:14px; }
.workshop-page .wr-aside { display:grid; gap:16px; }
.workshop-page .wr-aside .wr-panel { padding:20px; }
.workshop-page .wr-aside p { color:var(--ui-ink-3); font-size:13px; margin-top:10px; }
.workshop-page .wr-badge { display:inline-flex; align-items:center; gap:6px; border-radius:999px; background:var(--ui-accent-soft); border:1px solid var(--ui-line); color:var(--ui-accent); padding:4px 10px; font-size:12px; font-weight:600; max-width:100%; }
.workshop-page .wr-badge[data-status=pending] { color:var(--amber); background:color-mix(in srgb,var(--amber) 9%,var(--ui-surface)); }
.workshop-page .wr-badge[data-status=approved] { color:var(--green); background:color-mix(in srgb,var(--green) 8%,var(--ui-surface)); }
.workshop-page .wr-badge[data-status=rejected],.workshop-page .wr-badge[data-status=revoked] { color:var(--red); background:color-mix(in srgb,var(--red) 6%,var(--ui-surface)); }
.workshop-page .wr-badge[data-status=expired] { color:var(--ui-ink-3); background:var(--ui-surface-3); }
.workshop-page .wr-notice { display:flex; align-items:center; gap:10px; border:1px solid color-mix(in srgb,var(--green) 30%,var(--ui-line)); border-radius:var(--ui-r-ctrl); padding:12px 15px; background:color-mix(in srgb,var(--green) 6%,var(--ui-surface)); color:var(--ui-ink-2); font-size:13px; margin-bottom:18px; white-space:pre-wrap; overflow-wrap:anywhere; }
.workshop-page .wr-notice.error { color:var(--red); border-color:color-mix(in srgb,var(--red) 30%,var(--ui-line)); background:color-mix(in srgb,var(--red) 5%,var(--ui-surface)); }
.workshop-page .wr-loading { display:flex; align-items:center; justify-content:center; gap:10px; min-height:220px; color:var(--ui-ink-3); }
.workshop-page .wr-empty { display:grid; justify-items:center; gap:10px; padding:52px 24px; text-align:center; }
.workshop-page .wr-empty-mark { display:grid; place-items:center; width:52px; height:52px; border-radius:16px; background:var(--ui-accent-soft); color:var(--ui-accent); font-size:23px; }
.workshop-page .wr-empty p { max-width:440px; color:var(--ui-ink-3); font-size:13px; }
.workshop-page .wr-list { display:grid; gap:14px; }
.workshop-page .wr-row { overflow-wrap:anywhere; }
.workshop-page .wr-row-head { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; margin-bottom:12px; }
.workshop-page .wr-resource-id { display:block; font-size:12px; color:var(--ui-ink-3); padding:9px 12px; border:1px solid var(--ui-line-soft); background:var(--ui-surface-2); border-radius:var(--ui-r-ctrl); overflow-wrap:anywhere; margin-bottom:14px; }
.workshop-page .wr-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 24px; margin:16px 0; min-width:0; }
.workshop-page .wr-meta div { min-width:0; }
.workshop-page .wr-meta dt { color:var(--ui-ink-3); font-size:12px; margin-bottom:4px; }
.workshop-page .wr-meta dd { margin:0; color:var(--ui-ink-2); font-size:13px; overflow-wrap:anywhere; white-space:pre-wrap; }
.workshop-page .wr-row .wr-actions { padding-top:16px; border-top:1px solid var(--ui-line-soft); margin-top:16px; }
.workshop-page .wr-scope { margin:18px 0; }
.workshop-page .wr-scope h3 { margin-bottom:10px; font-size:13px; }
.workshop-page .workshop-pager { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:20px 0 0; color:var(--ui-ink-3); font-size:12px; }
.workshop-page .wr-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-bottom:20px; }
.workshop-page .wr-upload { display:grid; grid-template-columns:minmax(0,1fr) minmax(190px,.8fr) auto; gap:14px; align-items:end; padding:20px; margin-bottom:20px; }
.workshop-page .wr-search { max-width:760px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:14px; margin-bottom:20px; }
.workshop-page .wr-request-form { max-width:820px; }
.workshop-page .wr-dialog { width:min(720px,calc(100vw - 32px)); max-width:calc(100vw - 32px); max-height:calc(100dvh - 40px); overflow:auto; padding:0; border:1px solid var(--ui-line); border-radius:var(--ui-r-panel); color:var(--ui-ink-2); background:var(--ui-surface); box-shadow:var(--ui-shadow-3); }
.workshop-page .wr-dialog::backdrop { background:rgba(16,31,56,.36); backdrop-filter:blur(3px); }
.workshop-page .wr-dialog-header { display:flex; justify-content:space-between; align-items:center; gap:16px; position:sticky; top:0; z-index:1; padding:20px 24px; border-bottom:1px solid var(--ui-line); background:var(--ui-surface); }
.workshop-page .wr-dialog-header h2 { margin:0; }
.workshop-page .wr-dialog-body { padding:22px 24px; overflow-wrap:anywhere; white-space:pre-wrap; }
.workshop-page .wr-dialog-body .wr-meta { margin:0; }
.workshop-page .wr-dialog-actions { padding:0 24px 24px; display:flex; justify-content:flex-end; flex-wrap:wrap; gap:10px; }
.workshop-page .wr-confirm { width:min(480px,calc(100vw - 32px)); }
.workshop-page .wr-raw { border-top:1px solid var(--ui-line); padding:16px 24px; font-size:12px; color:var(--ui-ink-3); }
.workshop-page .wr-raw summary { cursor:pointer; }
.workshop-page #detail-content { font:12px/1.65 ui-monospace,monospace; white-space:pre-wrap; overflow-wrap:anywhere; color:var(--ui-ink-2); }

.workshop-resources { padding-top:2px; }
.workshop-resources [data-resource-content] { display:grid; gap:18px; }
.workshop-resources .wr-heading { margin-bottom:0; }
.workshop-resources :is(a,button,input,textarea,select):focus-visible, .wr-dialog :is(a,button):focus-visible { outline:2px solid #2c60e9; outline-offset:2px; }
.workshop-resources .wr-search { grid-template-columns:minmax(120px,180px) minmax(0,1fr) auto; max-width:none; margin:0; }
.workshop-resources .wr-session { display:flex; align-items:center; flex-wrap:wrap; gap:12px; color:#687990; font-size:13px; }
.workshop-resources .wr-form { max-width:800px; }
.workshop-resources progress { width:100%; max-width:100%; height:14px; accent-color:#2c60e9; }
.workshop-resources .wr-panel p { overflow-wrap:anywhere; }
.workshop-resources .wr-course-links { display:flex; gap:12px; flex-wrap:wrap; }
.workshop-page .wr-dialog { margin:auto; }
.workshop-page .wr-dialog button { font:inherit; }
@keyframes wr-spin { to { transform:rotate(360deg); } }
@media(max-width:950px) { .workshop-resources .wr-search { grid-template-columns:minmax(0,1fr); } }
@media(max-width:540px) { .workshop-page .wr-panel { padding:18px; } .workshop-page .wr-meta, .workshop-page .wr-fields { grid-template-columns:minmax(0,1fr); } .workshop-page .wr-button { min-height:44px; } .workshop-page .wr-actions .wr-button { flex:1 1 auto; } .workshop-page .wr-dialog-header, .workshop-page .wr-dialog-body { padding:18px; } }
@media(prefers-reduced-motion:reduce) { .workshop-resources *, .wr-dialog * { animation:none!important; transition:none!important; } }
/* Access controls reuse the existing white/blue form and approval components. */
.workshop-resources .wr-toolbar select { min-height:42px; max-width:100%; padding:8px 12px; color:var(--ui-ink-2); border:1px solid var(--ui-line-strong); border-radius:var(--ui-r-ctrl); background:white; font:inherit; }
.workshop-resources .wr-pager { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; color:var(--ui-ink-3); font-size:13px; }
.workshop-resources .wr-targets { display:grid; gap:10px; min-width:0; }
.workshop-resources .wr-scope .wr-field { margin-top:14px; max-width:360px; }
@media(max-width:540px) { .workshop-resources .wr-checks { grid-template-columns:minmax(0,1fr); } .workshop-resources .wr-toolbar select { flex:1 1 100%; } }

/* Keep native select menus readable in both browser/OS color schemes. */
.workshop-resources select { color-scheme:light; color:#172c48; background-color:#fff; -webkit-text-fill-color:#172c48; }
.workshop-resources select option { color:#172c48; background-color:#fff; -webkit-text-fill-color:#172c48; }
.workshop-resources select option:checked { color:#153b8c; background-color:#e9f0ff; -webkit-text-fill-color:#153b8c; }
.workshop-resources select option:disabled { color:#687990; -webkit-text-fill-color:#687990; }

/* Course submission groups retain per-resource owner and permission controls. */
.workshop-resources .wr-course-group > summary {cursor:pointer;padding:12px 4px;list-style:disclosure-closed;}
.workshop-resources .wr-course-group[open] > summary {list-style:disclosure-open;}
.workshop-resources .wr-course-group > summary h3 {display:inline;font-size:1.1rem;}
.workshop-resources .wr-course-group > summary p {margin:10px 0 0;}
.workshop-resources .wr-course-group .wr-row {margin:12px 0;border:1px solid #dce5f5;border-radius:12px;padding:18px;background:#fff;}
.workshop-resources .wr-group-run {border-left:3px solid #92acf5;padding-left:16px;margin:20px 0;}
.workshop-resources .wr-course-group > h4 {margin-top:24px;}

.wr-public-option{display:inline-flex;align-items:center;gap:8px;min-height:40px;color:#34445a;font-size:14px;cursor:pointer}.wr-public-option input{width:17px;height:17px;min-height:0;margin:0;padding:0;accent-color:#285ec8}.market-public-control{margin:18px 0;padding-top:14px;border-top:1px solid #dfe6f0}
