:root {
  --op-green: #176b40;
  --op-green-dark: #10532f;
  --op-gold: #d2b637;
  --op-ink: #242b28;
  --op-muted: #626b66;
  --op-line: #dce2dd;
}
html { font-size: 16px; min-height: 100%; }
body { margin: 0; min-height: 100vh; display: flex; flex-direction: column; color: var(--op-ink); background: #fafbf9; font-family: "Segoe UI", Arial, sans-serif; line-height: 1.6; letter-spacing: 0; }
a { color: var(--op-green); text-underline-offset: 4px; }
a:hover { color: var(--op-green-dark); }
h1, h2, h3 { color: #202923; font-weight: 650; line-height: 1.25; overflow-wrap: anywhere; }
h1.h3 { font-size: 1.75rem; margin-bottom: 1.5rem; }
.container { max-width: 1200px; padding-left: 24px; padding-right: 24px; }
.institution-bar { background: #f0f2ed; border-top: 4px solid var(--op-green); color: #4c574f; font-size: .75rem; }
.institution-bar .container { display: flex; justify-content: space-between; gap: 16px; padding-top: 7px; padding-bottom: 7px; }
.site-header { background: #fff; border-bottom: 1px solid var(--op-line); }
.navbar { padding: 16px 0; }
.brand { display: flex; align-items: center; gap: 10px; margin-right: 36px; color: var(--op-ink); white-space: normal; }
.brand img { object-fit: contain; flex-shrink: 0; }
.brand strong { display: block; font-size: 1.3rem; line-height: 1.25; font-weight: 700; }
.brand small { display: block; font-size: .75rem; color: var(--op-muted); margin-top: 4px; }
.navbar .nav-link { font-size: .9rem; font-weight: 600; padding: 10px 12px !important; border-radius: 4px; }
.navbar .nav-link:hover, .navbar .nav-link[aria-current="page"] { background: #edf4ee; color: var(--op-green) !important; }
.account-nav { gap: 4px; }
.account-link { display: inline-flex; align-items: center; gap: 8px; }
.account-link img { flex-shrink: 0; }
.account-nav .nav-item:last-child .nav-link { border: 1px solid var(--op-line); }
.navbar-toggler { padding: 8px; border-color: var(--op-line); }
.site-content { flex: 1; padding-top: 40px; padding-bottom: 64px; }
main > form { max-width: 100%; }
main > form, main > .row { margin-top: 8px; }
.participation-intro { padding: 12px 0 40px; border-bottom: 1px solid var(--op-line); }
.eyebrow { color: var(--op-green); font-size: .85rem; font-weight: 700; margin-bottom: 16px; }
.participation-intro h1 { font-size: 2.75rem; max-width: 760px; margin-bottom: 20px; }
.participation-intro .lead { font-size: 1.1rem; max-width: 640px; color: var(--op-muted); margin-bottom: 28px; }
.participation-info { padding-top: 28px; }
.edition-overview { padding: 28px 0; border-bottom: 1px solid var(--op-line); }
.edition-indicators { display: grid; grid-template-columns: 2fr 1.3fr 1fr; gap: 28px; margin: 0; }
.edition-indicators > div { min-width: 0; }
.edition-indicators dt { color: var(--op-muted); font-size: .85rem; font-weight: 500; margin-bottom: 8px; }
.edition-indicators dd { margin: 0; color: var(--op-green-dark); font-size: 1.4rem; font-weight: 650; line-height: 1.4; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
@media (max-width: 767px) {
  .edition-indicators { grid-template-columns: 1fr; gap: 20px; }
  .edition-indicators dd { font-size: 1.2rem; }
}
.participation-item { padding: 12px 16px 12px 0; }
.section-number { display: block; color: #756321; font-size: .85rem; font-weight: 700; margin-bottom: 16px; }
.participation-item h2 { font-size: 1.1rem; margin-bottom: 12px; }
.participation-item p { color: var(--op-muted); font-size: .95rem; }
.btn { min-height: 44px; padding: 10px 20px; font-weight: 600; font-size: .9rem; border-radius: 5px; white-space: normal; }
.btn-primary { --bs-btn-bg: var(--op-green); --bs-btn-border-color: var(--op-green); --bs-btn-hover-bg: var(--op-green-dark); --bs-btn-hover-border-color: var(--op-green-dark); --bs-btn-active-bg: var(--op-green-dark); --bs-btn-active-border-color: var(--op-green-dark); --bs-btn-disabled-bg: #627d6a; --bs-btn-disabled-border-color: #627d6a; }
.btn-outline-primary { --bs-btn-color: var(--op-green); --bs-btn-border-color: var(--op-green); --bs-btn-hover-bg: var(--op-green); --bs-btn-hover-border-color: var(--op-green); --bs-btn-active-bg: var(--op-green-dark); --bs-btn-active-border-color: var(--op-green-dark); }
.btn-outline-secondary { color: #4d5751; border-color: #bac4bc; }
.btn-primary { background-color: var(--op-green); border-color: var(--op-green); color: #fff; }
.btn-primary:hover, .btn-primary:focus, .btn-primary:active { background-color: var(--op-green-dark); border-color: var(--op-green-dark); }
.btn-outline-primary { color: var(--op-green); border-color: var(--op-green); }
.btn-outline-primary:hover, .btn-outline-primary:focus, .btn-outline-primary:active { background-color: var(--op-green); border-color: var(--op-green); color: #fff; }
.form-label { font-size: .9rem; font-weight: 600; margin-bottom: 8px; }
.form-control, .form-select { min-height: 46px; border-color: #cbd4cd; border-radius: 5px; background-color: #fff; color: var(--op-ink); padding: 10px 12px; }
.form-select { padding-right: 36px; }
.form-control:focus, .form-select:focus { border-color: var(--op-green); box-shadow: 0 0 0 3px #176b401f; }
.form-check-input:checked { background-color: var(--op-green); border-color: var(--op-green); }
.form-check { padding-top: 4px; padding-bottom: 4px; }
.form-check-label { overflow-wrap: anywhere; }
input[type="file"] { font-size: .875rem; }
.alert { border-radius: 5px; padding: 16px 20px; font-size: .95rem; }
.alert-info { color: #244e67; background: #edf5fa; border-color: #d0e2ef; border-left: 3px solid #6b9fbd; }
.alert-success { color: #1c5837; background: #edf5ef; border-color: #d1e4d6; border-left: 3px solid var(--op-green); }
.alert-warning { color: #65551c; background: #fcf8e9; border-color: #eadeb2; border-left: 3px solid var(--op-gold); }
.table { font-size: .9rem; --bs-table-bg: transparent; --bs-table-striped-bg: #f0f3ef; border-color: var(--op-line); }
.table th { font-size: .8rem; color: var(--op-muted); font-weight: 650; padding: 14px 12px; }
.table td { padding: 16px 12px; overflow-wrap: anywhere; }
.card { border-radius: 6px; border-color: var(--op-line); box-shadow: 0 2px 8px #263c2b06; }
.card-body { padding: 24px; }
.list-group-item { padding: 20px; border-color: var(--op-line); }
label.list-group-item { cursor: pointer; }
label.list-group-item:has(input:checked) { background: #edf5ef; box-shadow: inset 3px 0 var(--op-green); }
.site-footer { border-top: 1px solid var(--op-line); background: #f0f2ed; }
.footer-content { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-top: 28px; padding-bottom: 28px; font-size: .8rem; }
.footer-content strong, .footer-content span { display: block; }
.footer-content span { color: var(--op-muted); margin-top: 4px; }
:focus-visible { outline: 3px solid #9c7e18; outline-offset: 3px; }
.skip-link { position: absolute; left: 16px; top: -100px; z-index: 1000; background: white; padding: 12px; }
.skip-link:focus { top: 8px; }
.edition-calendar { list-style: none; padding: 0; margin: 0; }
.calendar-phase { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; padding: 24px 20px; border-bottom: 1px solid var(--op-line); border-left: 3px solid transparent; }
.calendar-phase > div { min-width: 0; flex: 1 1 240px; }
.calendar-phase-current { background: #edf5ef; border-left-color: var(--op-green); }
.calendar-dates { color: var(--op-muted); font-variant-numeric: tabular-nums; }
.calendar-dates time { white-space: nowrap; }
.calendar-status { font-size: .85rem; color: var(--op-muted); font-weight: 600; }
.calendar-phase-current .calendar-status { color: var(--op-green-dark); }
.admin-shortcuts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 16px; padding: 0; margin: 0; list-style: none; }
.admin-shortcuts li { min-width: 0; }
.admin-shortcut { display: flex; align-items: center; justify-content: space-between; gap: 20px; height: 100%; min-height: 128px; padding: 22px; border: 1px solid #cbd4cd; border-radius: 7px; color: var(--op-ink); background: #fff; text-decoration: none; transition: background-color .15s, border-color .15s; }
.admin-shortcut > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.admin-shortcut strong { display: block; font-size: 1.1rem; font-weight: 600; margin-bottom: 4px; }
.admin-shortcut-description { display: block; font-size: .95rem; line-height: 1.5; color: var(--op-muted); }
.admin-shortcut-arrow { flex: 0 0 24px; font-size: 1.5rem; line-height: 1; text-align: center; color: var(--op-green); }
.admin-shortcut:hover, .admin-shortcut:focus-visible { background: #edf5ef; border-color: var(--op-green); color: var(--op-green-dark); }
@media (max-width: 1199px) {
  .navbar-collapse { padding-top: 16px; }
  .account-nav { border-top: 1px solid var(--op-line); margin-top: 10px; padding-top: 10px; }
}
@media (max-width: 575px) {
  .container { padding-left: 20px; padding-right: 20px; }
  .institution-bar span { display: none; }
  .brand { margin-right: 8px; gap: 6px; max-width: calc(100% - 60px); }
  .brand img { width: 52px; height: 52px; }
  .brand strong { font-size: 1.1rem; }
  .brand small { font-size: .7rem; }
  .site-content { padding-top: 28px; padding-bottom: 40px; }
  .participation-intro h1 { font-size: 2rem; }
  .participation-intro { padding-bottom: 28px; }
  .participation-item { border-bottom: 1px solid var(--op-line); padding-bottom: 24px; }
  .footer-content { flex-direction: column; align-items: flex-start; gap: 16px; }
  .table { display: block; overflow-x: auto; }
  main > .d-flex { flex-wrap: wrap; gap: 12px; }
}
