/* OSC Document Access: all public visual styles are component-scoped. */
.osc-document {
  --osc-doc-accent: #4E2A84;
  --osc-doc-accent-hover: #432275;
  --osc-doc-button-text: #FFFFFF;
  --osc-doc-text: #1F2430;
  --osc-doc-muted: #525252;
  --osc-doc-surface: #F9F6F1;
  --osc-doc-input: #FFFFFF;
  --osc-doc-border: #D7CFC4;
  --osc-doc-status: #006D70;
  --osc-doc-gate-surface: var(--osc-doc-surface);
  --osc-doc-reader-surface: var(--osc-doc-surface);
  --osc-doc-radius: 16px;
  --osc-doc-font-size: 17px;
  --osc-doc-gap: 20px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  color: var(--osc-doc-text);
  background: var(--osc-doc-surface);
  border: 1px solid var(--osc-doc-border);
  border-radius: var(--osc-doc-radius);
  overflow: hidden;
  font-family: Inter, system-ui, sans-serif;
  font-size: var(--osc-doc-font-size);
  line-height: 1.55;
}
.osc-document *, .osc-document *::before, .osc-document *::after { box-sizing: border-box; }
.osc-document__header { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: var(--osc-doc-gap); border-bottom: 1px solid var(--osc-doc-border); }
.osc-document__eyebrow { margin: 0 0 6px; font-size: .72em; font-weight: 750; text-transform: uppercase; letter-spacing: .075em; color: var(--osc-doc-accent); }
.osc-document__title { margin: 0; font-size: clamp(1.22rem, 2.6vw, 1.8rem); line-height: 1.22; font-weight: 750; color: var(--osc-doc-text); }
.osc-document__status { display: inline-flex; align-items: center; min-height: 29px; padding: 5px 10px; border: 1px solid var(--osc-doc-status); border-radius: 999px; color: var(--osc-doc-status); font-size: .7em; font-weight: 750; white-space: nowrap; }
.osc-document__reader { position: relative; width: 100%; min-height: 480px; height: clamp(480px, 78vh, 940px); background: var(--osc-doc-reader-surface); }
.osc-document__frame { display: block; width: 100%; height: 100%; border: 0; background: var(--osc-doc-reader-surface); }
.osc-document__empty { margin: 0; padding: 42px var(--osc-doc-gap); color: var(--osc-doc-muted); text-align: center; }
.osc-document__gate { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: clamp(24px, 5vw, 48px) var(--osc-doc-gap); color: var(--osc-doc-text); background: var(--osc-doc-gate-surface); text-align: center; border-top: 1px solid var(--osc-doc-border); }
.osc-document__lock { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border: 1px solid var(--osc-doc-border); border-radius: 50%; font-size: 20px; }
.osc-document__gate-kicker { margin: 0; font-size: .75em; font-weight: 750; color: var(--osc-doc-accent); text-transform: uppercase; letter-spacing: .055em; }
.osc-document__gate h3 { margin: 0; color: var(--osc-doc-text); font-size: clamp(1.16rem, 2.25vw, 1.55rem); line-height: 1.3; font-weight: 750; }
.osc-document__gate > p:not(.osc-document__gate-kicker) { margin: 0; max-width: 610px; color: var(--osc-doc-muted); font-size: .92em; }
.osc-document__actions { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 6px; }
.osc-document__button, .osc-document a.osc-document__button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 11px 22px; border: 2px solid var(--osc-doc-accent); border-radius: 999px; font-family: inherit; font-weight: 750; font-size: .87em; line-height: 1.15; text-align: center; text-decoration: none; transition: color 220ms ease, background-color 220ms ease, border-color 220ms ease; }
.osc-document__button--primary, .osc-document a.osc-document__button--primary { background: var(--osc-doc-accent); color: var(--osc-doc-button-text); }
.osc-document__button--secondary, .osc-document a.osc-document__button--secondary { background: transparent; color: var(--osc-doc-accent); }
.osc-document__button--primary:hover, .osc-document a.osc-document__button--primary:hover { background: var(--osc-doc-accent-hover); border-color: var(--osc-doc-accent-hover); color: var(--osc-doc-button-text); }
.osc-document__button--secondary:hover, .osc-document a.osc-document__button--secondary:hover { background: var(--osc-doc-accent); color: var(--osc-doc-button-text); }
.osc-document a:focus-visible { outline: 3px solid var(--osc-doc-accent); outline-offset: 4px; }
.osc-document__footer { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; padding: 12px var(--osc-doc-gap); border-top: 1px solid var(--osc-doc-border); }
/* Keep essential layout and reader usability while handing most appearance to the theme. */
.osc-document[data-mode="minimal"] { background: transparent; border-color: transparent; }
.osc-document[data-mode="minimal"] .osc-document__gate { background: transparent; }
.osc-document[data-mode="minimal"] .osc-document__button { border-radius: inherit; }
.osc-document[data-mode="custom"] { background: transparent; border-color: transparent; border-radius: 0; }
.osc-document[data-mode="custom"] :is(.osc-document__header,.osc-document__gate,.osc-document__footer) { background: transparent; border-color: transparent; }
.osc-document[data-mode="custom"] .osc-document__button { border-radius: 0; background: transparent; color: inherit; border-color: currentColor; }
@media (max-width: 767.98px) { .osc-document__reader { height: clamp(420px, 72vh, 750px); } .osc-document__header { flex-direction: column; } .osc-document__actions { width: 100%; } .osc-document__actions .osc-document__button { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .osc-document__button { transition: none; } }

.osc-document__file { padding: var(--osc-doc-gap); margin: 0; color: var(--osc-doc-muted); font-size: .9em; }

.osc-document.osc-document--link { display: inline-block; width: auto; background: transparent; border: 0; overflow: visible; border-radius: 0; }
.osc-document__description { padding:var(--osc-doc-gap); }
.osc-document__description p { margin:0 0 10px; }
.osc-document__description p:last-child { margin-bottom:0; }
.osc-document__metadata { color:var(--osc-doc-muted); font-size:.8em; }
.osc-resource-library__filters { display:flex; align-items:flex-end; flex-wrap:wrap; gap:14px; padding:var(--osc-doc-gap); border-bottom:1px solid var(--osc-doc-border); }
.osc-resource-library__filters label { display:flex; flex-direction:column; gap:6px; flex:1 1 180px; font-size:.85em; font-weight:650; }
.osc-resource-library__filters input,.osc-resource-library__filters select { width:100%; min-height:48px; border:1px solid var(--osc-doc-border); border-radius:8px; padding:8px 12px; font:inherit; color:var(--osc-doc-text); background:var(--osc-doc-input); }
.osc-resource-library__filters a { color:var(--osc-doc-accent); padding:12px 0; }
.osc-resource-library__items { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--osc-doc-gap); padding:var(--osc-doc-gap); }
.osc-resource-library__card { display:flex; flex-direction:column; justify-content:space-between; gap:16px; border:1px solid var(--osc-doc-border); border-radius:var(--osc-doc-radius); padding:20px; background:var(--osc-doc-surface); min-width:0; }
.osc-resource-library__card h3 { font-size:1.15em; line-height:1.3; margin:0 0 12px; color:var(--osc-doc-text); overflow-wrap:anywhere; }
.osc-resource-library__card .osc-document__description { padding:0; font-size:.88em; }
.osc-resource-library__type { color:var(--osc-doc-accent); font-size:.75em; font-weight:750; margin:0 0 10px; }
.osc-resource-library__access { color:var(--osc-doc-muted); font-size:.8em; margin:14px 0 0; }
.osc-resource-library__card .osc-document__actions { justify-content:flex-start; margin:0; }
.osc-resource-library__items[data-layout="list"] { grid-template-columns:minmax(0,1fr); }
.osc-resource-library__items[data-layout="list"] .osc-resource-library__card { flex-direction:row; align-items:center; }
.osc-resource-library__items[data-layout="list"] .osc-resource-library__card > div:first-child { flex:1; }
.osc-resource-library__items[data-layout="list"] .osc-document__actions { max-width:45%; }
.osc-resource-library__pagination { display:flex; justify-content:center; flex-wrap:wrap; gap:20px; padding:20px; border-top:1px solid var(--osc-doc-border); font-size:.88em; }
.osc-resource-library__pagination a { color:var(--osc-doc-accent); }
.osc-resource-library__empty { grid-column:1/-1; padding:28px; text-align:center; color:var(--osc-doc-muted); }
.osc-document[data-mode="custom"] .osc-resource-library__card { background:transparent; border-radius:0; }
@media(max-width:1100px) { .osc-resource-library__items { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:767.98px) { .osc-resource-library__items { grid-template-columns:minmax(0,1fr); } .osc-resource-library__items[data-layout="list"] .osc-resource-library__card { flex-direction:column; align-items:stretch; } .osc-resource-library__items[data-layout="list"] .osc-document__actions { max-width:none; } }
