.institutionMemoPage .memoGuideShell {
    display: flex;
    flex-direction: column;
    padding-top: 24px;
}

.institutionMemoPage .memoCover {
    order: 1;
    padding-bottom: 38px;
}

.institutionMemoPage #memo-institution-overview {
    order: 2;
}

.institutionMemoPage #memo-contents {
    order: 3;
}

.institutionMemoPage #memo-summary {
    order: 6;
}

.institutionMemoPage #memo-fit-filter {
    order: 5;
}

.institutionMemoPage #memo-programs {
    order: 7;
}

.institutionMemoPage #memo-quotas {
    order: 8;
}

.institutionMemoPage #memo-plan {
    order: 4;
}

.institutionMemoPage #memo-deadlines {
    order: 9;
}

.institutionMemoPage [hidden] {
    display: none !important;
}

.institutionMemoPage--example .memoGuideShell button,
.institutionMemoPage--example .memoGuideShell a,
.institutionMemoPage--example .memoGuideShell input,
.institutionMemoPage--example .memoGuideShell select,
.institutionMemoPage--example .memoGuideShell textarea {
    pointer-events: none;
}

.institutionMemoPage--example {
    padding-top: 0;
}

.institutionMemoPage--example .memoGuideShell {
    padding-top: 84px;
}

.institutionMemoPage--example .memoGuideShell button,
.institutionMemoPage--example .memoGuideShell a,
.institutionMemoPage--example .memoGuideShell input,
.institutionMemoPage--example .memoGuideShell select,
.institutionMemoPage--example .memoGuideShell textarea,
.institutionMemoPage--example .memoGuideShell .memoTinyButton,
.institutionMemoPage--example .memoGuideShell .memoRecalculateButton,
.institutionMemoPage--example .memoGuideShell .memoResetButton {
    cursor: default;
}

.memoDemoNotice {
    position: fixed;
    inset: 0 0 auto 0;
    z-index: 10000;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 12px;
    align-items: center;
    min-height: 64px;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: #b91c1c;
    padding: 10px 18px;
    color: #fff;
    box-shadow: 0 14px 30px rgba(127, 29, 29, .24);
}

.memoDemoNotice strong {
    color: #fff;
    font-size: 17px;
    line-height: 1.25;
    white-space: nowrap;
}

.memoDemoNotice span {
    color: #fff;
    font-size: 15px;
    line-height: 1.35;
}

.memoExampleLocked {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    max-width: 100%;
    margin-top: 12px;
    border: 1px dashed rgba(37, 99, 235, .42);
    border-radius: 12px;
    background: #eff6ff;
    padding: 10px 12px;
    color: #1d4ed8;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.25;
}

.memoExampleLocked--inline {
    flex: 0 0 auto;
    margin-top: 0;
}

.memoExampleLocked--wide {
    display: flex;
    width: 100%;
    justify-content: center;
    margin-top: 18px;
    text-align: center;
}

.memoExamplePreviewGrid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 18px;
}

.memoExamplePreviewGrid--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.memoExamplePreviewCard {
    display: grid;
    gap: 9px;
    min-height: 150px;
    align-content: start;
    border: 1px solid #d8e4f5;
    border-radius: 8px;
    background: linear-gradient(135deg, #f8fbff 0%, #fff 100%);
    padding: 16px;
}

.memoExamplePreviewCard span {
    display: inline-flex;
    width: fit-content;
    min-height: 28px;
    align-items: center;
    border-radius: 999px;
    background: #eef1ff;
    color: var(--blue-dark);
    padding: 0 10px;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.memoExamplePreviewCard strong {
    color: var(--navy);
    font-size: 18px;
    line-height: 1.2;
}

.memoExamplePreviewCard p {
    margin: 0;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.45;
}

.memoExampleLockedSpecialties {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 16px;
}

.memoExampleLockedSpecialties article {
    display: grid;
    gap: 6px;
    border: 1px dashed #c8d9f5;
    border-radius: 8px;
    background: #f8fbff;
    padding: 14px;
}

.memoExampleLockedSpecialties span {
    color: var(--blue-dark);
    font-size: 12px;
    font-weight: 900;
}

.memoExampleLockedSpecialties strong {
    color: var(--navy);
    font-size: 15px;
    line-height: 1.25;
}

.memoExampleLockedSpecialties p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.4;
}

.memoCoverGrid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 270px;
    gap: 28px;
    align-items: end;
}

.memoCoverLead {
    max-width: 860px;
    margin: 18px 0 0;
    color: #d9e3f5;
    font-size: 18px;
    line-height: 1.55;
}

.memoCoverActions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 22px;
}

.memoCoverAction {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, .3);
    border-radius: 8px;
    background: rgba(255, 255, 255, .1);
    color: #fff;
    padding: 0 16px;
    font-size: 14px;
    font-weight: 900;
    line-height: 1.2;
    text-decoration: none;
}

.memoCoverAction:hover {
    border-color: rgba(255, 255, 255, .55);
    background: rgba(255, 255, 255, .16);
}

.memoCoverAction--primary {
    border-color: #f2d58a;
    background: #f2d58a;
    color: #17213a;
}

.memoCoverAction--primary:hover {
    border-color: #fff0bd;
    background: #fff0bd;
}

.memoGuideLabel {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    margin-top: 14px;
    border: 1px solid rgba(242, 213, 138, .55);
    border-radius: 999px;
    background: rgba(242, 213, 138, .16);
    color: #f2d58a;
    padding: 0 14px;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.memoIdentity {
    display: grid;
    gap: 10px;
    justify-items: start;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, .22);
    background: rgba(255, 255, 255, .08);
    padding: 18px;
}

.memoIdentity.is-logo-missing::before {
    content: "ВП";
    display: grid;
    width: 74px;
    height: 74px;
    place-items: center;
    border-radius: 8px;
    background: #fff;
    color: #13213a;
    font-size: 24px;
    font-weight: 900;
}

.memoIdentity img {
    width: 74px;
    height: 74px;
    object-fit: contain;
    border-radius: 8px;
    background: #fff;
    padding: 8px;
}

.memoIdentity strong {
    color: #fff;
    font-size: 20px;
    line-height: 1.2;
}

.memoIdentity span {
    color: #d9e3f5;
}

.memoPaidBadge {
    display: inline-flex;
    min-height: 30px;
    align-items: center;
    border-radius: 999px;
    background: rgba(242, 213, 138, .18);
    border: 1px solid rgba(242, 213, 138, .55);
    color: #f2d58a !important;
    padding: 0 10px;
    font-size: 12px;
    font-family: inherit;
    font-weight: 900;
    line-height: 1;
    cursor: pointer;
}

.memoPaidBadge:hover,
.memoPaidBadge:focus-visible,
.memoPaidBadge.is-copied {
    border-color: rgba(242, 213, 138, .85);
    background: rgba(242, 213, 138, .26);
    outline: none;
}

.memoCoverStats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-top: 26px;
}

.memoCoverStats div {
    display: grid;
    gap: 6px;
    min-height: 88px;
    align-content: center;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 8px;
    background: rgba(255, 255, 255, .09);
    padding: 14px;
}

.memoCoverStats span {
    color: #d9e3f5;
    font-size: 13px;
    line-height: 1.25;
}

.memoCoverStats strong {
    color: #fff;
    font-size: 28px;
    line-height: 1;
}

.memoCoverStart {
    display: grid;
    grid-template-columns: minmax(220px, 300px) minmax(0, 1fr);
    gap: 12px;
    align-items: stretch;
    margin-top: 18px;
}

.memoCoverStart > a {
    display: inline-flex;
    min-height: 62px;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #ffdc73;
    color: #07142a;
    padding: 0 18px;
    font-size: 16px;
    font-weight: 900;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    box-shadow: 0 14px 34px rgba(255, 220, 115, .22);
}

.memoCoverStart > a:hover {
    background: #ffe49a;
}

.memoCoverChanceSummary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.memoCoverChanceSummary div {
    display: grid;
    gap: 4px;
    align-content: center;
    min-height: 62px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 8px;
    background: rgba(255, 255, 255, .08);
    padding: 12px 14px;
}

.memoCoverChanceSummary span {
    color: #c8d7ef;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.memoCoverChanceSummary strong {
    color: #fff;
    font-size: 24px;
    line-height: 1;
}

.memoInstitutionOverview {
    margin-top: 28px;
}

.memoOverviewBlock {
    display: grid;
    gap: 10px;
    margin-top: 16px;
}

.memoOverviewBlockHead {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    align-items: baseline;
    justify-content: space-between;
}

