:root {
  --sed-font-body: 13px;
  --sed-font-help: 12px;
  --sed-font-label: 13px;
  --sed-font-table: 12px;
  --sed-font-action: 13px;
  --sed-font-section: 16px;
  --sed-font-subtitle: 18px;
  --sed-font-title: 27px;
  --sed-font-cycle-title: 29px;
  --sed-line-body: 1.3;
  --sed-line-help: 1.25;
  --sed-control-height: 32px;
  --sed-card-padding: 14px;
  --sed-gap-compact: 10px;
  --sed-data-width: 1200px;
  --sed-form-width: 1080px;
}

html { font-size: var(--sed-font-body); }
body { font-size: var(--sed-font-body); font-weight: 400; line-height: var(--sed-line-body); }
.sed-main.container { width: min(100% - 24px, var(--sed-data-width)); max-width: var(--sed-data-width); padding-inline: 0; }
.sed-header .container,.sed-footer .container { width: min(100% - 24px, var(--sed-data-width)); max-width: var(--sed-data-width); }
h1,.sed-page-heading h1,.goal-heading h1,.dashboard-heading h1,.audit-heading h1 { margin-bottom: 5px; font-size: clamp(25px, 1.7vw, var(--sed-font-title)); line-height: 1.15; font-weight: 700; }
.cycle-heading h1 { margin-bottom: 5px; font-size: clamp(27px, 1.9vw, var(--sed-font-cycle-title)); line-height: 1.15; font-weight: 700; }
h2 { margin-bottom: 4px; font-size: var(--sed-font-subtitle); line-height: 1.2; font-weight: 700; }
.sed-card-header h2,.sed-card h2,.cycle-card h2,.cycle-detail-grid section h2,.cycle-form-section h2,.participant-section h2,.goal-position-card h2,.goal-cycle-card h2,.goal-form-section h2,.indicator-card h2,.result-card h2,.result-highlight h2,.nine-box-section h2,.feedback-card h2,.feedback-reference h2,.feedback-readonly h2,.reassignment-card h2,.dashboard-panel h2,.audit-panel h2 { font-size: var(--sed-font-section); }
h3,.sed-mobile-catalog-card h3 { font-size: var(--sed-font-section); line-height: 1.2; font-weight: 700; }
p,dl,ol,ul { margin-bottom: 8px; }
small,.small,.form-text,.sed-muted,.form-help,.participant-reason,.audit-trail-muted,.audit-trail-secondary { font-size: var(--sed-font-help); line-height: var(--sed-line-help); }
.form-label,label,legend { font-size: var(--sed-font-label); }
.form-label,label,legend { font-weight: 500; }
th,td { font-size: var(--sed-font-table); }
.btn { display: inline-flex; align-items: center; justify-content: center; height: var(--sed-control-height); min-height: var(--sed-control-height); padding-inline: 10px; font-size: var(--sed-font-action); line-height: 1; font-weight: 600; }
.btn-primary { --bs-btn-color: var(--sed-color-primary-contrast); --bs-btn-bg: var(--sed-color-primary); --bs-btn-border-color: var(--sed-color-primary); --bs-btn-hover-color: var(--sed-color-primary-contrast); --bs-btn-hover-bg: var(--sed-color-brand-navy); --bs-btn-hover-border-color: var(--sed-color-brand-navy); --bs-btn-focus-shadow-rgb: 43,120,160; --bs-btn-active-color: var(--sed-color-primary-contrast); --bs-btn-active-bg: var(--sed-color-brand-navy); --bs-btn-active-border-color: var(--sed-color-brand-navy); --bs-btn-disabled-color: var(--sed-color-primary-contrast); --bs-btn-disabled-bg: var(--sed-color-primary); --bs-btn-disabled-border-color: var(--sed-color-primary); }
.nav-link,.dropdown-item,.sed-admin-link { display: inline-flex; align-items: center; min-height: var(--sed-control-height); font-size: var(--sed-font-action); line-height: 1; font-weight: 600; }
.nav-link,.sed-admin-link { justify-content: center; }
.dropdown-item { justify-content: flex-start; }
.form-control:not(.form-check-input),.form-select,textarea,select,input:not([type="checkbox"]):not([type="radio"]) { font-size: var(--sed-font-label); }
.form-control::placeholder,textarea::placeholder,input:not([type="checkbox"]):not([type="radio"])::placeholder { font-size: inherit; }
.form-control:not(textarea):not(.form-check-input),.form-select { height: var(--sed-control-height); min-height: var(--sed-control-height); padding: 4px 8px; line-height: 1.2; }
.form-check-input { font-size: 16px; flex-shrink: 0; }
textarea.form-control,textarea { height: auto; min-height: 64px; }
.form-label { margin-bottom: 4px; }
.sed-card,.cycle-card,.cycle-detail-grid section,.cycle-form-section,.cycle-confirm,.cycle-empty,.participant-section,.participant-summary,.participant-empty,.participant-confirm,.goal-empty,.goal-summary,.goal-position-card,.goal-cycle-card,.goal-form-section,.indicator-card,.result-card,.result-highlight,.nine-box-section,.feedback-card,.feedback-reference,.feedback-readonly,.reassignment-card,.reassignment-filters,.dashboard-filter-card,.dashboard-panel,.audit-filter-card,.audit-panel { padding: var(--sed-card-padding); }
.sed-page-heading,.cycle-heading,.participant-heading,.participant-summary,.goal-heading,.dashboard-heading,.audit-heading { gap: var(--sed-gap-compact); margin-bottom: 10px; }
.cycle-grid,.cycle-detail-grid,.participant-candidate-grid,.goal-cycle-grid,.goal-position-grid,.goal-workflow-grid,.goal-review-list,.results-list,.dashboard-summary-grid,.dashboard-components-grid { gap: var(--sed-gap-compact); }
.cycle-form,.cycle-confirm,.sed-user-form,.sed-assignment-form,.goal-editor-page,.reassignment-card { width: 100%; max-width: var(--sed-form-width); margin-inline: auto; }
.table { margin-bottom: 0; font-size: var(--sed-font-table); line-height: 1.2; }
.table .form-label,.table label,.table .form-control,.table .form-select,.table input:not([type="checkbox"]):not([type="radio"]),.table select,.table textarea { font-size: var(--sed-font-table); }
.table > :not(caption) > * > * { padding: 5px 7px; vertical-align: middle; }
.table th { white-space: nowrap; font-weight: 600; }
.table td strong { font-weight: 600; }
.table td:last-child { white-space: nowrap; }
.table .badge,.table .cycle-status,.table .cycle-lock,.table .assessment-status { display: inline-flex; align-items: center; vertical-align: middle; }
.badge,.cycle-status,.cycle-lock,.assessment-status { font-size: var(--sed-font-help); line-height: 1.15; }
.sed-eyebrow,.section-kicker { margin-bottom: 4px; font-size: var(--sed-font-help); line-height: 1.2; }
.sed-lead { font-size: var(--sed-font-body); line-height: var(--sed-line-body); }
.sed-footer { font-size: var(--sed-font-help); }
.dropdown-menu .dropdown-item { color: var(--sed-color-text); background: transparent; border-radius: .4rem; padding-inline: 10px; font-size: var(--sed-font-action); font-weight: 600; white-space: normal; overflow-wrap: anywhere; }
.dropdown-menu .dropdown-item:hover,.dropdown-menu .dropdown-item:focus { color: var(--sed-color-text); background: rgba(18,50,74,.08); }
.dropdown-menu .dropdown-item.active,.dropdown-menu .dropdown-item.active:hover,.dropdown-menu .dropdown-item.active:focus { color: var(--sed-color-primary-contrast); background: var(--sed-color-primary); }
.dropdown-menu .dropdown-item:focus-visible { box-shadow: inset 0 0 0 2px var(--sed-color-focus); }
.dropdown-menu .dropdown-item.active:focus-visible { box-shadow: inset 0 0 0 2px var(--sed-color-primary-contrast); }
.dropdown-menu .dropdown-header { margin: 8px 0 2px; padding-inline: 10px; color: var(--sed-color-text-secondary); font-size: 11px; font-weight: 600; text-transform: uppercase; }
.sed-admin-menu .sed-menu-group-action { padding-inline-start: 22px; }
.sed-login-shell { max-width: 420px; }
.sed-login-card h1 { font-size: 26px; }
.sed-submit-spinner { width: 12px; height: 12px; margin-left: 6px; vertical-align: -2px; }
.modal-title { font-size: var(--sed-font-subtitle); font-weight: 700; }
.modal-header,.modal-body,.modal-footer { padding: 12px 14px; }
.modal-footer { gap: 8px; }

@media (max-width: 767.98px) {
  .sed-main.container,.sed-header .container,.sed-footer .container { width: min(100% - 20px, var(--sed-data-width)); }
  .sed-page-heading,.cycle-heading,.participant-heading,.participant-summary,.goal-heading,.dashboard-heading,.audit-heading { margin-bottom: 8px; }
  .table-responsive { max-width: 100%; }
}

@media (max-width: 390px) {
  :root { --sed-card-padding: 12px; --sed-gap-compact: 8px; }
  .sed-main.container,.sed-header .container,.sed-footer .container { width: min(100% - 16px, var(--sed-data-width)); }
}
