:root {
  --bsr-paper: #fff9f1;
  --bsr-surface: #ffffff;
  --bsr-surface-warm: #fff0dd;
  --bsr-orange: #f56a00;
  --bsr-orange-dark: #ca4f00;
  --bsr-orange-soft: #ffe3c1;
  --bsr-ink: #18202a;
  --bsr-muted: #6f665f;
  --bsr-line: #eadfd2;
  --bsr-shadow: 0 18px 45px rgba(97, 64, 32, .1);
}

html { scroll-behavior: smooth; }
body.bsriedsus-standalone { margin: 0; background: var(--bsr-paper); color: var(--bsr-ink); }
body.bsriedsus-standalone.admin-bar .bsr-site-header { top: 32px; }
.bsriedsus-app, .bsriedsus-app * { box-sizing: border-box; }
.bsriedsus-app { min-height: 100vh; background: radial-gradient(circle at 5% 17%, rgba(245,106,0,.08), transparent 24rem), var(--bsr-paper); color: var(--bsr-ink); font-family: Inter, Aptos, "Segoe UI", Arial, sans-serif; }
.bsriedsus-app a { color: inherit; text-decoration: none; }
.bsriedsus-app button, .bsriedsus-app input, .bsriedsus-app select { font: inherit; }
.bsr-icon { display: inline-block; height: 1.25rem; width: 1.25rem; vertical-align: middle; }
.bsriedsus-app .screen-reader-text { clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute !important; width: 1px; word-wrap: normal !important; }

.bsr-site-header, .bsr-account-header { align-items: center; background: rgba(255,255,255,.92); border-bottom: 1px solid rgba(234,223,210,.88); display: flex; justify-content: space-between; min-height: 82px; padding: 13px clamp(20px,5vw,76px); }
.bsr-site-header { backdrop-filter: blur(14px); position: sticky; top: 0; z-index: 20; }
.bsr-brand { align-items: baseline; display: flex; font-size: clamp(1.25rem,2vw,1.85rem); font-weight: 800; gap: .42rem; letter-spacing: -.04em; }
.bsr-brand span { color: var(--bsr-orange); }
.bsr-header-actions { align-items: center; display: flex; gap: 12px; }
.bsr-user-greeting { color: var(--bsr-muted); font-size: .88rem; font-weight: 650; margin-right: 6px; }