.memoOverviewBlockHead span {
    color: var(--blue-dark);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.memoOverviewBlockHead strong {
    color: var(--navy);
    font-size: 18px;
    line-height: 1.25;
}

.memoInstitutionGrid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.memoInstitutionCell {
    display: grid;
    gap: 6px;
    min-height: 92px;
    align-content: center;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    padding: 14px;
}

.memoInstitutionCell span {
    color: var(--muted2);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.memoInstitutionCell strong,
.memoInstitutionCell a {
    color: var(--navy);
    font-size: 15px;
    font-weight: 900;
    line-height: 1.3;
    text-decoration: none;
}

.memoInstitutionCell a:hover {
    color: var(--blue-dark);
}

.memoInstitutionLinks {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.memoInstitutionLinks a,
.memoInstitutionLinks button,
.memoCountBadge--button {
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(57, 86, 255, .18);
    border-radius: 8px;
    background: #fff;
    color: var(--blue-dark);
    padding: 0 12px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 900;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
}

.memoInstitutionLinks a:hover,
.memoInstitutionLinks button:hover,
.memoCountBadge--button:hover {
    border-color: var(--blue);
    background: #eef7ff;
}

.memoInstitutionLinks .memoInstitutionStatsButton {
    border-color: transparent;
    background: linear-gradient(135deg, #4454ff 0%, #0b8cff 100%);
    color: #fff;
    box-shadow: 0 10px 22px rgba(57, 86, 255, .22);
}

.memoInstitutionLinks .memoInstitutionStatsButton:hover {
    border-color: transparent;
    background: linear-gradient(135deg, #2f3edc 0%, #0679dc 100%);
}

.memoSectionAccentLink {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    margin-top: 14px;
    border-radius: 8px;
    background: linear-gradient(135deg, #4454ff 0%, #0b8cff 100%);
    color: #fff;
    padding: 0 18px;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: .02em;
    text-decoration: none;
    box-shadow: 0 10px 22px rgba(57, 86, 255, .22);
}

.memoSectionAccentLink:hover {
    background: linear-gradient(135deg, #2f3edc 0%, #0679dc 100%);
}

.memoInstitutionFactGrid {
    margin-top: 0;
}

.memoInstitutionInsightGrid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
    gap: 12px;
    margin-top: 14px;
}

.memoInstitutionInsight {
    display: grid;
    gap: 10px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    padding: 14px;
}

.memoInstitutionInsight > span,
.memoStatsCard span,
.memoStatsBars h4,
.memoStatsQuota h4,
.memoQuotaMiniGrid span {
    color: var(--muted2);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.memoInstitutionInsight > strong {
    color: var(--navy);
    font-size: 16px;
    line-height: 1.25;
}

.memoAchievementBars {
    display: grid;
    gap: 9px;
}

.memoAchievementBar {
    display: grid;
    gap: 6px;
}

.memoAchievementBar > div {
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: space-between;
    color: var(--navy);
    font-size: 13px;
    font-weight: 800;
}

.memoAchievementBar b {
    color: var(--blue-dark);
}

.memoAchievementBar > em {
    display: block;
    height: 8px;
    max-width: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, #f5d675 0%, #4454ff 100%);
}

.memoQuotaMiniGrid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.memoQuotaMiniGrid div {
    display: grid;
    gap: 4px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #f8fbff;
    padding: 10px;
}

.memoQuotaMiniGrid b {
    color: var(--navy);
    font-size: 14px;
    line-height: 1.2;
}

.memoActionGrid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 28px;
}

.memoActionTile {
    display: grid;
    gap: 5px;
    min-height: 82px;
    align-content: center;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 8px;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    padding: 14px;
    text-decoration: none;
}

.memoActionTile:hover {
    border-color: rgba(255, 255, 255, .42);
    background: rgba(255, 255, 255, .14);
}

.memoActionTile strong {
    font-size: 16px;
    line-height: 1.2;
}

.memoActionTile span {
    color: #d9e3f5;
    font-size: 13px;
    line-height: 1.35;
}

.memoGuideBridge {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 240px;
    gap: 18px;
    align-items: center;
    margin-top: 18px;
    border: 1px solid rgba(242, 213, 138, .38);
    border-radius: 8px;
    background: rgba(255, 255, 255, .1);
    padding: 16px;
}

.memoGuideBridge strong,
.memoGuideBridge span {
    display: block;
}

.memoGuideBridge strong {
    color: #fff;
    font-size: 18px;
    line-height: 1.25;
}

.memoGuideBridge span {
    margin-top: 6px;
    color: #d9e3f5;
    font-size: 14px;
    line-height: 1.45;
}

.memoGuideBridge a {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #f2d58a;
    color: #14233f;
    padding: 0 14px;
    font-size: 14px;
    font-weight: 900;
    text-align: center;
    text-decoration: none;
}

.memoGuideBridge--section {
    border-color: #c8d9f5;
    background:
        linear-gradient(135deg, rgba(0, 129, 255, .08) 0%, rgba(0, 129, 255, .02) 56%, rgba(242, 213, 138, .12) 100%),
        #fff;
    box-shadow: 0 10px 28px rgba(35, 71, 120, .05);
}

.memoGuideBridge--section strong {
    color: var(--navy);
}

.memoGuideBridge--section span {
    color: var(--muted);
}

.memoGuideBridge--section a {
    background: var(--blue);
    color: #fff;
}

.memoGuideBridge--section a:hover {
    background: var(--blue-dark);
}

.memoCountBadge {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    border-radius: 8px;
    background: #eef1ff;
    color: var(--blue-dark);
    padding: 0 14px;
    font-size: 14px;
    font-weight: 900;
    white-space: nowrap;
}

.memoFitHero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 360px) auto;
    gap: 18px;
    align-items: center;
    margin-bottom: 14px;
    border: 1px solid #b8c2ff;
    border-radius: 8px;
    background: linear-gradient(135deg, #f2f7ff 0%, #ffffff 48%, #eef7ff 100%);
    padding: 18px;
    box-shadow: 0 14px 32px rgba(35, 71, 120, .08);
}

.memoFitHero > div:first-child {
    display: grid;
    gap: 6px;
}

.memoFitHero > div:first-child > span {
    color: var(--blue-dark);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.memoFitHero h3 {
    margin: 0;
    color: var(--navy);
    font-size: 24px;
    line-height: 1.15;
}

.memoFitHero p {
    max-width: 700px;
    margin: 0;
    color: var(--muted);
    font-size: 15px;
    line-height: 1.45;
}

.memoFitHeroStats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.memoFitHeroStats div {
    display: grid;
    gap: 4px;
    min-height: 74px;
    align-content: center;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    padding: 10px 12px;
}

.memoFitHeroStats strong {
    color: var(--blue-dark);
    font-size: 22px;
    line-height: 1;
}

.memoFitHeroStats span {
    color: var(--muted2);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
}

.memoFitHeroActions {
    display: grid;
    gap: 8px;
}

.memoFitHeroActions a,
.memoRecalculateButton {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 8px;
    background: var(--blue);
    color: #fff;
    padding: 0 16px;
    font: inherit;
    font-size: 14px;
    font-weight: 900;
    line-height: 1.15;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
}

.memoFitHeroActions a:hover,
.memoRecalculateButton:hover {
    background: var(--blue-dark);
}

.memoFitHeroActions a {
    border: 1px solid #c8d9f5;
    background: #fff;
    color: var(--blue-dark);
}

.memoFitHeroActions a:hover {
    border-color: #aebfff;
    background: #eef4ff;
    color: var(--blue-dark);
}

.memoApplyStrategy {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
    gap: 18px;
    align-items: center;
    margin-bottom: 24px;
    border-radius: 8px;
    background: linear-gradient(135deg, #0b66d8 0%, #1587f7 58%, #36b7ff 100%);
    color: #fff;
    padding: 20px 22px;
    box-shadow: 0 16px 34px rgba(16, 91, 190, .18);
}

.memoApplyStrategy > div:first-child {
    display: grid;
    gap: 7px;
}

.memoApplyStrategy span {
    color: rgba(255, 255, 255, .84);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.memoApplyStrategy strong {
    color: #fff;
    font-size: 24px;
    line-height: 1.15;
}

.memoApplyStrategy p {
    max-width: 780px;
    margin: 0;
    color: rgba(255, 255, 255, .92);
    font-size: 15px;
    line-height: 1.45;
}

.memoApplyStrategy__numbers {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.memoApplyStrategy__numbers span {
    display: grid;
    gap: 4px;
    min-height: 78px;
    align-content: center;
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 8px;
    background: rgba(255, 255, 255, .12);
    color: rgba(255, 255, 255, .88);
    padding: 10px 12px;
    letter-spacing: 0;
    text-transform: none;
}

.memoApplyStrategy__numbers b {
    display: block;
    color: #fff;
    font-size: 23px;
    line-height: 1;
}

.memoFitQuotaSummary {
    display: grid;
    grid-template-columns: minmax(210px, .9fr) minmax(0, 2.6fr);
    gap: 12px;
    align-items: stretch;
    margin: 0 0 14px;
    border: 1px solid #c8d9f5;
    border-radius: 8px;
    background: #fff;
    padding: 12px;
}

.memoFitQuotaSummary.is-muted {
    background: #f8fafc;
}

.memoFitQuotaSummary__head {
    display: grid;
    gap: 5px;
    align-content: center;
    border-radius: 8px;
    background: #eef7ff;
    padding: 12px;
}

.memoFitQuotaSummary__head span {
    color: var(--blue-dark);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.memoFitQuotaSummary__head strong {
    color: var(--navy);
    font-size: 15px;
    line-height: 1.3;
}

.memoFitQuotaGrid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}

.memoFitQuotaCard {
    display: grid;
    gap: 4px;
    min-height: 76px;
    align-content: center;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    padding: 10px;
}

.memoFitQuotaCard span {
    color: var(--muted2);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.memoFitQuotaCard strong {
    color: var(--navy);
    font-size: 16px;
    line-height: 1.15;
}

.memoFitQuotaCard em {
    color: var(--muted);
    font-size: 11px;
    font-style: normal;
    font-weight: 700;
    line-height: 1.25;
}

.memoFitQuotaCard.is-empty {
    background: #f8fafc;
}

.memoFitQuotaCard.is-empty strong,
.memoFitQuotaCard.is-empty em {
    color: var(--muted2);
}

.memoFilterPanel {
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    padding: 18px;
    box-shadow: 0 10px 28px rgba(35, 71, 120, .06);
}

.memoFilterGrid {
    display: grid;
    grid-template-columns: minmax(220px, 1.4fr) minmax(150px, 1fr);
    gap: 12px;
}

.memoFilterGrid--single {
    grid-template-columns: minmax(180px, 320px);
}

.memoFormChoiceBlock {
    display: grid;
    gap: 9px;
}

.memoFormChoiceGrid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.memoFormChoice {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #f8fafc;
    color: var(--navy);
    padding: 0 12px;
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
}

.memoFormChoice:has(input:checked) {
    border-color: rgba(57, 86, 255, .48);
    background: #eef7ff;
    color: var(--blue-dark);
}

.memoFormChoice input {
    width: 18px;
    height: 18px;
    accent-color: var(--blue-dark);
}

.memoField,
.memoSubjectBlock,
.memoAdmissionScenarioBlock {
    display: grid;
    gap: 7px;
}

.memoField span,
.memoFilterLabel {
    color: var(--muted2);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.memoField input,
.memoField select {
    width: 100%;
    min-height: 44px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #f8fafc;
    color: var(--ink);
    font: inherit;
    font-size: 14px;
    padding: 0 12px;
}

.memoField input:focus,
.memoField select:focus {
    outline: 2px solid rgba(44, 86, 214, .18);
    border-color: #8ea2ff;
    background: #fff;
}

.memoAchievementBlock {
    display: grid;
    gap: 9px;
    margin-top: 16px;
}

.memoAchievementList {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 8px;
}

.memoAchievementOption {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #f8fafc;
    padding: 10px;
    cursor: pointer;
}

.memoAchievementOption:has(input:checked) {
    border-color: rgba(57, 86, 255, .42);
    background: #eef7ff;
}

.memoAchievementOption input {
    width: 18px;
    height: 18px;
    accent-color: var(--blue-dark);
}

.memoAchievementOption span {
    display: grid;
    gap: 3px;
}

.memoAchievementOption strong {
    color: var(--navy);
    font-size: 14px;
    line-height: 1.22;
}

.memoAchievementOption small,
.memoAchievementBlock p {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
}

.memoAchievementBlock p {
    margin: 0;
}

.memoAchievementOption b {
    display: inline-flex;
    min-width: 38px;
    height: 30px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #fff;
    color: var(--blue-dark);
    font-size: 13px;
    font-weight: 900;
}

.memoAdmissionScenarioBlock {
    margin-top: 16px;
}

.memoAdmissionScenarioGrid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 8px;
}

.memoAdmissionScenario {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 9px;
    align-items: flex-start;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #f8fafc;
    padding: 10px;
    cursor: pointer;
}

.memoAdmissionScenario:has(input:checked) {
    border-color: rgba(57, 86, 255, .42);
    background: #eef7ff;
}

.memoAdmissionScenario input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: var(--blue-dark);
}

.memoAdmissionScenario span {
    display: grid;
    gap: 4px;
}

.memoAdmissionScenario strong {
    color: var(--navy);
    font-size: 14px;
    line-height: 1.2;
}

.memoAdmissionScenario small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
}

.memoSubjectBlock {
    margin-top: 16px;
}

.memoSubjectGrid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 8px;
}

.memoSubjectScore {
    display: grid;
    gap: 7px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #f8fafc;
    color: var(--ink);
    padding: 10px;
    font-size: 14px;
    font-weight: 700;
}

.memoSubjectScore span {
    min-height: 32px;
    color: var(--navy);
    line-height: 1.25;
}

.memoSubjectScore input {
    width: 100%;
    min-height: 38px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    font: inherit;
    font-size: 15px;
    font-weight: 900;
    padding: 0 10px;
}

.memoSubjectScore input:focus {
    outline: 2px solid rgba(44, 86, 214, .18);
    border-color: #8ea2ff;
}

.memoFilterFooter {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--line2);
}

.memoFilterToggles {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 14px;
}

.memoToggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--ink);
    font-size: 14px;
    font-weight: 800;
}

.memoToggle input {
    width: 18px;
    height: 18px;
    accent-color: var(--blue-dark);
}

.memoFilterStats {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 6px;
    color: var(--muted);
    font-size: 14px;
}

.memoFilterStats strong,
.memoFilterStats span:last-child {
    color: var(--navy);
    font-weight: 900;
}

.memoFilterActions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.memoResetButton {
    min-height: 38px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    color: var(--navy);
    font: inherit;
    font-size: 14px;
    font-weight: 900;
    padding: 0 14px;
    cursor: pointer;
}

.memoResetButton:hover {
    border-color: #b8c2ff;
    background: #f8f9ff;
}

.memoFilterFooter .memoRecalculateButton,
.memoFilterFooter .memoResetButton {
    min-height: 38px;
}

.memoDistributionGrid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
}

.memoDistributionItem {
    display: grid;
    gap: 12px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    padding: 16px;
}

.memoDistributionItem strong {
    display: block;
    margin-top: 3px;
    color: var(--navy);
    font-size: 22px;
    line-height: 1.15;
}

.memoDistributionLabel {
    color: var(--muted2);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.memoDistributionItem dl {
    display: grid;
    gap: 8px;
    margin: 0;
}

.memoDistributionItem dl div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-top: 1px solid var(--line2);
    padding-top: 8px;
}

.memoDistributionItem dt {
    color: var(--muted);
    font-size: 13px;
}

.memoDistributionItem dd {
    margin: 0;
    color: var(--ink);
    font-size: 13px;
    font-weight: 900;
    text-align: right;
}

.memoLinkStrip {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.memoLinkStrip a {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #f8fafc;
    color: var(--navy);
    padding: 0 12px;
    font-size: 14px;
    font-weight: 900;
    text-decoration: none;
}

.memoLinkStrip a:hover {
    border-color: #b8c2ff;
    background: #eef1ff;
    color: var(--blue-dark);
}

.memoDistributionQuotaBlock {
    display: grid;
    gap: 14px;
    margin-top: 24px;
    padding-top: 22px;
    border-top: 1px solid var(--line2);
}

.memoSummaryQuotaBlock {
    display: grid;
    gap: 18px;
    margin-top: 30px;
    padding-top: 28px;
    border-top: 1px solid var(--line2);
}

.memoInnerTitle {
    display: grid;
    gap: 6px;
}

.memoInnerTitle span {
    display: inline-flex;
    width: max-content;
    border-radius: 999px;
    background: #eef1ff;
    color: var(--blue-dark);
    padding: 6px 12px;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .04em;
    line-height: 1;
    text-transform: uppercase;
}

.memoInnerTitle h3 {
    margin: 0;
    color: var(--navy);
    font-size: 24px;
    line-height: 1.2;
}

.memoInnerTitle p {
    max-width: 820px;
    margin: 0;
    color: var(--muted);
    font-size: 15px;
    line-height: 1.45;
}

.memoInnerTitle--compact {
    margin-top: 4px;
}

.memoInnerTitle--compact h3 {
    font-size: 20px;
}

.memoContentsSection {
    padding-top: 30px;
}

.memoContentsList {
    display: grid;
    gap: 10px;
}

.memoContentsList--page {
    grid-template-columns: minmax(0, 760px);
    max-width: 760px;
}

.memoContentsList a {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 5px 12px;
    align-items: start;
    min-height: 104px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: linear-gradient(180deg, #fff 0%, #f8fbff 100%);
    color: var(--navy);
    padding: 14px;
    text-decoration: none;
    box-shadow: 0 10px 24px rgba(35, 71, 120, .05);
}

.memoContentsList--page a {
    min-height: 82px;
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: center;
    padding: 16px;
}

.memoContentsList a:hover {
    border-color: #b8c2ff;
    background: #f4f8ff;
}

.memoContentsList span {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    grid-row: span 2;
    border-radius: 8px;
    background: #eef1ff;
    color: var(--blue-dark);
    font-size: 12px;
    font-weight: 900;
}

.memoContentsList strong,
.memoContentsList em {
    display: block;
    min-width: 0;
    grid-column: 2;
}

.memoContentsList strong {
    color: var(--navy);
    font-size: 15px;
    line-height: 1.25;
}

.memoContentsList em {
    color: var(--muted);
    font-size: 13px;
    font-style: normal;
    line-height: 1.35;
}

.memoApplicantSummary {
    display: grid;
    grid-template-columns: minmax(220px, .8fr) minmax(0, 2fr);
    gap: 12px;
    align-items: stretch;
    margin-bottom: 18px;
    border: 1px solid #c8d9f5;
    border-radius: 8px;
    background: linear-gradient(135deg, #f2f7ff 0%, #fff 100%);
    padding: 14px;
}

.memoApplicantSummary--institution {
    margin-top: 14px;
}

.memoApplicantSummary__person {
    display: grid;
    gap: 5px;
    align-content: center;
    border-radius: 8px;
    background: #fff;
    padding: 12px;
}

.memoApplicantSummary__person span,
.memoApplicantScores b {
    color: var(--muted2);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.memoApplicantSummary__person strong {
    color: var(--navy);
    font-size: 18px;
    line-height: 1.2;
}

.memoApplicantSummary__person a,
.memoApplicantSummary__person em {
    color: var(--muted);
    font-size: 14px;
    font-style: normal;
}

.memoApplicantScores {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-content: center;
}

.memoApplicantScores span {
    display: grid;
    gap: 4px;
    min-width: 128px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    color: var(--navy);
    padding: 10px 12px;
    font-size: 18px;
    font-weight: 900;
}

.memoApplicantScores .is-total {
    border-color: rgba(57, 86, 255, .35);
    background: #eef7ff;
    color: var(--blue-dark);
}

.memoSummaryChances {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
    gap: 8px;
    align-items: stretch;
    margin-bottom: 18px;
}

.memoSummaryChances--institution {
    margin-top: 0;
    margin-bottom: 0;
}

.memoSummaryChances div,
.memoSummaryChances a {
    display: grid;
    align-content: center;
    min-height: 72px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    color: var(--navy);
    padding: 12px;
    text-decoration: none;
}

.memoSummaryChances div {
    gap: 4px;
}

.memoSummaryChances span {
    color: var(--muted2);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.memoSummaryChances strong {
    font-size: 24px;
    line-height: 1;
}

.memoSummaryChances a {
    min-width: 190px;
    justify-items: center;
    border-color: rgba(57, 86, 255, .35);
    background: #4454ff;
    color: #fff;
    font-size: 14px;
    font-weight: 900;
    text-align: center;
}

.memoSummaryChances a:hover {
    background: #2f3edc;
}

.memoContentsGrid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.memoContentsGrid a {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    min-height: 88px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    padding: 14px;
    text-decoration: none;
    box-shadow: 0 10px 24px rgba(35, 71, 120, .05);
}

.memoContentsGrid a:hover {
    border-color: #b8c2ff;
    background: #f8faff;
}

.memoContentsGrid span {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 8px;
    background: #eef1ff;
    color: var(--blue-dark);
    font-size: 12px;
    font-weight: 900;
}

.memoContentsGrid strong,
.memoContentsGrid em {
    display: block;
    grid-column: 2;
}

.memoContentsGrid strong {
    color: var(--navy);
    font-size: 16px;
    line-height: 1.25;
}

.memoContentsGrid em {
    margin-top: 5px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.35;
    font-style: normal;
}

.memoRoadmap {
    display: grid;
    gap: 12px;
}

.memoRoadmapItem {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 14px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    padding: 18px;
    box-shadow: 0 10px 28px rgba(35, 71, 120, .05);
}

.memoRoadmapNumber {
    display: grid;
    width: 46px;
    height: 46px;
    place-items: center;
    border-radius: 8px;
    background: var(--blue-dark);
    color: #fff;
    font-size: 16px;
    font-weight: 900;
}

.memoRoadmapItem h3,
.memoWatchCard h3 {
    margin: 0 0 8px;
    color: var(--navy);
    font-size: 20px;
    line-height: 1.25;
}

.memoRoadmapItem p,
.memoWatchCard li,
.memoActionList li,
.memoQuotaCard p,
.memoQuotaCard li {
    color: var(--muted);
    font-size: 14px;
    line-height: 1.5;
}

.memoActionList,
.memoWatchCard ul,
.memoQuotaCard ul {
    display: grid;
    gap: 7px;
    margin: 10px 0 0;
    padding-left: 20px;
}

.memoStepBlocks {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}

.memoStepBlocks--two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.memoStepBlock {
    display: grid;
    gap: 8px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #f8fafc;
    padding: 14px;
}

.memoStepBlock strong {
    color: var(--blue-dark);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: .03em;
    line-height: 1.25;
    text-transform: uppercase;
}

.memoStepBlock p {
    margin: 0;
    color: var(--navy);
    font-size: 14px;
    font-weight: 800;
    line-height: 1.4;
}

.memoStepBlock ul {
    display: grid;
    gap: 6px;
    margin: 0;
    padding-left: 18px;
}

.memoStepBlock li {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.4;
}

.memoStepBlockActions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.memoStepBlockActions button,
.memoStepBlockActions a {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(57, 86, 255, .25);
    border-radius: 8px;
    background: #fff;
    color: var(--blue-dark);
    padding: 0 10px;
    font-family: inherit;
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
    cursor: pointer;
}

.memoStepBlockActions button:hover,
.memoStepBlockActions a:hover {
    border-color: var(--blue);
    background: #eef7ff;
}

.memoStepCallout {
    display: flex;
    gap: 14px;
    align-items: center;
    justify-content: space-between;
    margin-top: 14px;
    border: 1px solid rgba(57, 86, 255, .25);
    border-radius: 8px;
    background: linear-gradient(135deg, #eef7ff 0%, #f7fbff 55%, #fff 100%);
    padding: 16px;
}

.memoStepCallout strong,
.memoStepCallout span {
    display: block;
}

.memoStepCallout strong {
    color: var(--navy);
    font-size: 18px;
    line-height: 1.25;
    text-transform: uppercase;
}

.memoStepCallout span {
    margin-top: 4px;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.4;
}

.memoStepCallout button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 8px;
    background: linear-gradient(135deg, #4454ff 0%, #0b8cff 100%);
    color: #fff;
    padding: 0 16px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 900;
    white-space: nowrap;
    cursor: pointer;
    box-shadow: 0 10px 22px rgba(57, 86, 255, .22);
}

.memoStepCallout button:hover {
    background: linear-gradient(135deg, #2f3edc 0%, #0679dc 100%);
}

.memoWatchGrid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 16px;
}

.memoWatchCard {
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #f8fafc;
    padding: 16px;
}

.memoDviList {
    display: grid;
    gap: 10px;
}

.memoDviItem {
    display: grid;
    gap: 8px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #f8fafc;
    padding: 14px;
}

.memoDviItem strong,
.memoDviItem span,
.memoDviItem em {
    display: block;
}

.memoDviItem strong {
    color: var(--navy);
    font-size: 16px;
    line-height: 1.25;
}

.memoDviItem span {
    color: var(--blue-dark);
    font-size: 13px;
    font-weight: 900;
}

.memoDviItem em {
    color: var(--muted);
    font-size: 13px;
    font-style: normal;
    line-height: 1.4;
}

.memoDocumentsGuide {
    display: grid;
    gap: 16px;
}

.memoDocumentsInline {
    position: relative;
    display: grid;
    gap: 14px;
    margin-top: 14px;
    border: 1px solid rgba(57, 86, 255, .22);
    border-radius: 8px;
    background: #fff;
    padding: 16px;
}

.memoDocumentsInline[hidden] {
    display: none;
}

.memoDocumentsInline__head {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    justify-content: space-between;
}

.memoDocumentsInline__head span,
.memoDocumentsInline__head strong {
    display: block;
}

.memoDocumentsInline__head span {
    color: var(--blue-dark);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.memoDocumentsInline__head strong {
    margin-top: 4px;
    color: var(--navy);
    font-size: 20px;
    line-height: 1.25;
}

.memoDocumentsNote,
.memoDocumentsDeadlines {
    display: grid;
    gap: 5px;
    border: 1px solid #bfd7ff;
    border-radius: 8px;
    background: #eef7ff;
    padding: 14px;
}

.memoDocumentsNote strong,
.memoDocumentsDeadlines strong {
    color: var(--blue-dark);
    font-size: 14px;
    font-weight: 900;
}

.memoDocumentsNote span,
.memoDocumentsDeadlines span {
    color: var(--muted);
    font-size: 14px;
    line-height: 1.45;
}

.memoDocumentsGuide ol {
    display: grid;
    gap: 10px;
    margin: 0;
    padding-left: 22px;
}

.memoDocumentsGuide li {
    color: var(--muted);
    font-size: 14px;
    line-height: 1.5;
}

.memoDocumentsGuide li b {
    color: var(--navy);
}

.memoDocumentsStrategy {
    display: grid;
    gap: 14px;
}

.memoDocumentsStrategy article {
    display: grid;
    gap: 10px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #f8fafc;
    padding: 14px;
}

.memoDocumentsStrategy article > span {
    display: inline-grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 8px;
    background: #eef1ff;
    color: var(--blue-dark);
    font-size: 12px;
    font-weight: 900;
}

.memoDocumentsStrategy h4 {
    margin: 0;
    color: var(--navy);
    font-size: 18px;
    line-height: 1.25;
}

.memoDocumentsStrategy p {
    margin: 0;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.5;
}

.memoDocumentsStrategy p a {
    color: var(--blue-dark);
    font-weight: 900;
}

.memoDocumentsScreens {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.memoDocumentsScreens figure,
.memoDocumentsScreens a {
    display: grid;
    gap: 8px;
    margin: 0;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    padding: 10px;
    color: inherit;
    text-decoration: none;
}

.memoDocumentsScreens img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 6px;
    border: 1px solid var(--line2);
}

.memoDocumentsScreens figcaption,
.memoDocumentsScreens em {
    color: var(--muted2);
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
    line-height: 1.3;
}

.memoDocumentsScreens a:hover {
    border-color: #b8c2ff;
    background: #f8faff;
}

.memoDocumentsImagePreview {
    position: fixed;
    inset: 0;
    z-index: 10020;
    display: grid;
    place-items: center;
    background: rgba(8, 18, 38, .72);
    padding: 18px;
    overflow: auto;
}

.memoDocumentsImagePreview[hidden] {
    display: none;
}

.memoDocumentsImagePreview__frame {
    position: relative;
    display: grid;
    gap: 10px;
    width: min(100%, 980px);
    max-height: calc(100vh - 36px);
    border-radius: 8px;
    background: #fff;
    padding: 14px;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .28);
}

.memoDocumentsImagePreview__frame button {
    position: absolute;
    top: 10px;
    right: 10px;
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 0;
    border-radius: 999px;
    background: rgba(8, 18, 38, .88);
    color: #fff;
    font-size: 24px;
    font-weight: 900;
    cursor: pointer;
}

.memoDocumentsImagePreview__frame img {
    display: block;
    width: 100%;
    max-height: calc(90vh - 120px);
    object-fit: contain;
    border-radius: 6px;
    border: 1px solid var(--line2);
    background: #f8fafc;
}

.memoDocumentsImagePreview__frame strong {
    color: var(--navy);
    font-size: 14px;
    line-height: 1.35;
}

.memoDocumentsGuide > a {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    width: max-content;
    max-width: 100%;
    border-radius: 8px;
    background: linear-gradient(135deg, #4454ff 0%, #0b8cff 100%);
    color: #fff;
    padding: 0 16px;
    font-size: 13px;
    font-weight: 900;
    text-decoration: none;
}

.memoLegacyGuideContent {
    gap: 16px;
}

.memoLegacyGuideContent .actionWordGuide {
    display: grid;
    gap: 16px;
}

.memoLegacyGuideContent .actionWordGuide__block,
.memoLegacyGuideContent .actionAnalysisPanel,
.memoLegacyGuideContent .actionRealCompetitors {
    position: relative;
    overflow: hidden;
    border: 1px solid #dce7f5;
    border-radius: 8px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    padding: 18px 18px 18px 22px;
    box-shadow: 0 12px 30px rgba(35, 71, 120, .05);
}

.memoLegacyGuideContent .actionWordGuide__block:before {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: linear-gradient(180deg, var(--blue) 0%, #f2d58a 100%);
}

.memoLegacyGuideContent .actionWordGuide__method {
    border-color: #ead28b;
    background: linear-gradient(180deg, #ffffff 0%, #fffaf0 100%);
}

.memoLegacyGuideContent .actionWordGuide__method:before {
    background: linear-gradient(180deg, #f2d58a 0%, var(--blue) 100%);
}

.memoLegacyGuideContent h4,
.memoLegacyGuideContent .actionAnalysisPanel h4 {
    margin: 0 0 12px;
    color: var(--navy);
    font-size: 20px;
    line-height: 1.25;
}

.memoLegacyGuideContent h5 {
    margin: 14px 0 7px;
    color: var(--blue-dark);
    font-size: 15px;
    line-height: 1.3;
}

.memoLegacyGuideContent p {
    margin: 0 0 11px;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.55;
}

.memoLegacyGuideContent p:last-child {
    margin-bottom: 0;
}

.memoLegacyGuideContent .actionWordGuide__lead,
.memoLegacyGuideContent .actionWordGuide__note {
    border-radius: 8px;
    padding: 12px;
}

.memoLegacyGuideContent .actionWordGuide__lead {
    border: 1px solid #dce7f5;
    background: #f3f7ff;
    color: var(--navy);
    font-weight: 800;
}

.memoLegacyGuideContent .actionWordGuide__note {
    border: 1px solid #efd790;
    background: #fff8e7;
    color: #493917;
    font-weight: 800;
}

.memoLegacyGuideContent .actionWordGuide__sectionHeading {
    margin: 4px 0 0;
    color: var(--navy);
    font-size: 24px;
    line-height: 1.2;
}

.memoLegacyGuideContent .actionWordGuide__list {
    display: grid;
    gap: 8px;
    margin: 12px 0;
    padding: 0;
    list-style: none;
}

.memoLegacyGuideContent .actionWordGuide__list li {
    position: relative;
    border: 1px solid #e3eaf5;
    border-radius: 8px;
    background: #f8fbff;
    padding: 10px 12px 10px 28px;
    color: #243145;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.45;
}

.memoLegacyGuideContent .actionWordGuide__list li:before {
    content: '';
    position: absolute;
    left: 12px;
    top: 16px;
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: var(--blue);
}

.memoLegacyGuideContent .actionWordGuide__list--numbered {
    counter-reset: memoLegacyList;
}

.memoLegacyGuideContent .actionWordGuide__list--numbered li {
    counter-increment: memoLegacyList;
    padding-left: 44px;
}

.memoLegacyGuideContent .actionWordGuide__list--numbered li:before {
    content: counter(memoLegacyList);
    top: 9px;
    left: 10px;
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    background: var(--blue-dark);
    color: #fff;
    font-size: 12px;
    font-weight: 900;
}

.memoLegacyGuideContent .actionWordGuide__spoiler,
.memoLegacyGuideContent .actionWordGuide__qa {
    margin: 12px 0;
    border: 1px solid #dbe8f8;
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
}

.memoLegacyGuideContent .actionWordGuide__spoiler summary,
.memoLegacyGuideContent .actionWordGuide__qa summary {
    cursor: pointer;
    padding: 13px 14px;
    color: var(--navy);
    font-weight: 900;
    line-height: 1.35;
}

.memoLegacyGuideContent .actionWordGuide__spoilerBody,
.memoLegacyGuideContent .actionWordGuide__qa p {
    padding: 0 14px 14px;
}

.memoLegacyGuideContent .actionWordGuide__image {
    display: block;
    width: 100%;
    max-width: 760px;
    margin: 12px 0 2px;
    border: 1px solid #dce7f5;
    border-radius: 8px;
}

.memoLegacyGuideContent .actionAnalysisGrid,
.memoLegacyGuideContent .actionDecisionFlow,
.memoLegacyGuideContent .actionRealCompetitors__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.memoLegacyGuideContent .actionAnalysisCard,
.memoLegacyGuideContent .actionDecisionFlow > div,
.memoLegacyGuideContent .actionRealCompetitors__grid > div {
    border: 1px solid #e3eaf5;
    border-radius: 8px;
    background: #f8fbff;
    padding: 12px;
}

.memoLegacyGuideContent .actionAnalysisCard b,
.memoLegacyGuideContent .actionDecisionFlow b,
.memoLegacyGuideContent .actionRealCompetitors b {
    display: block;
    margin-bottom: 5px;
    color: var(--navy);
    font-weight: 900;
}

.memoLegacyGuideContent .actionAnalysisCard span {
    color: var(--muted);
    font-size: 14px;
    line-height: 1.45;
}

.memoLegacyGuideContent .actionWordGuide__tableLink a {
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    border: 1px solid #b9d2f3;
    border-radius: 999px;
    background: #eef6ff;
    color: #124a8d;
    padding: 8px 13px;
    font-size: 13px;
    font-weight: 900;
    text-decoration: none;
}

@media (max-width: 760px) {
    .memoLegacyGuideContent .actionAnalysisGrid,
    .memoLegacyGuideContent .actionDecisionFlow,
    .memoLegacyGuideContent .actionRealCompetitors__grid {
        grid-template-columns: 1fr;
    }
}

.memoChanceTabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 14px;
}

.memoChanceTabs button {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    color: var(--navy);
    padding: 0 12px;
    font: inherit;
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
}

.memoChanceTabs button span {
    display: inline-flex;
    min-width: 24px;
    min-height: 24px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #eef1ff;
    color: var(--blue-dark);
    padding: 0 7px;
    font-size: 12px;
}

.memoChanceTabs button:hover,
.memoChanceTabs button.is-active {
    border-color: var(--blue);
    background: var(--blue);
    color: #fff;
}

.memoChanceTabs button:hover span,
.memoChanceTabs button.is-active span {
    background: rgba(255, 255, 255, .2);
    color: #fff;
}

.memoChanceTabs button:disabled {
    opacity: .48;
    cursor: not-allowed;
}

.memoChanceTabs button:disabled:hover {
    border-color: var(--line2);
    background: #fff;
    color: var(--navy);
}

.memoChanceTabs button:disabled:hover span {
    background: #eef1ff;
    color: var(--blue-dark);
}

.memoApplyBox {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    align-items: stretch;
    margin: 0 0 16px;
    border: 1px solid rgba(57, 86, 255, .2);
    border-radius: 8px;
    background: linear-gradient(135deg, #eef7ff 0%, #f7fbff 55%, #fff 100%);
    padding: 16px 18px;
}

.memoApplyBox span {
    display: inline-flex;
    margin-bottom: 6px;
    color: var(--blue-dark);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.memoApplyBox strong {
    display: block;
    color: var(--navy);
    font-size: 18px;
    line-height: 1.25;
}

.memoApplyBox p {
    max-width: 780px;
    margin: 6px 0 0;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.45;
}

.memoApplyList {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-start;
}

.memoApplyList span,
.memoApplyList em {
    display: inline-flex;
    min-height: 30px;
    align-items: center;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--line2);
    color: var(--navy);
    padding: 0 10px;
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
}

.memoApplyList .memoApplyTable {
    flex: 1 1 100%;
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid var(--line2);
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}

.memoApplyTable th,
.memoApplyTable td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--line2);
    color: var(--ink);
    font-size: 13px;
    line-height: 1.35;
    text-align: left;
    vertical-align: top;
}

.memoApplyTable tr:last-child td {
    border-bottom: 0;
}

.memoApplyTable th {
    background: #f8fafc;
    color: var(--muted2);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.memoApplyTable strong {
    display: block;
    color: var(--navy);
    font-size: 13px;
    line-height: 1.3;
}

.memoApplyTable small {
    display: block;
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
}

.memoApplyList .memoApplyTable .memoSelectedChance {
    min-height: 26px;
    margin: 0;
    white-space: normal;
    overflow-wrap: anywhere;
}

.memoApplyTable .memoQuotaResultParts,
.memoApplyTable .memoQuotaResultParts--inline {
    width: 100%;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
}

.memoApplyTable .memoQuotaResultPart {
    max-width: 100%;
}

.memoProgramGroups {
    display: grid;
    gap: 14px;
}

.memoProgramGroup {
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 10px 28px rgba(35, 71, 120, .05);
    transition: border-color .2s ease, box-shadow .2s ease;
}

.memoProgramGroup.is-jump-highlight {
    border-color: var(--blue);
    box-shadow: 0 0 0 3px rgba(57, 86, 255, .14), 0 16px 36px rgba(35, 71, 120, .12);
}

.memoProgramGroupHead {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 430px);
    gap: 18px;
    align-items: start;
    padding: 18px;
    background: #f8fafc;
    border-bottom: 1px solid var(--line2);
}

.memoProgramGroupTitle {
    display: block;
    margin: 0;
    color: var(--navy);
    font-size: 20px;
    line-height: 1.28;
    font-weight: 900;
    text-decoration: none;
}

.memoProgramGroupTitle:hover {
    color: var(--blue-dark);
}

.memoProgramGroupTitleRow {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: flex-start;
    justify-content: flex-start;
}

.memoProgramGroupActions {
    display: flex;
    width: 100%;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-start;
}

.memoProgramGroup.is-collapsed .memoProgramGroupHead {
    border-bottom: 0;
}

.memoProgramGroup.is-collapsed > .memoProgramGroupSubjects,
.memoProgramGroup.is-collapsed > .memoProgramFormTabs,
.memoProgramGroup.is-collapsed > .memoProgramsTableWrap {
    display: none;
}

.memoTinyButton {
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    color: var(--blue-dark);
    padding: 0 10px;
    font: inherit;
    font-size: 12px;
    font-weight: 900;
    cursor: pointer;
}

.memoTinyButton:hover {
    border-color: var(--blue);
}

.memoTinyButton--wide {
    min-width: 190px;
}

.memoTinyButton--accent {
    border-color: rgba(30, 132, 86, .3);
    background: rgba(30, 132, 86, .08);
    color: var(--green);
}

.memoTinyButton--accent.is-selected {
    background: var(--green);
    border-color: var(--green);
    color: #fff;
}

.memoTinyButton.is-selected {
    border-color: rgba(30, 132, 86, .28);
    background: rgba(30, 132, 86, .08);
    color: var(--green);
}

.memoTinyButton--danger {
    border-color: rgba(206, 61, 61, .22);
    color: var(--red);
}

.memoTinyButton--danger:hover {
    border-color: rgba(206, 61, 61, .5);
    background: rgba(206, 61, 61, .07);
}

.memoTinyButton:disabled {
    opacity: .55;
    cursor: wait;
}

.memoApplyActions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: flex-end;
}

.memoProgramGroupMeta,
.memoProgramGroupSubjects {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 10px;
}

.memoProgramGroupMeta span,
.memoProgramGroupSubjects span {
    display: inline-flex;
    min-height: 28px;
    align-items: center;
    border-radius: 999px;
    background: #eef1ff;
    color: var(--blue-dark);
    padding: 0 10px;
    font-size: 12px;
    font-weight: 900;
}

.memoProgramGroupFormPill {
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    border-radius: 999px;
    background: #eef1ff;
    color: var(--blue-dark);
    padding: 0 10px;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.2;
}

.memoProgramGroupToggleRow {
    display: grid;
    grid-column: 1 / -1;
    margin-top: 4px;
}

.memoProgramGroupToggleButton {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    width: 100%;
    border: 0;
    border-radius: 8px;
    background: linear-gradient(135deg, #4454ff 0%, #0b8cff 100%);
    color: #fff;
    padding: 0 16px;
    font: inherit;
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
    box-shadow: 0 10px 24px rgba(57, 86, 255, .18);
}

.memoProgramGroupToggleButton:hover {
    background: linear-gradient(135deg, #2f3edc 0%, #0679dc 100%);
}

.memoProgramGroup.is-open .memoProgramGroupToggleButton {
    border: 1px solid #cfe0ff;
    background: #fff;
    color: var(--blue-dark);
    box-shadow: none;
}

.memoProgramGroupMeta .memoProgramGroupChance {
    border-color: #d8deea;
    background: #fff;
    color: var(--muted2);
}

.memoProgramGroupMeta .memoProgramGroupChance.is-reliable {
    border-color: rgba(30, 132, 86, .35);
    background: rgba(30, 132, 86, .1);
    color: var(--green);
}

.memoProgramGroupMeta .memoProgramGroupChance.is-backup,
.memoProgramGroupMeta .memoProgramGroupChance.is-risk {
    border-color: rgba(176, 126, 21, .35);
    background: rgba(242, 213, 138, .22);
    color: #7a5600;
}

.memoProgramGroupMeta .memoProgramGroupChance.is-unlikely,
.memoProgramGroupMeta .memoProgramGroupChance.is-bad {
    border-color: rgba(206, 61, 61, .25);
    background: rgba(206, 61, 61, .08);
    color: var(--red);
}

.memoProgramGroupMeta .memoProgramGroupChance.is-split {
    gap: 6px;
    min-height: 32px;
    border-radius: 8px;
    padding: 5px 8px;
    white-space: normal;
}

.memoProgramGroupChance > b {
    color: var(--navy);
    font-size: 12px;
}

.memoChanceParts,
.memoProgramGroupMeta .memoChanceParts {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 5px;
    min-height: 0;
    align-items: center;
    border-radius: 0;
    background: transparent;
    padding: 0;
}

.memoChancePart,
.memoProgramGroupMeta .memoChancePart {
    display: inline-grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 4px;
    min-height: 24px;
    align-items: center;
    border: 1px solid #d8deea;
    border-radius: 999px;
    background: #fff;
    color: var(--muted2);
    padding: 0 8px;
}

.memoChancePart b,
.memoChancePart em {
    min-height: 0;
    padding: 0;
    background: transparent;
    color: inherit;
    font-size: 11px;
    font-style: normal;
    font-weight: 900;
    line-height: 1.15;
}

.memoChancePart em {
    font-weight: 800;
}

.memoChancePart.is-reliable {
    border-color: rgba(30, 132, 86, .35);
    background: rgba(30, 132, 86, .08);
    color: var(--green);
}

.memoChancePart.is-backup,
.memoChancePart.is-risk {
    border-color: rgba(176, 126, 21, .35);
    background: rgba(242, 213, 138, .2);
    color: #7a5600;
}

.memoChancePart.is-unlikely,
.memoChancePart.is-bad {
    border-color: rgba(206, 61, 61, .25);
    background: rgba(206, 61, 61, .08);
    color: var(--red);
}

.memoQuotaResultParts {
    display: grid;
    gap: 5px;
    min-width: 190px;
}

.memoQuotaResultParts--inline,
.memoProgramGroupMeta .memoQuotaResultParts {
    display: inline-flex;
    flex-wrap: wrap;
    min-width: 0;
}

.memoQuotaResultPart {
    display: grid;
    gap: 2px;
    border: 1px solid #d8deea;
    border-radius: 8px;
    background: #fff;
    color: var(--muted2);
    padding: 6px 8px;
}

.memoQuotaResultPart b,
.memoQuotaResultPart em {
    color: inherit;
    font-size: 11px;
    font-style: normal;
    font-weight: 900;
    line-height: 1.2;
}

.memoQuotaResultPart em {
    font-weight: 800;
}

.memoQuotaResultPart.is-reliable {
    border-color: rgba(30, 132, 86, .35);
    background: rgba(30, 132, 86, .08);
    color: var(--green);
}

.memoQuotaResultPart.is-backup,
.memoQuotaResultPart.is-risk {
    border-color: rgba(176, 126, 21, .35);
    background: rgba(242, 213, 138, .2);
    color: #7a5600;
}

.memoQuotaResultPart.is-unlikely,
.memoQuotaResultPart.is-bad {
    border-color: rgba(206, 61, 61, .25);
    background: rgba(206, 61, 61, .08);
    color: var(--red);
}

.memoQuotaResultPart.is-neutral {
    background: #f8fafc;
    color: var(--muted2);
}

.memoFitBadge.is-quota-detail {
    width: 100%;
    max-width: 100%;
    justify-content: stretch;
    text-align: left;
    white-space: normal;
}

.memoFitBadge.is-quota-detail .memoQuotaResultParts {
    width: 100%;
    min-width: 0;
}

.memoFitBadge.is-quota-detail .memoQuotaResultPart {
    width: 100%;
    max-width: 100%;
    padding: 5px 7px;
    overflow-wrap: anywhere;
}

.memoFitBadge.is-quota-detail .memoQuotaResultPart b,
.memoFitBadge.is-quota-detail .memoQuotaResultPart em {
    display: block;
    line-height: 1.15;
}

.memoProgramGroupSubjects {
    padding: 14px 18px 0;
}

.memoProgramGroupSubjects span {
    background: #f3f6fb;
    color: var(--muted);
}

.memoProgramFormSummaries {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
    gap: 12px;
    padding: 14px 18px 0;
}

.memoProgramFormTabs {
    display: grid;
    gap: 10px;
    padding: 14px 18px 0;
}

.memoProgramFormTabList {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.institutionMemoPage .memoProgramFormTabButton,
.memoProgramFormTabList button {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    justify-content: center;
    border: 1px solid #cfe0ff;
    border-radius: 8px;
    background: #f3f6ff;
    color: var(--blue);
    cursor: pointer;
    font-family: inherit;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    padding: 9px 12px;
    -webkit-appearance: none;
    appearance: none;
}

.institutionMemoPage .memoProgramFormTabButton.is-active,
.memoProgramFormTabList button.is-active {
    border-color: var(--blue);
    background: var(--blue);
    color: #fff;
}

.memoProgramFormTabs .memoProgramFormSummaries {
    grid-template-columns: 1fr;
    padding: 0;
}

.memoProgramFormPanel[hidden] {
    display: none;
}

.memoProgramFormSummary {
    display: grid;
    gap: 12px;
    border: 1px solid #cfe0ff;
    border-radius: 8px;
    background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
    padding: 12px;
}

.memoProgramFormSummary--modal {
    background: #f8fbff;
}

.memoProgramFormSummary.is-not-selected-form {
    border-color: #e5d7ad;
    background: linear-gradient(180deg, #ffffff 0%, #fffaf0 100%);
}

.memoProgramFormNotice {
    border: 1px solid #f0dca4;
    border-radius: 8px;
    background: #fff8e6;
    color: #7a5600;
    padding: 8px 10px;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.3;
}

.memoProgramFormSummary__head {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    justify-content: space-between;
}

.memoProgramFormSummary__head strong {
    color: var(--navy);
    font-size: 15px;
    line-height: 1.25;
}

.memoProgramFormSummary__head span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    line-height: 1.3;
    text-align: right;
}

.memoProgramFormSummary dl,
.memoFormCompetition {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
}

.memoProgramFormSummary dl div,
.memoFormCompetition div {
    display: grid;
    gap: 3px;
    border-radius: 8px;
    background: #f8fafc;
    padding: 9px;
}

.memoProgramFormSummary dt,
.memoProgramFormSummary dd {
    margin: 0;
}

.memoProgramFormSummary dt {
    color: var(--muted2);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.memoProgramFormSummary dd {
    color: var(--navy);
    font-size: 14px;
    font-weight: 900;
}

.memoProgramFormSummary small,
.memoFormQuotaDetails span {
    color: var(--muted);
    font-size: 12px;
    line-height: 1.3;
}

.memoFormQuotaBlock {
    display: grid;
    gap: 8px;
    border-top: 1px solid var(--line2);
    padding-top: 10px;
}

.memoFormQuotaBlock__title {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    justify-content: space-between;
}

.memoFormQuotaBlock__title strong {
    color: var(--navy);
    font-size: 13px;
    line-height: 1.25;
}

.memoFormQuotaBlock__title span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    line-height: 1.3;
    text-align: right;
}

.memoFormQuotaGrid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
    gap: 8px;
}

.memoFormQuotaGrid.is-empty {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
}

.memoFormQuotaItem {
    display: grid;
    min-height: 74px;
    align-content: start;
    gap: 4px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    padding: 9px;
}

.memoFormQuotaItem--main {
    border-color: rgba(57, 86, 255, .22);
    background: #f2f6ff;
}

.memoFormQuotaItem span {
    color: var(--muted2);
    font-size: 10px;
    font-weight: 900;
    line-height: 1.25;
    text-transform: uppercase;
}

.memoFormQuotaItem strong {
    color: var(--navy);
    font-size: 13px;
    font-weight: 900;
    line-height: 1.2;
}

.memoFormQuotaItem em {
    color: var(--muted);
    font-size: 11px;
    font-style: normal;
    line-height: 1.25;
}

.memoFormQuotaItem.is-empty {
    background: #fafbfc;
}

.memoQuotaChanceText {
    display: inline-flex;
    width: fit-content;
    border-radius: 999px;
    background: #f1f4fb;
    color: var(--muted2);
    padding: 3px 7px;
    font-weight: 900;
}

.memoQuotaChanceText.is-reliable {
    background: rgba(30, 132, 86, .1);
    color: var(--green);
}

.memoQuotaChanceText.is-backup,
.memoQuotaChanceText.is-risk {
    background: rgba(242, 213, 138, .26);
    color: #7a5600;
}

.memoQuotaChanceText.is-unlikely,
.memoQuotaChanceText.is-bad {
    background: rgba(206, 61, 61, .08);
    color: var(--red);
}

.memoQuotaChanceText.is-neutral {
    background: #f1f4fb;
    color: var(--muted2);
}

.memoFormQuotaDetails {
    display: grid;
    gap: 4px;
}

.memoProgramGroupStats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.memoProgramGroupStats span {
    display: grid;
    gap: 3px;
    min-height: 56px;
    align-content: center;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    color: var(--muted);
    padding: 8px 10px;
    font-size: 12px;
    font-weight: 800;
}

.memoProgramGroupStats b {
    color: var(--navy);
    font-size: 16px;
}

.memoProgramGroupQuotas {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    border-top: 1px solid var(--line2);
    padding-top: 12px;
}

.memoProgramGroupQuotas div {
    display: grid;
    gap: 4px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    padding: 10px;
}

.memoProgramGroupQuotas span {
    color: var(--muted2);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.memoProgramGroupQuotas strong {
    color: var(--navy);
    font-size: 15px;
    line-height: 1.2;
}

.memoProgramGroupQuotas em {
    color: var(--muted);
    font-size: 12px;
    font-style: normal;
    line-height: 1.3;
}

.memoProgramGroupQuotas.is-empty {
    grid-template-columns: 1fr;
}

.memoProgramGroupQuotas.is-empty div {
    background: #f8fafc;
}

.memoProgramsTableWrap {
    overflow-x: auto;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
}

.memoProgramsTableWrap--nested {
    margin: 14px 18px 18px;
}

.memoProgramsTable {
    width: 100%;
    min-width: 1220px;
    border-collapse: separate;
    border-spacing: 0;
}

.memoProgramsTable--grouped {
    min-width: 0;
    table-layout: fixed;
}

.memoProgramsTableWrap--nested {
    overflow-x: visible;
}

.memoProgramsTable--grouped th:nth-child(1),
.memoProgramsTable--grouped td:nth-child(1) {
    width: 22%;
}

.memoProgramsTable--grouped th:nth-child(2),
.memoProgramsTable--grouped td:nth-child(2) {
    width: 8%;
}

.memoProgramsTable--grouped th:nth-child(3),
.memoProgramsTable--grouped td:nth-child(3),
.memoProgramsTable--grouped th:nth-child(4),
.memoProgramsTable--grouped td:nth-child(4) {
    width: 9%;
}

.memoProgramsTable--grouped th:nth-child(5),
.memoProgramsTable--grouped td:nth-child(5) {
    width: 10%;
}

.memoProgramsTable--grouped th:nth-child(6),
.memoProgramsTable--grouped td:nth-child(6) {
    width: 22%;
}

.memoProgramsTable--grouped th:nth-child(7),
.memoProgramsTable--grouped td:nth-child(7) {
    width: 20%;
}

.memoProgramsTable.memoProgramsTable--grouped th,
.memoProgramsTable.memoProgramsTable--grouped td {
    padding: 11px 10px;
    overflow-wrap: anywhere;
}

.memoProgramsTable th,
.memoProgramsTable td {
    padding: 13px 14px;
    border-bottom: 1px solid var(--line2);
    text-align: left;
    vertical-align: top;
}

.memoProgramsTable tr:last-child td {
    border-bottom: 0;
}

.memoProgramsTable th {
    background: #f8fafc;
    color: var(--muted2);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.memoProgramsTable th small {
    display: block;
    margin-top: 2px;
    color: #9aa5b5;
    font-size: 10px;
    line-height: 1.2;
}

.memoProgramsTable td {
    color: var(--ink);
    font-size: 14px;
    line-height: 1.35;
}

.memoProgramsTable td small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.25;
}

.memoQuotaInline {
    display: grid;
    gap: 2px;
    margin-top: 5px;
}

.memoQuotaInline small {
    margin-top: 0 !important;
}

.memoBudgetCompetitionLabel {
    color: var(--blue-dark) !important;
    font-size: 11px !important;
    font-weight: 900;
    text-transform: uppercase;
}

.memoScoreHint {
    font-weight: 900;
}

.memoScoreHint.is-good {
    color: var(--green);
}

.memoScoreHint.is-risk {
    color: #8a5f00;
}

.memoScoreHint.is-muted {
    color: var(--muted);
}

.memoProgramName {
    color: var(--navy);
    font-weight: 900;
    text-decoration: none;
}

.memoProgramName:hover {
    color: var(--blue-dark);
}

.memoFitBadge {
    display: inline-flex;
    min-width: 112px;
    max-width: 100%;
    min-height: 30px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 1px solid #d8deea;
    background: #f8fafc;
    color: var(--muted2);
    padding: 0 10px;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.15;
    white-space: normal;
    text-align: center;
}

.memoFitBadge.is-good,
.memoFitBadge.is-reliable {
    border-color: rgba(30, 132, 86, .35);
    background: rgba(30, 132, 86, .1);
    color: var(--green);
}

.memoFitBadge.is-backup {
    border-color: rgba(176, 126, 21, .35);
    background: rgba(242, 213, 138, .2);
    color: #7a5600;
}

.memoFitBadge.is-risk {
    border-color: rgba(176, 126, 21, .35);
    background: rgba(242, 213, 138, .26);
    color: #8a5f00;
}

.memoFitBadge.is-bad,
.memoFitBadge.is-unlikely {
    border-color: rgba(206, 61, 61, .25);
    background: rgba(206, 61, 61, .08);
    color: var(--red);
}

.memoFitBadge.is-neutral {
    color: var(--muted2);
}

.memoFitBadge.is-split {
    display: grid;
    gap: 5px;
    min-width: 0;
    min-height: 0;
    justify-content: stretch;
    border-radius: 8px;
    background: #fff;
    padding: 6px;
    white-space: normal;
}

.memoFitBadge.is-split .memoChancePart {
    width: 100%;
    justify-content: start;
}

.memoRowHidden {
    display: none;
}

.memoNoResults,
.memoNoResults td {
    color: var(--muted);
    font-weight: 700;
    text-align: center;
}

.memoNoResults {
    border: 1px dashed #c8d0e0;
    border-radius: 8px;
    background: #f8fafc;
    padding: 18px;
}

.memoHasOpenModal,
.memoHasOpenModal body {
    overflow: hidden;
}

.memoRecalcOverlay {
    position: fixed;
    inset: 0;
    z-index: 10080;
    display: grid;
    place-items: center;
    background: rgba(5, 13, 31, .72);
    backdrop-filter: blur(4px);
}

.memoRecalcOverlay div {
    display: grid;
    gap: 8px;
    width: min(360px, calc(100vw - 32px));
    border-radius: 8px;
    background: #fff;
    padding: 22px;
    text-align: center;
    box-shadow: 0 24px 80px rgba(9, 20, 45, .28);
}

.memoRecalcOverlay strong {
    color: var(--navy);
    font-size: 20px;
    line-height: 1.25;
}

.memoRecalcOverlay span {
    color: var(--muted);
    font-size: 14px;
    line-height: 1.45;
}

.memoSpecialtyModal {
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: grid;
    place-items: center;
    padding: 28px;
}

.memoSpecialtyModal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(5, 13, 31, .58);
    backdrop-filter: blur(4px);
}

.memoSpecialtyModal__dialog {
    position: relative;
    display: flex;
    flex-direction: column;
    width: min(1040px, 100%);
    max-height: min(860px, calc(100vh - 56px));
    overflow: hidden;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 24px 80px rgba(9, 20, 45, .28);
}

.memoSpecialtyModal__close {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 2;
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    color: var(--navy);
    font: inherit;
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}

.memoSpecialtyModal__head {
    padding: 26px 72px 18px 26px;
    border-bottom: 1px solid var(--line2);
    background: linear-gradient(135deg, #eef7ff 0%, #f8fbff 62%, #fff 100%);
}

.memoSpecialtyModal__head span {
    display: inline-flex;
    margin-bottom: 8px;
    color: var(--blue-dark);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.memoSpecialtyModal__head h3 {
    margin: 0;
    color: var(--navy);
    font-size: 28px;
    line-height: 1.15;
}

.memoSpecialtyModal__head p {
    margin: 10px 0 0;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.45;
}

.memoSpecialtyModal__body {
    display: grid;
    gap: 14px;
    overflow: auto;
    padding: 18px 26px 22px;
}

.memoSpecialtyModal__footer {
    position: sticky;
    bottom: 0;
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    border-top: 1px solid var(--line2);
    background: rgba(255, 255, 255, .96);
    padding: 14px 26px;
    box-shadow: 0 -12px 28px rgba(35, 71, 120, .08);
}

.memoAdditionalModal__dialog {
    width: min(820px, 100%);
}

.memoStatsModal__dialog {
    width: min(900px, 100%);
}

.memoStatsGrid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.memoStatsCard {
    display: grid;
    gap: 6px;
    min-height: 92px;
    align-content: center;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    padding: 14px;
}

.memoStatsCard strong {
    color: var(--navy);
    font-size: 24px;
    line-height: 1;
}

.memoStatsCard em {
    color: var(--muted);
    font-size: 12px;
    font-style: normal;
    line-height: 1.3;
}

.memoStatsBars,
.memoStatsQuota {
    display: grid;
    gap: 10px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #f8fbff;
    padding: 14px;
}

.memoStatsBars h4,
.memoStatsQuota h4 {
    margin: 0;
}

.memoStatsBar {
    display: grid;
    gap: 6px;
}

.memoStatsBar > div {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    color: var(--navy);
    font-size: 13px;
    font-weight: 900;
}

.memoStatsBar > em {
    display: block;
    height: 10px;
    overflow: hidden;
    border-radius: 999px;
    background: #e6edf8;
}

.memoStatsBar i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #4454ff 0%, #0b8cff 100%);
}

.memoStatsQuota p {
    margin: 0;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.4;
}

.memoAdditionalList {
    display: grid;
    gap: 10px;
}

.memoAdditionalItem {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 14px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    padding: 14px;
}

.memoAdditionalDate {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: var(--blue);
    color: #fff;
    padding: 0 10px;
    font-size: 14px;
    font-weight: 900;
}

.memoAdditionalItem strong,
.memoAdditionalItem span,
.memoAdditionalItem em,
.memoAdditionalItem p,
.memoAdditionalItem a {
    display: block;
}

.memoAdditionalItem strong {
    color: var(--navy);
    font-size: 16px;
    line-height: 1.3;
}

.memoAdditionalItem span {
    margin-top: 5px;
    color: var(--muted2);
    font-size: 13px;
    font-weight: 900;
}

.memoAdditionalItem p {
    margin: 8px 0 0;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.45;
}

.memoAdditionalItem a {
    margin-top: 8px;
    color: var(--blue-dark);
    font-size: 13px;
    font-weight: 900;
}

.memoAdditionalHistory {
    display: grid;
    gap: 10px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--line2);
}

.memoAdditionalHistory h4,
.memoDefermentChecks h4 {
    margin: 0;
    color: var(--navy);
    font-size: 17px;
    line-height: 1.25;
}

.memoAdditionalHistoryGrid {
    display: grid;
    gap: 10px;
}

.memoAdditionalHistoryItem {
    display: grid;
    gap: 10px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    padding: 14px;
}

.memoAdditionalHistoryHead {
    display: flex;
    gap: 10px;
    align-items: center;
}

.memoAdditionalHistoryHead span {
    display: inline-flex;
    min-height: 30px;
    align-items: center;
    border-radius: 8px;
    background: #eef1ff;
    color: var(--blue-dark);
    padding: 0 10px;
    font-size: 12px;
    font-weight: 900;
}

.memoAdditionalHistoryHead strong {
    color: var(--navy);
    font-size: 15px;
    line-height: 1.25;
}

.memoAdditionalText,
.memoAdditionalText p,
.memoAdditionalText li,
.memoAdditionalDates {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.45;
}

.memoAdditionalText p {
    margin: 0 0 8px;
}

.memoAdditionalText ul,
.memoAdditionalText ol {
    margin: 6px 0 0;
    padding-left: 18px;
}

.memoAdditionalDates {
    margin: 0;
    font-weight: 800;
}

.memoAdditionalPrograms {
    display: grid;
    gap: 6px;
}

.memoAdditionalPrograms div {
    display: grid;
    gap: 3px;
    border-radius: 8px;
    background: #f8fafc;
    padding: 9px;
}

.memoAdditionalPrograms strong,
.memoAdditionalPrograms span,
.memoAdditionalPrograms a,
.memoAdditionalHistoryLink {
    font-size: 12px;
    line-height: 1.35;
}

.memoAdditionalPrograms strong {
    color: var(--navy);
}

.memoAdditionalPrograms span {
    color: var(--muted);
}

.memoAdditionalPrograms a,
.memoAdditionalHistoryLink {
    color: var(--blue-dark);
    font-weight: 900;
}

.memoDefermentGrid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 10px;
}

.memoDefermentCard {
    display: grid;
    gap: 7px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    padding: 14px;
}

.memoDefermentCard span {
    color: var(--muted2);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.memoDefermentCard strong {
    color: var(--navy);
    font-size: 18px;
    line-height: 1.2;
}

.memoDefermentCard p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.45;
}

.memoDefermentChecks {
    display: grid;
    gap: 8px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #f8fafc;
    padding: 14px;
}

.memoDefermentChecks ul {
    display: grid;
    gap: 6px;
    margin: 0;
    padding-left: 18px;
}

.memoDefermentChecks li {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.45;
}

.memoSpecialtyLoading,
.memoSpecialtyEmpty {
    border: 1px dashed #c8d0e0;
    border-radius: 8px;
    background: #f8fafc;
    color: var(--muted);
    padding: 18px;
    font-weight: 800;
}

.memoSpecialtyFormSummaries {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 12px;
    margin-bottom: 14px;
}

.memoSpecialtyProgramsList {
    display: grid;
    gap: 12px;
}

.memoSpecialtyProgram {
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
}

.memoSpecialtyProgram__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: start;
    padding: 16px;
    background: #f8fafc;
    border-bottom: 1px solid var(--line2);
}

.memoSpecialtyProgram__head strong {
    display: block;
    color: var(--navy);
    font-size: 18px;
    line-height: 1.25;
}

.memoSpecialtyProgram__head span {
    display: block;
    margin-top: 5px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.35;
}

.memoSpecialtyProgram__price {
    color: var(--navy);
    font-size: 16px;
    font-weight: 900;
    white-space: nowrap;
}

.memoSpecialtyProgram__stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    padding: 14px 16px;
}

.memoSpecialtyProgram__stats div {
    display: grid;
    gap: 5px;
    align-content: start;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    padding: 10px;
}

.memoSpecialtyProgram__stats span {
    color: var(--muted2);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.memoSpecialtyProgram__stats strong {
    color: var(--navy);
    font-size: 14px;
    line-height: 1.3;
}

.memoSpecialtyProgram__stats small {
    color: var(--muted);
    font-size: 12px;
    line-height: 1.25;
}

.memoSpecialtyProgram__quota {
    display: grid;
    gap: 8px;
    margin: 0 16px 14px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #f8fbff;
    padding: 10px;
}

.memoSpecialtyProgram__quota > span {
    color: var(--muted2);
    font-size: 11px;
    font-weight: 900;
    line-height: 1.25;
    text-transform: uppercase;
}

.memoSpecialtyQuotaGrid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 6px;
}

.memoQuotaDetail {
    display: grid;
    gap: 3px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #f8fafc;
    padding: 8px;
}

.memoQuotaDetail.is-empty {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
}

.memoQuotaDetail strong {
    color: var(--navy);
    font-size: 12px;
    line-height: 1.25;
}

.memoQuotaDetail span {
    color: var(--muted);
    font-size: 12px;
    line-height: 1.25;
}

.memoProgramAbout {
    padding: 14px 16px 0;
}

.memoProgramAboutToggle {
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(57, 86, 255, .22);
    border-radius: 8px;
    background: #fff;
    color: var(--blue-dark);
    padding: 0 12px;
    font-family: inherit;
    font-size: 12px;
    font-weight: 900;
    cursor: pointer;
}

.memoProgramAboutToggle:hover,
.memoProgramAboutToggle.is-open {
    border-color: var(--blue);
    background: #eef7ff;
}

.memoProgramAboutPanel {
    display: grid;
    gap: 10px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #f8fafc;
    padding: 12px;
}

.memoProgramAboutPanel span {
    display: block;
    color: var(--muted2);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.memoProgramAboutPanel p,
.memoProgramAboutText,
.memoProgramAboutText p,
.memoProgramAboutText li {
    margin: 3px 0 0;
    color: var(--ink);
    font-size: 13px;
    line-height: 1.45;
}

.memoProgramAboutText p {
    margin: 0 0 8px;
}

.memoProgramAboutText p:last-child,
.memoProgramAboutText ul:last-child,
.memoProgramAboutText ol:last-child {
    margin-bottom: 0;
}

.memoProgramAboutText ul,
.memoProgramAboutText ol {
    display: grid;
    gap: 4px;
    margin: 7px 0 0;
    padding-left: 18px;
}

.memoProgramAboutText a {
    color: var(--blue-dark);
    font-weight: 900;
}

.memoSpecialtyProgram h4 {
    margin: 4px 16px 10px;
    color: var(--navy);
    font-size: 15px;
    line-height: 1.25;
}

.memoSpecialtyHistory {
    overflow-x: auto;
    margin: 0 16px 16px;
    border: 1px solid var(--line2);
    border-radius: 8px;
}

.memoSpecialtyHistory table {
    width: 100%;
    min-width: 640px;
    border-collapse: separate;
    border-spacing: 0;
}

.memoSpecialtyHistory th,
.memoSpecialtyHistory td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--line2);
    text-align: left;
    vertical-align: top;
}

.memoSpecialtyHistory tr:last-child td {
    border-bottom: 0;
}

.memoSpecialtyHistory th {
    background: #f8fafc;
    color: var(--muted2);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.memoSpecialtyHistory td {
    color: var(--ink);
    font-size: 13px;
    line-height: 1.35;
}

.memoSpecialtyHistory small {
    display: block;
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
}

.memoQuotaSummary {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 12px;
}

.memoQuotaSummary span {
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    color: var(--navy);
    padding: 0 10px;
    font-size: 13px;
    font-weight: 900;
}

.memoQuotaCards {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}

.memoQuotaCard {
    display: grid;
    gap: 10px;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    padding: 14px;
    box-shadow: 0 10px 24px rgba(35, 71, 120, .05);
}

.memoQuotaCard span {
    display: block;
    color: var(--muted2);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.memoQuotaCard strong {
    display: block;
    margin-top: 4px;
    color: var(--navy);
    font-size: 18px;
    line-height: 1.2;
}

.memoQuotaCard p,
.memoQuotaCard ul {
    margin: 0;
}

.memoQuotaTable {
    min-width: 1180px;
}

.memoTimelineTable {
    min-width: 860px;
}

.memoCalendarSummary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 12px;
}

.memoCalendarSummary div {
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    padding: 14px;
}

.memoCalendarSummary span {
    display: block;
    color: var(--muted2);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.memoCalendarSummary strong {
    display: block;
    margin-top: 4px;
    color: var(--navy);
    font-size: 26px;
    line-height: 1;
}

.memoCalendarControls {
    display: grid;
    gap: 10px;
    margin-bottom: 14px;
}

.memoCalendarSourceNote {
    display: grid;
    gap: 4px;
    border: 1px solid #bfd7ff;
    border-radius: 8px;
    background: #eef7ff;
    padding: 12px 14px;
}

.memoCalendarSourceNote strong {
    color: var(--blue-dark);
    font-size: 13px;
    font-weight: 900;
}

.memoCalendarSourceNote span {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.45;
}

.memoCalendarScenarioTabs,
.memoCalendarForms {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    min-width: 0;
    max-width: 100%;
}

.memoCalendarScenarioTabs button,
.memoCalendarForms button {
    display: inline-flex;
    min-height: 30px;
    align-items: center;
    border: 0;
    border-radius: 999px;
    background: #eef1ff;
    color: var(--blue-dark);
    padding: 0 10px;
    font-family: inherit;
    font-size: 12px;
    font-weight: 900;
    cursor: pointer;
}

.memoCalendarForms button {
    min-height: 36px;
    border: 1px solid #c8d9f5;
    border-radius: 8px;
    background: #fff;
    color: var(--navy);
    padding: 0 14px;
    font-size: 13px;
}

.memoCalendarScenarioTabs {
    width: fit-content;
    max-width: 100%;
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #f8fafc;
    padding: 7px;
}

.memoCalendarForms button:hover,
.memoCalendarForms button.is-active,
.memoCalendarScenarioTabs button:hover,
.memoCalendarScenarioTabs button.is-active {
    background: var(--blue);
    color: #fff;
}

.memoCalendarForms button:hover,
.memoCalendarForms button.is-active {
    border-color: var(--blue);
}

.memoCalendarSections {
    display: grid;
    gap: 14px;
}

.memoCalendarSection {
    border: 1px solid var(--line2);
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 10px 28px rgba(35, 71, 120, .05);
}

.memoCalendarSectionHead {
    padding: 16px 18px;
    background: #f8fafc;
    border-bottom: 1px solid var(--line2);
}

.memoCalendarSectionHead h3 {
    margin: 0 0 5px;
    color: var(--navy);
    font-size: 20px;
    line-height: 1.25;
}

.memoCalendarSectionHead p {
    margin: 0;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.45;
}

.memoCalendarEvents {
    display: grid;
}

.memoCalendarEvent {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 14px;
    padding: 15px 18px;
    border-bottom: 1px solid var(--line2);
}

.memoCalendarEvent:last-child {
    border-bottom: 0;
}

.memoCalendarEvent.is-additional {
    background: #fffaf0;
}

.memoCalendarDate {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: var(--blue-dark);
    color: #fff;
    padding: 0 10px;
    font-size: 14px;
    font-weight: 900;
    white-space: nowrap;
}

.memoCalendarEvent.is-additional .memoCalendarDate {
    background: #8a5f00;
}

.memoCalendarEvent strong,
.memoCalendarEvent span,
.memoCalendarEvent em,
.memoCalendarEvent p,
.memoCalendarEvent a {
    display: block;
}

.memoCalendarEvent strong {
    color: var(--navy);
    font-size: 16px;
    line-height: 1.3;
}

.memoCalendarEvent span,
.memoCalendarMeta {
    margin-top: 4px;
    color: var(--muted2);
    font-size: 13px;
    font-weight: 900;
}

.memoCalendarDateText,
.memoAdditionalDateText,
.memoCalendarSource {
    margin-top: 6px;
    color: var(--blue-dark);
    font-size: 14px;
    font-style: normal;
    font-weight: 900;
}

.memoCalendarSource {
    display: inline-flex !important;
    width: max-content;
    max-width: 100%;
    border-radius: 999px;
    background: #eef1ff;
    color: var(--muted2);
    padding: 4px 8px;
    font-size: 11px;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.memoCalendarEvent p {
    margin: 7px 0 0;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.45;
}

.memoCalendarDescription {
    max-width: 860px;
}

.memoCalendarAction {
    color: var(--navy) !important;
    font-weight: 800;
}

.memoCalendarEvent a {
    margin-top: 7px;
    color: var(--blue-dark);
    font-size: 13px;
    font-weight: 900;
    text-decoration: none;
}

.memoEmptyState {
    border: 1px dashed #c8d0e0;
    border-radius: 8px;
    background: #f8fafc;
    color: var(--muted);
    padding: 18px;
    font-size: 15px;
    line-height: 1.5;
}

.memoStepGrid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.memoStepGrid .strategyCard {
    min-height: 0;
}

.memoStepGrid .strategyCard h3 {
    font-size: 18px;
    line-height: 1.25;
}

.memoStepGrid .strategyCard p {
    font-size: 14px;
    line-height: 1.5;
}

.memoStepPeriod {
    display: inline-flex;
    margin-bottom: 10px;
    border-radius: 999px;
    background: #eef1ff;
    color: var(--blue-dark);
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 900;
}

.memoStepLinks {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 12px 0 4px;
}

.memoStepLinks a {
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(57, 86, 255, .22);
    border-radius: 8px;
    background: #eef7ff;
    color: var(--blue-dark);
    padding: 0 12px;
    font-size: 13px;
    font-weight: 900;
    text-decoration: none;
}

.memoStepLinks a:hover {
    border-color: var(--blue);
    background: #e1f0ff;
}

@media (max-width: 980px) {
    .memoCoverGrid,
    .memoStepBlocks,
    .memoStepGrid,
    .memoActionGrid,
    .memoCoverStats,
    .memoFitHero,
    .memoContentsList--page,
    .memoContentsGrid,
    .memoGuideBridge,
    .memoApplicantSummary,
    .memoInstitutionGrid,
    .memoInstitutionInsightGrid,
    .memoWatchGrid,
    .memoQuotaCards,
    .memoApplyBox,
    .memoApplyStrategy,
    .memoProgramGroupHead,
    .memoFitQuotaSummary,
    .memoSpecialtyProgram__stats,
    .memoProgramFormSummary dl,
    .memoFormCompetition,
    .memoCalendarSummary {
        grid-template-columns: 1fr;
    }

    .memoStatsGrid,
    .memoQuotaMiniGrid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .memoSummaryChances {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .memoSummaryChances a {
        grid-column: 1 / -1;
    }

    .memoApplyList {
        justify-content: flex-start;
    }

    .memoProgramGroupTitleRow {
        flex-direction: column;
    }

    .memoCoverStart {
        grid-template-columns: 1fr;
    }

    .memoCoverChanceSummary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .memoCoverChanceSummary div {
        min-width: 0;
    }

    .memoCoverChanceSummary span {
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .memoProgramGroupActions {
        justify-content: flex-start;
    }

    .memoFitHeroActions {
        justify-self: start;
    }

    .memoFitHeroActions a,
    .memoFitHeroActions button {
        white-space: normal;
    }

    .memoProgramGroupStats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .memoFitQuotaGrid,
    .memoAchievementList,
    .memoProgramGroupQuotas,
    .memoFormQuotaGrid,
    .memoAdmissionScenarioGrid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .memoFilterGrid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .memoFilterGrid--single {
        grid-template-columns: minmax(180px, 320px);
    }

    .memoFilterFooter {
        align-items: flex-start;
        flex-direction: column;
    }

    .memoIdentity {
        justify-items: start;
    }
}

@media (max-width: 640px) {
    .institutionMemoPage--example {
        padding-top: 0;
    }

    .institutionMemoPage--example .memoGuideShell {
        padding-top: 112px;
    }

    .memoDemoNotice {
        min-height: 96px;
        align-items: flex-start;
        justify-content: center;
        flex-direction: column;
        gap: 4px;
        padding: 10px 14px;
    }

    .memoDemoNotice strong {
        white-space: normal;
    }

    .institutionMemoPage .memoCover {
        padding: 24px;
    }

    .memoCoverLead {
        font-size: 16px;
    }

    .memoCoverActions,
    .memoCoverAction {
        width: 100%;
    }

    .memoCoverStart > a {
        min-height: 54px;
    }

    .memoCoverChanceSummary {
        gap: 8px;
    }

    .memoCoverChanceSummary div {
        min-height: 58px;
        padding: 10px;
    }

    .memoCoverChanceSummary span {
        font-size: 10px;
        line-height: 1.15;
    }

    .memoCoverChanceSummary strong {
        font-size: 22px;
    }

    .memoExamplePreviewGrid,
    .memoExamplePreviewGrid--three,
    .memoExampleLockedSpecialties {
        grid-template-columns: minmax(0, 1fr);
    }

    .memoFitHero {
        padding: 14px;
    }

    .memoFitHero h3 {
        font-size: 20px;
    }

    .memoFitHeroStats {
        grid-template-columns: 1fr;
    }

    .memoFitQuotaGrid,
    .memoContentsList--page,
    .memoAchievementList,
    .memoSummaryChances,
    .memoStatsGrid,
    .memoQuotaMiniGrid,
    .memoInstitutionInsightGrid,
    .memoProgramGroupQuotas,
    .memoFormQuotaGrid,
    .memoAdmissionScenarioGrid,
    .memoProgramFormSummaries,
    .memoSpecialtyFormSummaries {
        grid-template-columns: 1fr;
    }

    .memoFitHeroActions,
    .memoFilterActions,
    .memoRecalculateButton,
    .memoResetButton {
        width: 100%;
    }

    .memoChanceTabs button {
        flex: 1 1 150px;
        justify-content: center;
    }

    .memoSpecialtyModal {
        padding: 0;
        align-items: stretch;
    }

    .memoSpecialtyModal__dialog {
        width: 100%;
        max-height: 100vh;
        border-radius: 0;
    }

    .memoSpecialtyModal__head {
        padding: 22px 58px 16px 18px;
    }

    .memoSpecialtyModal__head h3 {
        font-size: 22px;
    }

    .memoSpecialtyModal__body {
        padding: 14px;
    }

    .memoSpecialtyModal__footer {
        flex-direction: column;
        padding: 12px 14px;
    }

    .memoSpecialtyProgram__head,
    .memoSpecialtyProgram__stats {
        grid-template-columns: 1fr;
    }

    .memoSpecialtyProgram__price {
        white-space: normal;
    }

    .memoAdditionalItem {
        grid-template-columns: 1fr;
    }

    .memoAdditionalDate {
        justify-content: flex-start;
        width: fit-content;
    }

    .memoFilterGrid,
    .memoFilterGrid--single,
    .memoApplicantSummary {
        grid-template-columns: 1fr;
    }

    .memoRoadmapItem {
        grid-template-columns: 1fr;
    }

    .memoCalendarEvent {
        grid-template-columns: 1fr;
    }

    .memoCalendarDate {
        justify-content: flex-start;
        width: fit-content;
    }

    .memoCalendarControls,
    .memoCalendarSourceNote,
    .memoCalendarForms,
    .memoCalendarScenarioTabs {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    .memoCalendarForms,
    .memoCalendarScenarioTabs {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 7px;
    }

    .memoCalendarForms button,
    .memoCalendarScenarioTabs button {
        width: 100%;
        min-width: 0;
        justify-content: center;
        white-space: normal;
        line-height: 1.15;
        padding: 7px 8px;
        text-align: center;
    }

    .memoProgramGroupStats {
        grid-template-columns: 1fr;
    }

    .memoApplyBox {
        padding: 14px;
        overflow: hidden;
    }

    .memoApplyList {
        display: block;
        width: 100%;
        min-width: 0;
    }

    .memoApplyList .memoApplyTable {
        display: block;
        border: 0;
        border-radius: 0;
        background: transparent;
        overflow: visible;
    }

    .memoApplyTable thead {
        display: none;
    }

    .memoApplyTable tbody {
        display: grid;
        gap: 10px;
    }

    .memoApplyTable tr {
        display: grid;
        gap: 10px;
        border: 1px solid var(--line2);
        border-radius: 8px;
        background: #fff;
        padding: 12px;
    }

    .memoApplyTable td {
        display: grid;
        gap: 6px;
        min-width: 0;
        padding: 0;
        border-bottom: 0;
    }

    .memoApplyTable td::before {
        content: attr(data-label);
        color: var(--muted2);
        font-size: 11px;
        font-weight: 900;
        letter-spacing: .04em;
        line-height: 1.2;
        text-transform: uppercase;
    }

    .memoApplyTable td:first-child::before {
        display: none;
    }

    .memoApplyList .memoApplyTable .memoSelectedChance {
        display: flex;
        width: 100%;
        min-height: 0;
        align-items: flex-start;
        border-radius: 8px;
        padding: 7px 8px;
        line-height: 1.3;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .memoApplyActions {
        justify-content: flex-start;
    }

    .memoApplyActions .memoTinyButton,
    .memoApplyTable .memoTinyButton--wide {
        width: 100%;
        min-width: 0;
        min-height: 38px;
        white-space: normal;
    }

    .memoProgramGroupMeta .memoProgramGroupChance.is-split,
    .memoProgramGroupMeta .memoChanceParts,
    .memoProgramGroupMeta .memoQuotaResultParts {
        width: 100%;
    }

    .memoDocumentsInline {
        padding: 14px;
    }

    .memoDocumentsInline__head {
        flex-direction: column;
    }

    .memoProgramsTable th,
    .memoProgramsTable td {
        padding: 11px 12px;
    }

    .memoProgramsTableWrap--nested {
        overflow-x: auto;
    }

    .memoProgramsTable--grouped {
        min-width: 760px;
    }
}
