:root {
    --fr-navy: #062b61;
    --fr-navy-deep: #031c42;
    --fr-blue: #155db4;
    --fr-orange: #f56b16;
    --fr-green: #138a50;
    --fr-red: #c73737;
    --fr-amber: #b76800;
    --fr-text: #10213d;
    --fr-muted: #61708a;
    --fr-border: #dce3ed;
    --fr-surface: #f5f8fc;
    --fr-white: #ffffff;
    --fr-shadow: 0 18px 46px rgba(6, 43, 97, 0.10);
    --fr-radius: 14px;
}

.franchise-public,
.franchise-app-shell,
.franchise-portal-shell {
    color: var(--fr-text);
    font-family: "Inter", "Segoe UI", Arial, sans-serif;
}

.franchise-public *,
.franchise-app-shell *,
.franchise-portal-shell * {
    box-sizing: border-box;
}

.fr-container {
    width: min(1240px, calc(100% - 48px));
    margin-inline: auto;
}

.fr-btn {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px 20px;
    border: 1px solid transparent;
    border-radius: 8px;
    font: inherit;
    font-weight: 750;
    line-height: 1.1;
    text-decoration: none;
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.fr-btn:hover { transform: translateY(-2px); }
.fr-btn:focus-visible,
.franchise-public a:focus-visible,
.franchise-app-shell a:focus-visible,
.franchise-portal-shell a:focus-visible,
.fr-field input:focus-visible,
.fr-field select:focus-visible,
.fr-field textarea:focus-visible {
    outline: 3px solid rgba(245, 107, 22, .35);
    outline-offset: 3px;
}
.fr-btn-primary { color: #fff; background: var(--fr-orange); box-shadow: 0 10px 22px rgba(245, 107, 22, .24); }
.fr-btn-primary:hover { background: #d95508; }
.fr-btn-secondary { color: var(--fr-navy); background: #fff; border-color: #aebdd1; }
.fr-btn-secondary:hover { background: #f5f8fc; }
.fr-btn-danger { color: #fff; background: var(--fr-red); }
.fr-btn-small { min-height: 38px; padding: 8px 13px; font-size: .88rem; }
.fr-btn[disabled] { opacity: .55; cursor: not-allowed; transform: none; }

.fr-hero {
    background: #fff;
    border-bottom: 1px solid var(--fr-border);
}
.fr-hero-grid {
    min-height: 620px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(480px, 1.02fr);
    align-items: stretch;
}
.fr-hero-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 78px 64px 78px 0;
}
.fr-hero h1 {
    max-width: 720px;
    margin: 0 0 22px;
    color: var(--fr-navy);
    font-size: clamp(3rem, 6vw, 5.8rem);
    line-height: .97;
    letter-spacing: -.055em;
}
.fr-hero p {
    max-width: 660px;
    margin: 0;
    color: #455671;
    font-size: clamp(1.05rem, 1.5vw, 1.28rem);
    line-height: 1.7;
}
.fr-hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; }
.fr-hero-media { min-height: 620px; overflow: hidden; }
.fr-hero-media img { width: 100%; height: 100%; object-fit: cover; display: block; }

.fr-section { padding: 82px 0; background: #fff; }
.fr-section-soft { background: var(--fr-surface); }
.fr-section-navy { color: #fff; background: var(--fr-navy); }
.fr-section-head { max-width: 760px; margin-bottom: 38px; }
.fr-section-head-center { margin-inline: auto; text-align: center; }
.fr-section h2 { margin: 0 0 13px; color: var(--fr-navy); font-size: clamp(2rem, 4vw, 3.3rem); line-height: 1.08; letter-spacing: -.035em; }
.fr-section-navy h2 { color: #fff; }
.fr-section-head p { margin: 0; color: var(--fr-muted); font-size: 1.08rem; line-height: 1.7; }
.fr-section-navy .fr-section-head p { color: #cbd8eb; }

.fr-benefits {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-block: 1px solid var(--fr-border);
}
.fr-benefit { padding: 30px 28px; border-right: 1px solid var(--fr-border); }
.fr-benefit:nth-child(3n) { border-right: 0; }
.fr-benefit i { color: var(--fr-orange); font-size: 1.8rem; margin-bottom: 18px; }
.fr-benefit h3 { margin: 0 0 8px; font-size: 1.08rem; }
.fr-benefit p { margin: 0; color: var(--fr-muted); line-height: 1.6; }

.fr-check-columns,
.fr-split {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 48px;
}
.fr-check-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 16px; }
.fr-check-list li { position: relative; padding-left: 32px; line-height: 1.55; }
.fr-check-list li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--fr-orange); font-weight: 900; }

.fr-timeline { display: grid; grid-template-columns: repeat(5, 1fr); margin-top: 44px; }
.fr-timeline-step { position: relative; padding: 48px 20px 0; text-align: center; }
.fr-timeline-step::before { content: ""; position: absolute; top: 17px; left: 0; right: 0; height: 2px; background: #9ab0cb; }
.fr-timeline-step:first-child::before { left: 50%; }
.fr-timeline-step:last-child::before { right: 50%; }
.fr-timeline-number { position: absolute; z-index: 1; top: 0; left: 50%; width: 36px; height: 36px; transform: translateX(-50%); display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--fr-navy); font-weight: 850; }
.fr-timeline-step h3 { margin: 0 0 8px; }
.fr-timeline-step p { margin: 0; color: var(--fr-muted); font-size: .94rem; line-height: 1.55; }

.fr-course-band { display: grid; grid-template-columns: 1fr 1.05fr; overflow: hidden; border-radius: var(--fr-radius); background: var(--fr-navy); box-shadow: var(--fr-shadow); }
.fr-course-copy { padding: 46px; color: #fff; }
.fr-course-copy h2 { color: #fff; }
.fr-course-copy p { color: #cfdaea; line-height: 1.7; }
.fr-course-band img { width: 100%; height: 100%; min-height: 390px; object-fit: cover; display: block; }

.fr-responsibility { padding: 36px; border: 1px solid var(--fr-border); background: #fff; }
.fr-responsibility h3 { margin-top: 0; color: var(--fr-navy); font-size: 1.5rem; }
.fr-disclaimer { margin-top: 24px; padding: 20px 24px; border: 1px solid #aebdd1; border-left: 4px solid var(--fr-orange); background: #fff; line-height: 1.6; }

.fr-faq { border-top: 1px solid var(--fr-border); }
.fr-faq details { border-bottom: 1px solid var(--fr-border); }
.fr-faq summary { padding: 20px 4px; color: var(--fr-navy); font-weight: 750; cursor: pointer; list-style: none; }
.fr-faq summary::-webkit-details-marker { display: none; }
.fr-faq summary::after { content: "+"; float: right; color: var(--fr-orange); font-size: 1.35rem; }
.fr-faq details[open] summary::after { content: "−"; }
.fr-faq details p { max-width: 850px; margin: -4px 0 22px; color: var(--fr-muted); line-height: 1.7; }

.fr-cta-band { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 36px 42px; border-radius: var(--fr-radius); color: #fff; background: var(--fr-navy); }
.fr-cta-band h2 { margin: 0 0 8px; color: #fff; font-size: 2rem; }
.fr-cta-band p { margin: 0; color: #cfdaea; }

.fr-home-partner {
    padding: 72px 0;
    color: #fff;
    background: var(--fr-navy);
}
.fr-home-partner-layout {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(620px, 1.1fr);
    align-items: center;
    gap: 54px;
}
.fr-home-partner-copy h2 {
    margin: 0 0 16px;
    color: #fff;
    font-size: clamp(2.15rem, 4vw, 3.8rem);
    line-height: 1.05;
    letter-spacing: -.04em;
}
.fr-home-partner-copy p { margin: 0; color: #cfdaea; font-size: 1.05rem; line-height: 1.7; }
.fr-home-partner-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.fr-home-partner-process { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; padding: 0; list-style: none; }
.fr-home-partner-process li { position: relative; min-height: 170px; padding: 54px 18px 12px; border-left: 1px solid rgba(255,255,255,.2); }
.fr-home-partner-process li:first-child { border-left: 0; }
.fr-home-partner-process span { position: absolute; top: 0; left: 18px; width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; color: var(--fr-orange); font-weight: 900; }
.fr-home-partner-process strong { display: block; margin-bottom: 8px; font-size: 1.08rem; }
.fr-home-partner-process small { color: #cfdaea; font-size: .87rem; line-height: 1.55; }

.franchise-app-shell { min-height: 100vh; margin: 0; background: var(--fr-surface); }
.fr-app-topbar { background: var(--fr-navy); color: #fff; }
.fr-app-topbar-inner { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 22px; }
.fr-app-brand { display: inline-flex; align-items: center; gap: 13px; color: #fff; font-weight: 850; text-decoration: none; }
.fr-app-brand img { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; background: #fff; }
.fr-app-nav { display: flex; align-items: center; gap: 22px; }
.fr-app-nav a { color: #e9f1fb; text-decoration: none; font-weight: 650; }
.fr-app-main { padding: 42px 0 72px; }
.fr-page-title h1 { margin: 0 0 8px; color: var(--fr-navy); font-size: clamp(2rem, 4vw, 3.2rem); letter-spacing: -.04em; }
.fr-page-title p { margin: 0; color: var(--fr-muted); }

.fr-stepper { display: grid; grid-template-columns: repeat(5, 1fr); margin: 34px 0; padding: 0; list-style: none; }
.fr-step { position: relative; padding-top: 42px; text-align: center; color: var(--fr-muted); font-size: .84rem; cursor: default; user-select: none; }
.fr-step::before { content: ""; position: absolute; top: 15px; left: 0; right: 0; height: 2px; background: var(--fr-border); }
.fr-step:first-child::before { left: 50%; }
.fr-step:last-child::before { right: 50%; }
.fr-step span { position: absolute; z-index: 1; top: 0; left: 50%; width: 32px; height: 32px; transform: translateX(-50%); display: grid; place-items: center; border: 2px solid #bcc8d8; border-radius: 50%; background: #fff; font-weight: 800; transition: all .25s ease; }
.fr-step.is-active { color: var(--fr-navy); font-weight: 800; }
.fr-step.is-active span { color: #fff; border-color: var(--fr-orange); background: var(--fr-orange); box-shadow: 0 4px 12px rgba(245, 107, 22, .3); }
.fr-step.is-complete span { color: #fff; border-color: var(--fr-navy); background: var(--fr-navy); }
.fr-step.is-complete,
.fr-step.is-clickable { cursor: pointer; }
.fr-step.is-complete:hover span,
.fr-step.is-clickable:hover span { transform: translateX(-50%) scale(1.12); }
.fr-step.is-complete::before { background: var(--fr-navy); }
.fr-step.is-active::before { background: linear-gradient(90deg, var(--fr-navy) 0%, var(--fr-border) 100%); }

/* Wizard step panels */
.fr-wizard-step { display: none; animation: frStepFadeIn .35s ease; }
.fr-wizard-step.is-active { display: block; }
@keyframes frStepFadeIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }

/* Wizard navigation bar */
.fr-wizard-nav { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--fr-border); }
.fr-wizard-nav .fr-btn { min-width: 140px; }
.fr-wizard-nav .fr-wizard-nav-spacer { flex: 1; }
.fr-wizard-step-title { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; }
.fr-wizard-step-title .fr-step-number { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; color: #fff; background: var(--fr-orange); font-weight: 850; font-size: 1rem; flex-shrink: 0; }
.fr-wizard-step-title h2 { margin: 0; color: var(--fr-navy); font-size: 1.25rem; }
.fr-wizard-step-title p { margin: 4px 0 0; color: var(--fr-muted); font-size: .88rem; }

.fr-app-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 24px; align-items: start; }
.fr-panel { border: 1px solid var(--fr-border); border-radius: var(--fr-radius); background: #fff; box-shadow: 0 9px 25px rgba(6, 43, 97, .05); }
.fr-panel-head { padding: 22px 24px; border-bottom: 1px solid var(--fr-border); }
.fr-panel-head h2,
.fr-panel-head h3 { margin: 0; color: var(--fr-navy); }
.fr-panel-body { padding: 26px; }
.fr-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.fr-field-full { grid-column: 1 / -1; }
.fr-field label { display: block; margin-bottom: 7px; color: #253854; font-size: .91rem; font-weight: 750; }
.fr-field label .required { color: var(--fr-red); }
.fr-field input,
.fr-field select,
.fr-field textarea { width: 100%; min-height: 46px; padding: 11px 13px; border: 1px solid #b9c6d7; border-radius: 7px; color: var(--fr-text); background: #fff; font: inherit; }
.fr-field textarea { min-height: 112px; resize: vertical; }
.fr-field small { display: block; margin-top: 6px; color: var(--fr-muted); }
.fr-checkboxes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.fr-checkbox { display: flex; align-items: flex-start; gap: 9px; line-height: 1.45; }
.fr-checkbox input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--fr-navy); }
.fr-form-actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--fr-border); }

.fr-alert { margin: 20px 0; padding: 15px 18px; border: 1px solid; border-radius: 8px; line-height: 1.55; }
.fr-alert-error { color: #771e1e; border-color: #efb6b6; background: #fff5f5; }
.fr-alert-success { color: #0e663a; border-color: #a9dec3; background: #f0fff7; }
.fr-alert-info { color: #214f84; border-color: #b9d1ee; background: #f2f7fd; }

.fr-summary-list { margin: 0; padding: 0; list-style: none; }
.fr-summary-list li { display: flex; justify-content: space-between; gap: 16px; padding: 13px 0; border-bottom: 1px solid var(--fr-border); }
.fr-summary-list li:last-child { border-bottom: 0; }
.fr-summary-list span { color: var(--fr-muted); }
.fr-status { display: inline-flex; align-items: center; min-height: 28px; padding: 4px 9px; border-radius: 5px; font-size: .78rem; font-weight: 800; text-transform: capitalize; }
.fr-status-draft, .fr-status-pending { color: #745000; background: #fff3c9; }
.fr-status-submitted, .fr-status-under_review { color: #164c80; background: #dceeff; }
.fr-status-information_required, .fr-status-suspended, .fr-status-expired { color: #8b4b00; background: #ffe8cd; }
.fr-status-approved, .fr-status-active, .fr-status-issued, .fr-status-clean { color: #0e663a; background: #dff6e9; }
.fr-status-rejected, .fr-status-revoked, .fr-status-failed { color: #812323; background: #fde1e1; }

.fr-upload-box { padding: 24px; border: 2px dashed #b9c6d7; border-radius: 9px; text-align: center; background: #f9fbfe; }
.fr-doc-list { margin-top: 18px; display: grid; gap: 10px; }
.fr-doc-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--fr-border); }

.fr-timeline-vertical { position: relative; margin: 0; padding: 0 0 0 30px; list-style: none; }
.fr-timeline-vertical::before { content: ""; position: absolute; top: 6px; bottom: 6px; left: 9px; width: 2px; background: #c6d1df; }
.fr-event { position: relative; padding: 0 0 24px 16px; }
.fr-event::before { content: ""; position: absolute; top: 4px; left: -27px; width: 12px; height: 12px; border: 3px solid #fff; border-radius: 50%; background: var(--fr-blue); box-shadow: 0 0 0 2px var(--fr-blue); }
.fr-event h4 { margin: 0 0 5px; color: var(--fr-navy); }
.fr-event p { margin: 0; color: var(--fr-muted); line-height: 1.55; }
.fr-event time { display: block; margin-bottom: 7px; color: #7a879b; font-size: .82rem; }

.franchise-portal-shell { min-height: 100vh; margin: 0; background: #f5f7fb; }
.fr-portal-layout { min-height: 100vh; display: grid; grid-template-columns: 265px minmax(0, 1fr); }
.fr-portal-sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 22px 16px; color: #fff; background: var(--fr-navy-deep); }
.fr-portal-brand { display: flex; align-items: center; gap: 12px; padding: 0 8px 20px; color: #fff; text-decoration: none; font-weight: 850; }
.fr-portal-brand img { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; background: #fff; }
.fr-portal-nav { display: grid; gap: 4px; margin-top: 12px; }
.fr-portal-nav a { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 10px 13px; border-radius: 7px; color: #dbe7f6; text-decoration: none; font-weight: 650; }
.fr-portal-nav a:hover, .fr-portal-nav a.is-active { color: #fff; background: #104a8e; }
.fr-portal-nav i { width: 20px; text-align: center; }
.fr-portal-sidebar-note { margin-top: auto; padding: 14px; border: 1px solid rgba(255,255,255,.18); border-radius: 8px; color: #cbd8eb; font-size: .84rem; line-height: 1.5; }
.fr-portal-main { min-width: 0; }
.fr-portal-topbar { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 28px; border-bottom: 1px solid var(--fr-border); background: #fff; }
.fr-context { display: flex; align-items: center; gap: 12px; }
.fr-context select { min-height: 42px; padding: 8px 34px 8px 12px; border: 1px solid #b9c6d7; border-radius: 7px; color: var(--fr-text); background: #fff; font: inherit; font-weight: 700; }
.fr-portal-user { display: flex; align-items: center; gap: 15px; color: var(--fr-muted); }
.fr-portal-content { padding: 28px; }
.fr-portal-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.fr-portal-heading h1 { margin: 0; color: var(--fr-navy); font-size: 2rem; }
.fr-portal-heading p { margin: 5px 0 0; color: var(--fr-muted); }
.fr-metric-note { padding: 11px 14px; border: 1px solid #bed3ec; border-radius: 7px; color: #1d5085; background: #f2f7fd; font-size: .9rem; }
.fr-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 15px 0 22px; }
.fr-metric { min-height: 150px; padding: 20px; border: 1px solid var(--fr-border); border-radius: 10px; background: #fff; }
.fr-metric strong { display: block; margin: 12px 0 8px; color: var(--fr-navy); font-size: 2rem; }
.fr-metric span { color: var(--fr-muted); font-size: .84rem; line-height: 1.4; }
.fr-metric i { color: var(--fr-orange); }
.fr-dashboard-grid { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 18px; align-items: start; }
.fr-stack { display: grid; gap: 18px; }
.fr-table-wrap { overflow-x: auto; }
.fr-table { width: 100%; border-collapse: collapse; }
.fr-table th, .fr-table td { padding: 13px 14px; border-bottom: 1px solid var(--fr-border); text-align: left; white-space: nowrap; }
.fr-table th { color: #53627a; background: #f8fafc; font-size: .78rem; letter-spacing: .02em; text-transform: uppercase; }
.fr-table td { color: #253854; font-size: .9rem; }
.fr-empty { padding: 40px 24px; color: var(--fr-muted); text-align: center; }
.fr-portal-menu { display: none; width: 42px; height: 42px; border: 1px solid var(--fr-border); border-radius: 7px; color: var(--fr-navy); background: #fff; cursor: pointer; }
.fr-field-wide { grid-column: 1 / -1; }
.fr-field small { color: var(--fr-muted); line-height: 1.45; }
.fr-filter-bar { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; padding: 14px; border: 1px solid var(--fr-border); border-radius: 9px; background: #fff; }
.fr-filter-bar input, .fr-filter-bar select, .fr-inline-form input, .fr-inline-form select { min-height: 40px; padding: 8px 11px; border: 1px solid #b9c6d7; border-radius: 6px; color: var(--fr-text); background: #fff; font: inherit; }
.fr-filter-bar input { min-width: min(100%, 320px); flex: 1; }
.fr-inline-form { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.fr-inline-form input { width: 180px; }
.fr-person { display: flex; align-items: center; gap: 11px; }
.fr-avatar { width: 42px; height: 42px; flex: 0 0 42px; display: grid; place-items: center; overflow: hidden; border-radius: 50%; color: #fff; background: var(--fr-blue); font-weight: 850; }
.fr-avatar img { width: 100%; height: 100%; object-fit: cover; }
.fr-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.fr-security-note { display: flex; align-items: center; gap: 9px; color: var(--fr-muted); font-size: .86rem; }
.fr-pagination { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 18px 0; }
.fr-pagination-info { font-size: .88rem; color: var(--fr-muted); }
.fr-wrap-cell { min-width: 230px; white-space: normal !important; line-height: 1.45; }
.fr-quick-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; border: 1px solid var(--fr-border); background: var(--fr-border); }
.fr-quick-stats span { padding: 17px; color: var(--fr-muted); background: #fff; font-size: .82rem; }
.fr-quick-stats b { display: block; margin-bottom: 4px; color: var(--fr-navy); font-size: 1.25rem; }
.fr-compact-form { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)) auto; align-items: end; gap: 12px; padding: 18px 24px; border-block: 1px solid var(--fr-border); background: #f8fafc; }
.fr-mark-input { width: 64px; min-height: 38px; padding: 6px; border: 1px solid #b9c6d7; border-radius: 5px; font: inherit; }

.fr-verify-wrap { max-width: 920px; }
.fr-verify-form { max-width: 620px; margin-inline: auto; }
.fr-verify-result { display: grid; grid-template-columns: auto 1fr; gap: 22px; margin-top: 24px; padding: 28px; border: 1px solid var(--fr-border); border-left: 5px solid #7b8798; background: #fff; }
.fr-verify-valid { border-left-color: var(--fr-green); }
.fr-verify-revoked, .fr-verify-expired, .fr-verify-not_found { border-left-color: var(--fr-red); }
.fr-verify-icon { color: var(--fr-green); font-size: 2.3rem; }
.fr-verify-result:not(.fr-verify-valid) .fr-verify-icon { color: var(--fr-red); }
.fr-verify-result h2 { margin: 4px 0 18px; color: var(--fr-navy); font-size: 2rem; }
.fr-verify-result dl { margin: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.fr-verify-result dt { color: var(--fr-muted); font-size: .78rem; font-weight: 750; text-transform: uppercase; }
.fr-verify-result dd { margin: 4px 0 0; font-weight: 750; }

.fr-certificate-page { margin: 0; padding: 26px; color: #10213d; background: #e8edf4; font-family: Georgia, 'Times New Roman', serif; }
.fr-print-toolbar { max-width: 210mm; display: flex; align-items: center; justify-content: space-between; margin: 0 auto 18px; font-family: Inter,Arial,sans-serif; }
.fr-print-toolbar a { color: var(--fr-navy); font-weight: 750; text-decoration: none; }
.fr-authorization-sheet { width: 210mm; min-height: 297mm; margin: 0 auto; padding: 14mm; background: #fff; box-shadow: 0 12px 40px rgba(6,43,97,.16); }
.fr-auth-border { min-height: 269mm; position: relative; display: flex; flex-direction: column; padding: 15mm 14mm 10mm; border: 3px double var(--fr-navy); }
.fr-auth-border::before, .fr-auth-border::after { content: ''; position: absolute; width: 38mm; height: 5px; background: var(--fr-orange); }
.fr-auth-border::before { top: -4px; right: 14mm; }
.fr-auth-border::after { bottom: -4px; left: 14mm; }
.fr-auth-border header { text-align: center; }
.fr-auth-border header img { width: 33mm; height: 28mm; object-fit: contain; }
.fr-auth-border header p { margin: 5px 0 2px; color: var(--fr-navy); font-size: 16pt; font-weight: 700; }
.fr-auth-border header span { color: var(--fr-orange); font: 750 10pt Inter,Arial,sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.fr-auth-number { margin-top: 10mm; color: #48566d; font-size: 10.5pt; }
.fr-auth-number strong { color: #a97105; font-size: 12pt; }
.fr-auth-title { margin: 14mm auto 9mm; text-align: center; }
.fr-auth-title small { color: #59677d; font: 700 10pt Inter,Arial,sans-serif; text-transform: uppercase; }
.fr-auth-title h1 { max-width: 150mm; margin: 6mm auto 2mm; color: var(--fr-navy); font-size: 28pt; line-height: 1.15; }
.fr-auth-title p { margin: 0; color: #46546a; font-size: 12pt; }
.fr-auth-details { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; border: 1px solid #c4cede; background: #c4cede; }
.fr-auth-details div { min-height: 21mm; padding: 5mm; background: #fff; }
.fr-auth-details dt { color: #68758a; font: 700 8.5pt Inter,Arial,sans-serif; letter-spacing: .06em; text-transform: uppercase; }
.fr-auth-details dd { margin: 2mm 0 0; color: var(--fr-navy); font-size: 11pt; font-weight: 700; line-height: 1.4; }
.fr-auth-scope { margin-top: 8mm; padding: 6mm; border-left: 3px solid var(--fr-orange); background: #f6f8fb; }
.fr-auth-scope h2 { margin: 0 0 3mm; color: var(--fr-navy); font-size: 13pt; }
.fr-auth-scope ul { columns: 2; margin: 0; padding-left: 5mm; font-size: 9.5pt; line-height: 1.55; }
.fr-auth-border footer { display: grid; grid-template-columns: 1fr auto 1fr; align-items: end; gap: 10mm; margin-top: auto; text-align: center; }
.fr-auth-border footer div { display: grid; gap: 2mm; }
.fr-auth-border footer strong { color: var(--fr-navy); font-size: 10pt; }
.fr-auth-border footer span { color: #5e6b80; font-size: 9pt; }
.fr-auth-qr img, .fr-auth-qr .qr-img { width: 28mm !important; height: 28mm !important; border: 0 !important; border-radius: 0 !important; }
.fr-auth-qr small { font: 700 7pt Inter,Arial,sans-serif; text-transform: uppercase; }
.fr-auth-legal { margin: 7mm 0 0; color: #68758a; text-align: center; font: 7.5pt/1.4 Inter,Arial,sans-serif; }

@media (max-width: 1050px) {
    .fr-hero-grid { grid-template-columns: 1fr; }
    .fr-hero-copy { padding: 64px 0 48px; }
    .fr-hero-media { min-height: 460px; }
    .fr-benefits { grid-template-columns: repeat(2, 1fr); }
    .fr-benefit:nth-child(3n) { border-right: 1px solid var(--fr-border); }
    .fr-benefit:nth-child(2n) { border-right: 0; }
    .fr-timeline { grid-template-columns: 1fr; gap: 20px; }
    .fr-timeline-step { padding: 0 0 0 58px; text-align: left; }
    .fr-timeline-step::before { top: 0; bottom: -20px; left: 17px !important; right: auto !important; width: 2px; height: auto; }
    .fr-timeline-number { top: 0; left: 18px; transform: translateX(-50%); }
    .fr-course-band { grid-template-columns: 1fr; }
    .fr-app-layout, .fr-dashboard-grid { grid-template-columns: 1fr; }
    .fr-portal-layout { grid-template-columns: 82px minmax(0, 1fr); }
    .fr-portal-brand strong, .fr-portal-nav span, .fr-portal-sidebar-note { display: none; }
    .fr-portal-nav a { justify-content: center; }
    .fr-home-partner-layout { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
    .fr-container { width: min(100% - 28px, 1240px); }
    .fr-section { padding: 58px 0; }
    .fr-hero-grid { min-height: 0; }
    .fr-hero-copy { padding: 44px 0 38px; }
    .fr-hero-media { min-height: 330px; }
    .fr-hero h1 { font-size: clamp(3rem, 15vw, 4.3rem); }
    .fr-hero-actions .fr-btn { width: 100%; }
    .fr-benefits, .fr-check-columns, .fr-split, .fr-form-grid, .fr-checkboxes, .fr-metrics { grid-template-columns: 1fr; }
    .fr-benefit { border-right: 0; border-bottom: 1px solid var(--fr-border); }
    .fr-course-copy, .fr-responsibility { padding: 28px 22px; }
    .fr-cta-band { align-items: stretch; flex-direction: column; padding: 28px 22px; }
    .fr-app-nav > a:not(:last-child) { display: none; }
    .fr-stepper { grid-template-columns: repeat(5, 1fr); row-gap: 16px; font-size: .75rem; }
    .fr-wizard-nav { flex-wrap: wrap; }
    .fr-wizard-nav .fr-btn { min-width: 120px; flex: 1; }
    .fr-doc-row { grid-template-columns: 1fr; gap: 7px; }
    .fr-portal-sidebar { position: fixed; z-index: 80; inset: 0 auto 0 0; width: min(84vw,300px); height: 100vh; transform: translateX(-105%); transition: transform .2s ease; }
    .fr-portal-sidebar.is-open { transform: translateX(0); box-shadow: 20px 0 50px rgba(3,28,66,.28); }
    .fr-portal-brand { padding: 0 8px 20px; }
    .fr-portal-brand strong, .fr-portal-nav span, .fr-portal-sidebar-note { display: block; }
    .fr-portal-nav { display: grid; margin: 12px 0 0; }
    .fr-portal-nav a { justify-content: flex-start; white-space: nowrap; }
    .fr-portal-menu { display: grid; place-items: center; flex: 0 0 42px; }
    .fr-portal-topbar, .fr-portal-content { padding-inline: 16px; }
    .fr-context select { max-width: 190px; }
    .fr-portal-user span { display: none; }
    .fr-portal-heading { align-items: flex-start; flex-direction: column; }
    .fr-quick-stats, .fr-verify-result dl { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .fr-compact-form { grid-template-columns: 1fr; }
    .fr-doc-row { grid-template-columns: 1fr; gap: 7px; }
    .fr-home-partner { padding: 54px 0; }
    .fr-home-partner-actions .modern-btn { width: 100%; }
    .fr-home-partner-process { grid-template-columns: 1fr; }
    .fr-home-partner-process li { min-height: 0; padding: 6px 0 28px 54px; border-left: 0; }
    .fr-home-partner-process span { left: 0; }
}

@media print {
    @page { size: A4 portrait; margin: 0; }
    .fr-certificate-page { padding: 0; background: #fff; }
    .fr-print-toolbar { display: none !important; }
    .fr-authorization-sheet { width: 210mm; height: 297mm; min-height: 297mm; margin: 0; padding: 14mm; box-shadow: none; break-inside: avoid; }
}

@media (prefers-reduced-motion: reduce) {
    .fr-btn { transition: none; }
}