.bsr-button { align-items: center; border: 2px solid transparent; border-radius: 13px; cursor: pointer; display: inline-flex; font-weight: 750; gap: 9px; justify-content: center; min-height: 48px; padding: 0 20px; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.bsr-button:hover { transform: translateY(-2px); }
.bsr-button:focus-visible, .bsr-tile:focus-visible, .bsr-text-link:focus-visible, .bsr-text-button:focus-visible { outline: 3px solid rgba(245,106,0,.3); outline-offset: 3px; }
.bsr-button-solid { background: var(--bsr-orange); color: #fff !important; box-shadow: 0 9px 22px rgba(245,106,0,.2); }
.bsr-button-solid:hover { background: var(--bsr-orange-dark); }
.bsr-button-outline { background: transparent; border-color: var(--bsr-orange); color: var(--bsr-orange-dark) !important; }
.bsr-button-outline:hover { background: var(--bsr-surface-warm); }
.bsr-button-large { min-height: 56px; }

.bsr-notice { border-radius: 14px; font-size: .9rem; line-height: 1.55; margin: 22px auto; max-width: 1160px; padding: 14px 18px; }
.bsr-notice-error { background: #fff0ef; border: 1px solid #f2b9b4; color: #922b23; }
.bsr-notice-success { background: #eff9f0; border: 1px solid #b8dfbd; color: #226a2c; }
.bsr-notice-info { background: #edf6ff; border: 1px solid #bad7ef; color: #244d6d; }
.bsr-home > .bsr-notice { margin-bottom: 0; }

.bsr-hero { display: grid; gap: clamp(28px,5vw,80px); grid-template-columns: minmax(0,1.08fr) minmax(360px,.92fr); margin: 0 auto; max-width: 1440px; min-height: 560px; overflow: hidden; padding: clamp(66px,8vw,116px) clamp(22px,7vw,100px) 58px; }
.bsr-hero-copy { align-self: center; position: relative; z-index: 2; }
.bsr-kicker { align-items: center; color: var(--bsr-orange-dark); display: flex; font-size: .76rem; font-weight: 800; gap: 8px; letter-spacing: .12em; margin: 0 0 15px; text-transform: uppercase; }
.bsr-kicker .bsr-icon { height: 16px; width: 16px; }
.bsr-hero h1 { font-size: clamp(3.1rem,6vw,6rem); font-weight: 850; letter-spacing: -.065em; line-height: .98; margin: 0; max-width: 820px; }
.bsr-hero h1 span { color: var(--bsr-orange); display: block; }
.bsr-hero-lead { color: var(--bsr-muted); font-size: clamp(1.05rem,1.5vw,1.28rem); line-height: 1.65; margin: 28px 0 22px; max-width: 660px; }
.bsr-text-link { align-items: center; color: var(--bsr-orange-dark) !important; display: inline-flex; font-weight: 760; gap: 7px; }
.bsr-text-link .bsr-icon { transition: transform .2s; }
.bsr-text-link:hover .bsr-icon { transform: translateX(4px); }
.bsr-hero-art { min-height: 390px; position: relative; }
.bsr-hero-art::before { background-image: linear-gradient(rgba(245,106,0,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(245,106,0,.11) 1px,transparent 1px); background-size: 36px 36px; content: ""; height: 240px; position: absolute; right: -6%; top: 10%; width: 260px; }
.bsr-orbit { border: 2px solid rgba(245,106,0,.23); border-radius: 50%; position: absolute; }
.bsr-orbit-one { height: 320px; left: 13%; top: 12%; transform: rotate(22deg); width: 440px; }
.bsr-orbit-two { border-style: dashed; height: 230px; left: 2%; top: 4%; transform: rotate(-18deg); width: 380px; }
.bsr-disc { border-radius: 50%; position: absolute; }
.bsr-disc-one { background: rgba(245,106,0,.14); height: 170px; right: 7%; top: 16%; width: 170px; }
.bsr-disc-two { background: var(--bsr-orange); bottom: 11%; height: 94px; left: 42%; width: 94px; }
.bsr-art-icon { color: rgba(245,106,0,.55); position: absolute; }
.bsr-art-icon .bsr-icon { height: 100%; stroke-width: 1.25; width: 100%; }
.bsr-art-book { height: 135px; left: 12%; top: 21%; transform: rotate(4deg); width: 135px; }
.bsr-art-calendar { height: 105px; right: 10%; top: 30%; transform: rotate(5deg); width: 105px; }
.bsr-art-message { bottom: 16%; height: 76px; left: 9%; width: 76px; }

.bsr-portal-section { margin: 0 auto; max-width: 1360px; padding: 30px clamp(22px,5vw,64px) 96px; }
.bsr-section-heading { align-items: end; display: flex; justify-content: space-between; margin-bottom: 26px; }
.bsr-section-heading h2, .bsr-account-teaser h2, .bsr-area-panel h2 { font-size: clamp(2rem,3.2vw,3.4rem); letter-spacing: -.055em; line-height: 1.05; margin: 0; }
.bsr-test-badge { align-items: center; background: var(--bsr-orange-soft); border-radius: 999px; display: flex; font-size: .82rem; font-weight: 700; gap: 9px; padding: 9px 14px; }
.bsr-test-badge span { background: var(--bsr-orange); border-radius: 50%; height: 9px; width: 9px; }
.bsr-tile-grid { display: grid; gap: 18px; grid-auto-rows: minmax(170px,auto); grid-template-columns: repeat(12,1fr); }
.bsr-tile { background: var(--bsr-surface); border: 1px solid rgba(234,223,210,.9); border-radius: 28px; box-shadow: var(--bsr-shadow); display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; padding: clamp(22px,3vw,34px); position: relative; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.bsr-tile:hover { border-color: rgba(245,106,0,.4); box-shadow: 0 24px 58px rgba(97,64,32,.16); transform: translateY(-5px); }
.bsr-tile-learning { grid-column: span 7; grid-row: span 2; min-height: 410px; }
.bsr-tile-dates { background: linear-gradient(145deg,#ff7b15,#e95b00); border-color: transparent; color: #fff !important; grid-column: span 5; grid-row: span 2; }
.bsr-tile-news { grid-column: span 4; }
.bsr-tile-plan { grid-column: span 5; }
.bsr-tile-contact { grid-column: span 3; }
.bsr-tile-dates:hover { border-color: transparent; box-shadow: 0 24px 58px rgba(245,106,0,.26); }
.bsr-tile-top { align-items: flex-start; display: flex; justify-content: space-between; }
.bsr-tile-top > .bsr-icon { height: 22px; opacity: .56; transition: transform .2s; width: 22px; }
.bsr-tile:hover .bsr-tile-top > .bsr-icon { transform: translate(3px,-3px); }
.bsr-tile-icon { align-items: center; background: var(--bsr-surface-warm); border-radius: 22px; color: var(--bsr-orange); display: flex; height: 70px; justify-content: center; width: 70px; }
.bsr-tile-icon .bsr-icon { height: 34px; width: 34px; }
.bsr-tile-dates .bsr-tile-icon { background: rgba(255,255,255,.18); color: #fff; }
.bsr-tile-content p { color: var(--bsr-orange-dark); font-size: .74rem; font-weight: 780; letter-spacing: .1em; margin: 22px 0 7px; text-transform: uppercase; }
.bsr-tile-content h3 { font-size: clamp(1.35rem,2vw,2.05rem); letter-spacing: -.04em; line-height: 1.1; margin: 0 0 10px; }
.bsr-tile-content span { color: var(--bsr-muted); display: block; line-height: 1.55; max-width: 520px; }
.bsr-tile-learning .bsr-tile-content h3, .bsr-tile-dates .bsr-tile-content h3 { font-size: clamp(2rem,3.5vw,3.4rem); }
.bsr-tile-dates .bsr-tile-content p, .bsr-tile-dates .bsr-tile-content span { color: rgba(255,255,255,.82); }

.bsr-area-panel { align-items: center; background: #fff; border: 1px solid var(--bsr-line); border-radius: 30px; box-shadow: var(--bsr-shadow); display: grid; gap: 26px; grid-template-columns: auto 1fr auto; margin: -48px auto 76px; max-width: 1230px; padding: clamp(24px,4vw,42px); }
.bsr-area-panel p:last-child { color: var(--bsr-muted); line-height: 1.6; margin: 12px 0 0; }
.bsr-area-icon { align-items: center; background: var(--bsr-surface-warm); border-radius: 22px; color: var(--bsr-orange); display: flex; height: 76px; justify-content: center; width: 76px; }
.bsr-area-icon .bsr-icon { height: 38px; width: 38px; }

.bsr-account-teaser { align-items: center; background: var(--bsr-ink); border-radius: 38px; color: #fff; display: grid; gap: 42px; grid-template-columns: 1.1fr .9fr; margin: 0 auto 76px; max-width: 1230px; padding: clamp(34px,6vw,72px); }
.bsr-account-teaser > div:first-child p:last-child { color: #c9c5c0; line-height: 1.7; margin: 22px 0 0; max-width: 620px; }
.bsr-account-teaser ul { display: grid; gap: 15px; list-style: none; margin: 0; padding: 0; }
.bsr-account-teaser li { align-items: center; display: flex; gap: 13px; }
.bsr-account-teaser li .bsr-icon { color: #ff913b; height: 22px; width: 22px; }
.bsr-account-actions { align-items: center; display: flex; gap: 20px; grid-column: 1/-1; }
.bsr-admin-link { align-items: center; color: #d4cfca !important; display: inline-flex; font-size: .88rem; font-weight: 650; gap: 8px; }
.bsr-admin-link:hover { color: #fff !important; }
.bsr-footer { border-top: 1px solid var(--bsr-line); color: var(--bsr-muted); display: flex; font-size: .82rem; justify-content: space-between; margin: 0 auto; max-width: 1230px; padding: 26px 0 38px; }

.bsr-account-page { min-height: 100vh; }
.bsr-account-centered { display: flex; flex-direction: column; }
.bsr-account-centered .bsr-form-shell { margin-block: auto; }
.bsr-back-link { align-items: center; color: var(--bsr-orange-dark) !important; display: inline-flex; font-size: .9rem; font-weight: 720; gap: 7px; }
.bsr-form-shell, .bsr-admin-shell { margin: 0 auto; max-width: 980px; padding: clamp(46px,7vw,88px) 22px 90px; width: 100%; }
.bsr-form-shell-small { max-width: 600px; }
.bsr-admin-shell { max-width: 1180px; }
.bsr-form-intro { margin-bottom: 34px; }
.bsr-form-intro h1, .bsr-success-panel h1 { font-size: clamp(2.55rem,6vw,4.8rem); letter-spacing: -.065em; line-height: .98; margin: 0; }
.bsr-form-intro > p:last-child, .bsr-success-panel > p { color: var(--bsr-muted); line-height: 1.65; margin: 20px 0 0; max-width: 720px; }
.bsr-form-shell .bsr-notice, .bsr-admin-shell .bsr-notice { margin: 0 0 22px; max-width: none; }
.bsr-account-form { background: var(--bsr-surface); border: 1px solid var(--bsr-line); border-radius: 30px; box-shadow: var(--bsr-shadow); display: grid; gap: 24px; padding: clamp(24px,5vw,48px); }
.bsr-account-form label, .bsr-account-form fieldset { border: 0; display: grid; gap: 8px; margin: 0; min-width: 0; padding: 0; }
.bsr-account-form label > span:first-child, .bsr-account-form legend, .bsr-inline-form label { color: var(--bsr-ink); font-size: .87rem; font-weight: 730; }
.bsr-account-form small { color: var(--bsr-muted); font-size: .75rem; }
.bsr-account-form input:not([type="checkbox"]), .bsr-account-form select, .bsr-inline-form input, .bsr-add-subject input, .bsr-role-form select { background: #fffdf9; border: 1.5px solid #dcd1c5; border-radius: 13px; color: var(--bsr-ink); min-height: 50px; outline: none; padding: 0 15px; width: 100%; }
.bsr-account-form input:focus, .bsr-account-form select:focus, .bsr-inline-form input:focus, .bsr-add-subject input:focus, .bsr-role-form select:focus { border-color: var(--bsr-orange); box-shadow: 0 0 0 4px rgba(245,106,0,.1); }
.bsr-form-grid { display: grid; gap: 18px; }
.bsr-two-columns { grid-template-columns: repeat(2,minmax(0,1fr)); }
.bsr-subject-options { display: grid; gap: 10px; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 4px; }
.bsr-check-card { align-items: center !important; background: #fffaf3; border: 1px solid var(--bsr-line) !important; border-radius: 13px; cursor: pointer; display: flex !important; gap: 10px !important; min-height: 48px; padding: 10px 13px !important; }
.bsr-check-card:has(input:checked) { background: var(--bsr-surface-warm); border-color: var(--bsr-orange) !important; }
.bsr-check-card input, .bsr-consent-box input, .bsr-inline-check input { accent-color: var(--bsr-orange); height: 18px; width: 18px; }
.bsr-password-field { display: block; position: relative; }
.bsr-password-field input { padding-right: 84px !important; }
.bsr-password-field button { background: transparent; border: 0; color: var(--bsr-orange-dark); cursor: pointer; font-size: .72rem; font-weight: 700; height: 44px; position: absolute; right: 5px; top: 3px; }
.bsr-consent-box { align-items: flex-start !important; background: #fff2df; border: 1px solid #f1c999 !important; border-radius: 16px; display: flex !important; gap: 12px !important; line-height: 1.55; padding: 17px !important; }
.bsr-consent-box input { flex: 0 0 auto; margin-top: 3px; }
.bsr-consent-box span { font-size: .82rem !important; font-weight: 520 !important; }
.bsr-submit { border: 0; min-height: 54px; width: 100%; }
.bsr-form-footnote { align-items: center; color: var(--bsr-muted); display: flex; font-size: .75rem; gap: 8px; margin: -8px 0 0; }
.bsr-form-row { align-items: center; display: flex; font-size: .82rem; justify-content: space-between; }
.bsr-form-row a, .bsr-switch-account a { color: var(--bsr-orange-dark) !important; font-weight: 720; }
.bsr-inline-check { align-items: center !important; display: flex !important; gap: 7px !important; }
.bsr-switch-account { color: var(--bsr-muted); font-size: .88rem; margin: 22px 0 0; text-align: center; }
.bsr-honeypot { left: -10000px !important; position: absolute !important; }
.bsr-empty-note { color: var(--bsr-muted); font-size: .86rem; line-height: 1.5; margin: 0; }
.bsr-success-panel { background: var(--bsr-surface); border: 1px solid var(--bsr-line); border-radius: 30px; box-shadow: var(--bsr-shadow); padding: clamp(30px,6vw,64px); text-align: center; }
.bsr-success-panel > span { align-items: center; background: var(--bsr-surface-warm); border-radius: 50%; color: var(--bsr-orange); display: flex; height: 74px; justify-content: center; margin: 0 auto 24px; width: 74px; }
.bsr-success-panel > p { margin-inline: auto; }
.bsr-success-panel .bsr-button { margin-top: 26px; }

.bsr-admin-grid { display: grid; gap: 18px; grid-template-columns: .8fr 1.2fr; }
.bsr-admin-card { background: #fff; border: 1px solid var(--bsr-line); border-radius: 25px; box-shadow: var(--bsr-shadow); min-width: 0; padding: clamp(22px,3vw,34px); }
.bsr-admin-card h2 { font-size: clamp(1.45rem,2.5vw,2.1rem); letter-spacing: -.04em; margin: 0 0 18px; }
.bsr-admin-card-wide { grid-row: span 2; }
.bsr-inline-form { display: grid; gap: 10px; }
.bsr-inline-form > div, .bsr-add-subject, .bsr-role-form { align-items: center; display: flex; gap: 9px; }
.bsr-definition-list { display: grid; gap: 16px; }
.bsr-definition-item { background: #fffaf3; border: 1px solid var(--bsr-line); border-radius: 18px; padding: 18px; }
.bsr-definition-title { align-items: center; display: flex; justify-content: space-between; }
.bsr-definition-title h3 { font-size: 1.2rem; margin: 0; }
.bsr-text-button { background: transparent; border: 0; cursor: pointer; font-size: .72rem; font-weight: 700; }
.bsr-danger { color: #a3342c; }
.bsr-subject-tags { display: flex; flex-wrap: wrap; gap: 7px; margin: 14px 0; }
.bsr-tag-form button { background: var(--bsr-orange-soft); border: 0; border-radius: 999px; color: #8d3c00; cursor: pointer; font-size: .76rem; padding: 7px 10px; }
.bsr-tag-form button span { font-size: 1rem; margin-left: 4px; }
.bsr-add-subject input { min-height: 44px; }
.bsr-add-subject .bsr-button { min-height: 44px; padding-inline: 14px; }
.bsr-user-card { margin-top: 18px; }
.bsr-card-lead { color: var(--bsr-muted); line-height: 1.6; margin: -6px 0 22px; }
.bsr-user-table-wrap { overflow-x: auto; }
.bsr-user-table { border-collapse: collapse; min-width: 760px; width: 100%; }
.bsr-user-table th, .bsr-user-table td { border-bottom: 1px solid var(--bsr-line); padding: 13px 10px; text-align: left; vertical-align: middle; }
.bsr-user-table th { color: var(--bsr-muted); font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; }
.bsr-role-form select { min-height: 42px; min-width: 170px; }
.bsr-role-form .bsr-button { min-height: 42px; padding-inline: 13px; }

@media (max-width: 1000px) {
  .bsr-hero { grid-template-columns: 1fr; min-height: auto; padding-top: 64px; }
  .bsr-hero-art { display: none; }
  .bsr-tile-learning, .bsr-tile-dates { grid-column: span 6; }
  .bsr-tile-news { grid-column: span 5; }
  .bsr-tile-plan { grid-column: span 4; }
  .bsr-tile-contact { grid-column: span 3; }
  .bsr-account-teaser { border-radius: 0; margin-bottom: 0; max-width: none; }
  .bsr-footer { padding-inline: 24px; }
  .bsr-admin-grid { grid-template-columns: 1fr; }
  .bsr-admin-card-wide { grid-row: auto; }
}

@media (max-width: 720px) {
  body.bsriedsus-standalone.admin-bar .bsr-site-header { top: 46px; }
  .bsr-site-header, .bsr-account-header { align-items: flex-start; gap: 12px; min-height: 72px; padding: 13px 16px; }
  .bsr-site-header { position: relative; }
  .bsr-brand { font-size: 1.18rem; margin-top: 9px; }
  .bsr-header-actions { justify-content: flex-end; }
  .bsr-header-actions .bsr-button { min-height: 42px; padding: 0 12px; }
  .bsr-header-actions .bsr-button .bsr-icon, .bsr-user-greeting { display: none; }
  .bsr-hero { padding: 54px 20px 44px; }
  .bsr-hero h1 { font-size: clamp(2.75rem,14vw,4.4rem); }
  .bsr-portal-section { padding: 18px 16px 62px; }
  .bsr-section-heading { align-items: flex-start; gap: 18px; }
  .bsr-test-badge { flex: 0 0 auto; }
  .bsr-tile-grid { display: flex; flex-direction: column; }
  .bsr-tile { min-height: 210px; }
  .bsr-tile-learning, .bsr-tile-dates { min-height: 280px; }
  .bsr-area-panel { border-radius: 0; grid-template-columns: auto 1fr; margin: -30px 0 0; }
  .bsr-area-panel .bsr-button { grid-column: 1/-1; }
  .bsr-account-teaser { grid-template-columns: 1fr; padding: 48px 22px; }
  .bsr-account-actions { align-items: stretch; flex-direction: column; }
  .bsr-footer { align-items: center; flex-direction: column; gap: 7px; }
  .bsr-two-columns, .bsr-subject-options { grid-template-columns: 1fr; }
  .bsr-form-shell, .bsr-admin-shell { padding-inline: 16px; }
  .bsr-account-header .bsr-brand { margin-top: 0; }
  .bsr-inline-form > div, .bsr-add-subject, .bsr-role-form { align-items: stretch; flex-direction: column; }
  .bsr-inline-form .bsr-button, .bsr-add-subject .bsr-button, .bsr-role-form .bsr-button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .bsriedsus-app *, .bsriedsus-app *::before, .bsriedsus-app *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
