.mcm-shell {
    --mcm-ink: #151923;
    --mcm-muted: #667085;
    --mcm-line: #d9dee8;
    --mcm-soft: #f5f7fb;
    --mcm-blue: #1f6fb6;
    --mcm-blue-dark: #164f82;
    --mcm-gold: #b78524;
    --mcm-danger: #a32929;
    box-sizing: border-box;
    color: var(--mcm-ink);
    font: 16px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    margin: 36px auto;
    max-width: 1120px;
    width: calc(100% - 32px);
}

.mcm-shell *, .mcm-shell *::before, .mcm-shell *::after { box-sizing: inherit; }
.mcm-shell [hidden] { display: none !important; }
.mcm-shell h1, .mcm-shell h2, .mcm-shell h3 { color: var(--mcm-ink); line-height: 1.18; margin: 0 0 .7em; text-transform: none; letter-spacing: -.02em; }
.mcm-shell h1 { font-size: clamp(2rem, 4vw, 3.6rem); }
.mcm-shell h2 { font-size: clamp(1.55rem, 2.4vw, 2.25rem); }
.mcm-shell h3 { font-size: 1.1rem; margin-top: 1.5rem; }
.mcm-shell p { color: inherit; }
.mcm-shell a { color: var(--mcm-blue); }
.mcm-hero { background: linear-gradient(135deg, #0f1625 0%, #24395a 100%); border-radius: 18px; color: #fff; margin-bottom: 24px; overflow: hidden; padding: clamp(32px, 7vw, 84px); position: relative; }
.mcm-hero::after { border: 1px solid rgba(255,255,255,.14); border-radius: 50%; content: ""; height: 380px; position: absolute; right: -140px; top: -190px; width: 380px; }
.mcm-hero h1, .mcm-hero p { color: #fff; max-width: 780px; position: relative; z-index: 1; }
.mcm-hero p:last-child { font-size: 1.15rem; margin-bottom: 0; }
.mcm-eyebrow { color: var(--mcm-blue); font-size: .75rem; font-weight: 800; letter-spacing: .16em; margin: 0 0 .7rem; text-transform: uppercase; }
.mcm-hero .mcm-eyebrow { color: #c8dcf2; }
.mcm-card { background: #fff; border: 1px solid var(--mcm-line); border-radius: 16px; box-shadow: 0 14px 40px rgba(17, 31, 52, .07); margin-bottom: 24px; padding: clamp(24px, 5vw, 52px); }
.mcm-card--narrow { margin-left: auto; margin-right: auto; max-width: 680px; }
.mcm-grid { display: grid; gap: 20px; }
.mcm-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mcm-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mcm-field { margin-bottom: 20px; }
.mcm-field--wide { grid-column: 1 / -1; }
.mcm-field label, .mcm-fieldset legend, .mcm-ip-gate label { color: #273246; display: block; font-size: .88rem; font-weight: 700; margin-bottom: 7px; }
.mcm-field input, .mcm-field select, .mcm-field textarea, .mcm-ip-gate select, .mcm-shell .login-username input, .mcm-shell .login-password input {
    appearance: none; background: #fff; border: 1px solid #b8c1cf; border-radius: 8px; color: var(--mcm-ink); font: inherit; margin: 0; min-height: 46px; padding: 10px 12px; width: 100%;
}
.mcm-field textarea { min-height: 110px; resize: vertical; }
.mcm-field input:focus, .mcm-field select:focus, .mcm-field textarea:focus, .mcm-ip-gate select:focus { border-color: var(--mcm-blue); box-shadow: 0 0 0 3px rgba(31,111,182,.17); outline: none; }
.mcm-field small, .mcm-small { color: var(--mcm-muted); display: block; font-size: .82rem; margin-top: 6px; }
.mcm-fieldset { border: 0; margin: 8px 0 28px; padding: 0; }
.mcm-choice-grid { display: grid; gap: 10px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mcm-check { align-items: flex-start; cursor: pointer; display: flex; gap: 9px; line-height: 1.35; }
.mcm-check input { accent-color: var(--mcm-blue); flex: 0 0 auto; height: 18px; margin: 2px 0 0; width: 18px; }
.mcm-check--block { background: var(--mcm-soft); border-radius: 10px; margin: 12px 0; padding: 14px; }
.mcm-button { appearance: none; background: #fff; border: 1px solid var(--mcm-blue); border-radius: 999px; color: var(--mcm-blue); cursor: pointer; display: inline-block; font: 700 .93rem/1.2 inherit; min-height: 46px; padding: 13px 22px; text-decoration: none; }
.mcm-button:hover, .mcm-button:focus { background: #edf5fc; color: var(--mcm-blue-dark); }
.mcm-button--primary { background: var(--mcm-blue); color: #fff; }
.mcm-button--primary:hover, .mcm-button--primary:focus { background: var(--mcm-blue-dark); color: #fff; }
.mcm-button:disabled { cursor: wait; opacity: .55; }
.mcm-honeypot { height: 0; left: -9999px; overflow: hidden; position: absolute; width: 0; }
.mcm-notice { border-left: 5px solid var(--mcm-blue); border-radius: 8px; margin: 16px auto; max-width: 1120px; padding: 14px 18px; }
.mcm-notice--success { background: #ecf8f1; border-color: #21804a; }
.mcm-notice--error { background: #fff0f0; border-color: var(--mcm-danger); color: #651b1b; }
.mcm-notice--warning { background: #fff7e5; border-color: var(--mcm-gold); }
.mcm-notice--info { background: #edf5fc; }
.mcm-portal-head { align-items: flex-end; display: flex; justify-content: space-between; margin-bottom: 18px; }
.mcm-portal-head h1 { margin-bottom: .25rem; }
.mcm-status-line { align-items: center; color: var(--mcm-muted); display: flex; gap: 12px; margin: 0; }
.mcm-status { background: #eaf2fb; border-radius: 999px; color: var(--mcm-blue-dark); font-size: .78rem; font-weight: 800; padding: 5px 10px; text-transform: uppercase; }
.mcm-account-links { display: flex; gap: 16px; }
.mcm-progress { background: #e9edf3; border-radius: 999px; height: 7px; margin-bottom: 30px; overflow: hidden; }
.mcm-progress span { background: linear-gradient(90deg, var(--mcm-blue), #61a9d9); display: block; height: 100%; transition: width .25s ease; }
.mcm-step-nav { display: grid; gap: 8px; grid-template-columns: repeat(5, 1fr); margin: 0 0 20px; }
.mcm-step-nav button { background: #fff; border: 1px solid var(--mcm-line); border-radius: 9px; color: #49566a; cursor: pointer; font: 700 .78rem/1.2 inherit; min-height: 50px; padding: 10px; }
.mcm-step-nav button.is-active { background: var(--mcm-blue); border-color: var(--mcm-blue); color: #fff; }
.mcm-step[hidden], .mcm-conditional[hidden] { display: none !important; }
.mcm-repeat-row { background: #f8fafc; border: 1px solid var(--mcm-line); border-radius: 12px; margin-bottom: 18px; padding: 20px; }
.mcm-repeat-row--ip { background: #fcfbf7; }
.mcm-repeat-head { align-items: center; display: flex; justify-content: space-between; }
.mcm-repeat-head h3 { margin: 0 0 15px; }
.mcm-link-button { background: none; border: 0; color: var(--mcm-danger); cursor: pointer; font: 700 .82rem inherit; padding: 6px; }
.mcm-callout { background: #fff7e7; border-left: 5px solid var(--mcm-gold); margin: 18px 0; padding: 16px 18px; }
.mcm-ip-gate { background: #eef5fb; border-radius: 12px; margin: 24px 0; padding: 20px; }
.mcm-ip-gate p { margin: 5px 0 12px; }
.mcm-ip-gate select { max-width: 280px; }
.mcm-form-actions { align-items: center; background: rgba(255,255,255,.96); border: 1px solid var(--mcm-line); border-radius: 12px; bottom: 14px; box-shadow: 0 8px 28px rgba(17,31,52,.12); display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; padding: 12px; position: sticky; z-index: 20; }
.mcm-save-state { color: var(--mcm-muted); font-size: .85rem; min-height: 22px; text-align: right; }
.mcm-summary-grid { display: grid; gap: 12px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 22px 0; }
.mcm-summary-grid div { background: var(--mcm-soft); border-radius: 10px; padding: 14px; }
.mcm-summary-grid span { color: var(--mcm-muted); display: block; font-size: .75rem; margin-bottom: 4px; text-transform: uppercase; }
.mcm-summary-grid strong { display: block; }
.mcm-clean-list { list-style: none; margin: 0; padding: 0; }
.mcm-clean-list li { border-bottom: 1px solid var(--mcm-line); padding: 10px 0; }

@media (max-width: 780px) {
    .mcm-grid--2, .mcm-grid--3, .mcm-choice-grid, .mcm-summary-grid { grid-template-columns: 1fr; }
    .mcm-step-nav { grid-template-columns: repeat(5, minmax(56px, 1fr)); overflow-x: auto; }
    .mcm-step-nav button { font-size: .68rem; min-width: 82px; }
    .mcm-portal-head { align-items: flex-start; flex-direction: column; gap: 10px; }
    .mcm-form-actions { justify-content: stretch; }
    .mcm-form-actions .mcm-button { flex: 1 1 160px; }
}

@media (prefers-reduced-motion: reduce) {
    .mcm-shell * { scroll-behavior: auto !important; transition: none !important; }
}
