:root {
    --ibca-bg: #f7f1ec;
    --ibca-bg-soft: #fbf7f3;
    --ibca-surface: #fffdfb;
    --ibca-surface-strong: #ffffff;
    --ibca-primary: #51454a;
    --ibca-primary-2: #68575c;
    --ibca-primary-soft: #eee5e3;
    --ibca-rose: #ad7477;
    --ibca-rose-dark: #8f5c60;
    --ibca-rose-soft: #f2dfdd;
    --ibca-gold: #b39a72;
    --ibca-text: #3f383a;
    --ibca-text-strong: #30292b;
    --ibca-muted: #7c7375;
    --ibca-border: #e8ded9;
    --ibca-success: #64785f;
    --ibca-warning: #9b7c46;
    --ibca-danger: #966166;
    --ibca-shadow: 0 20px 60px rgba(72, 56, 61, .09);
    --ibca-shadow-soft: 0 10px 32px rgba(72, 56, 61, .055);
    --ibca-radius: 24px;
    --ibca-radius-sm: 15px;
    --ibca-serif: Georgia, "Times New Roman", "Noto Serif SC", "Songti SC", STSong, serif;
    --ibca-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
}

* { box-sizing: border-box; }
html { background: var(--ibca-bg); }
body {
    margin: 0;
    min-height: 100vh;
    color: var(--ibca-text);
    background:
        radial-gradient(circle at 85% 0%, rgba(173,116,119,.08), transparent 26rem),
        linear-gradient(180deg, #fbf7f4 0, var(--ibca-bg) 40%, #f5ede8 100%);
    font-family: var(--ibca-sans);
    -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
button, input, textarea, select { font: inherit; }

.ibca-topbar {
    height: 74px;
    padding: 0 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    background: rgba(255,253,251,.9);
    border-bottom: 1px solid rgba(232,222,217,.88);
    backdrop-filter: blur(18px);
    position: sticky;
    top: 0;
    z-index: 50;
}
.ibca-brand { display:flex; align-items:baseline; gap:13px; text-decoration:none; min-width:0; }
.ibca-brand-mark { font-family:var(--ibca-serif); font-size:31px; letter-spacing:.08em; color:var(--ibca-primary); line-height:1; }
.ibca-brand-sub { color:var(--ibca-muted); font-size:13px; letter-spacing:.08em; white-space:nowrap; }
.ibca-top-actions { display:flex; align-items:center; gap:10px; }

.ibca-shell { max-width: 1320px; margin: 0 auto; padding: 32px 26px 96px; }
.ibca-app-grid { display:grid; grid-template-columns:245px minmax(0, 1fr); gap:26px; align-items:start; }
.ibca-sidebar {
    min-height: calc(100vh - 138px);
    position: sticky;
    top: 102px;
    overflow:hidden;
    border-radius: var(--ibca-radius);
    background: linear-gradient(165deg, #584a4f 0%, #463b3f 55%, #5c4b50 100%);
    color:#fff;
    box-shadow: var(--ibca-shadow);
}
.ibca-sidebar-head { padding:28px 23px 24px; border-bottom:1px solid rgba(255,255,255,.12); }
.ibca-sidebar-logo { font-family:var(--ibca-serif); font-size:34px; letter-spacing:.12em; }
.ibca-sidebar-caption { margin-top:7px; font-size:10px; letter-spacing:.26em; color:#ddcfca; text-transform:uppercase; }
.ibca-nav { padding:16px 13px; }
.ibca-nav a {
    display:flex; align-items:center; gap:12px; text-decoration:none; color:#f4ece8;
    padding:12px 14px; margin:4px 0; border-radius:13px; font-size:14px;
    transition: .18s ease;
}
.ibca-nav a:hover { background:rgba(255,255,255,.08); }
.ibca-nav a.active { background:#c88c8f; color:#fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); }
.ibca-nav a { padding-left:22px; font-weight:500; }
.ibca-sidebar-quote { margin-top:auto; padding:22px 22px 28px; color:#d8c8c1; font-family:var(--ibca-serif); letter-spacing:.2em; font-size:11px; line-height:2; }
.ibca-main { min-width:0; }

.ibca-card {
    background: rgba(255,253,251,.96);
    border:1px solid rgba(232,222,217,.92);
    border-radius: var(--ibca-radius);
    box-shadow: var(--ibca-shadow-soft);
    padding:28px;
    margin-bottom:20px;
}
.ibca-card-flat { box-shadow:none; }
.ibca-eyebrow { color:var(--ibca-gold); font-size:11px; letter-spacing:.27em; text-transform:uppercase; margin-bottom:10px; }
.ibca-title { font-family:var(--ibca-serif); font-size:35px; font-weight:500; letter-spacing:.025em; color:var(--ibca-text-strong); margin:0 0 12px; line-height:1.22; }
.ibca-subtitle { font-family:var(--ibca-serif); font-size:22px; font-weight:500; margin:0 0 16px; color:var(--ibca-text-strong); }
.ibca-muted { color:var(--ibca-muted); line-height:1.8; }
.ibca-lead { font-size:15px; line-height:1.9; color:#6f6668; max-width:820px; }
.ibca-divider { height:1px; background:var(--ibca-border); margin:24px 0; }

.ibca-btn {
    appearance:none; border:0; border-radius:999px; padding:11px 20px; min-height:42px;
    display:inline-flex; align-items:center; justify-content:center; gap:8px; cursor:pointer;
    text-decoration:none; background:linear-gradient(135deg,var(--ibca-rose),var(--ibca-rose-dark)); color:#fff;
    box-shadow:0 8px 22px rgba(151,92,96,.18); transition:.18s ease;
}
.ibca-btn:hover { transform: translateY(-1px); box-shadow:0 10px 26px rgba(151,92,96,.23); }
.ibca-btn.secondary { background:#f1e9e6; color:var(--ibca-primary); box-shadow:none; }
.ibca-btn.ghost { background:transparent; color:var(--ibca-primary); border:1px solid var(--ibca-border); box-shadow:none; }
.ibca-btn.danger { background:var(--ibca-danger); }
.ibca-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }

.ibca-guest-wrap { max-width:1180px; margin:0 auto; padding:48px 24px 90px; }
.ibca-auth-card { display:grid; grid-template-columns:minmax(0, .92fr) minmax(360px, 1.08fr); min-height:600px; overflow:hidden; padding:0; }
.ibca-auth-form { padding:54px 54px 48px; align-self:center; }
.ibca-image-slot {
    position:relative; min-height:300px; overflow:hidden; border-radius:20px;
    background:
      linear-gradient(150deg, rgba(173,116,119,.14), rgba(81,69,74,.04)),
      radial-gradient(circle at 70% 25%, rgba(255,255,255,.92), transparent 30%),
      #eadfd9;
    border:1px solid rgba(202,184,176,.45);
}
.ibca-auth-card > .ibca-image-slot { border-radius:0; border:0; min-height:600px; }
.ibca-image-slot::before { content:""; position:absolute; inset:0; background:linear-gradient(140deg, transparent 50%, rgba(81,69,74,.18)); z-index:1; pointer-events:none; }
.ibca-image-slot.has-image::before { background:linear-gradient(180deg, rgba(48,41,43,.02) 42%, rgba(48,41,43,.48) 100%); }
.ibca-image-slot-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; z-index:0; }
.ibca-image-slot-inner { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end; padding:36px; z-index:2; }
.ibca-image-slot-caption { position:absolute; left:0; right:0; bottom:0; padding:38px 36px 30px; z-index:2; }
.ibca-image-slot-caption .ibca-image-slot-title { color:#fff; text-shadow:0 2px 18px rgba(48,41,43,.28); }
.ibca-image-slot-label { font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:#856f73; margin-bottom:10px; }
.ibca-image-slot-title { font-family:var(--ibca-serif); font-size:26px; color:#54474b; line-height:1.35; max-width:420px; }
.ibca-image-slot-path { margin-top:18px; font-size:11px; color:#8f7f80; opacity:.7; word-break:break-all; }

.ibca-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.ibca-field { margin-bottom:16px; }
.ibca-field label { display:flex; gap:6px; align-items:center; margin-bottom:7px; color:#5f5557; font-size:13px; }
.ibca-required { color:var(--ibca-rose); }
.ibca-input, .ibca-select, .ibca-textarea {
    width:100%; border:1px solid #dfd3ce; border-radius:13px; padding:12px 13px;
    min-height:46px; background:#fff; color:var(--ibca-text); outline:none; transition:.16s ease;
}
.ibca-textarea { min-height:112px; resize:vertical; }
.ibca-input:focus, .ibca-select:focus, .ibca-textarea:focus { border-color:#c28c8e; box-shadow:0 0 0 3px rgba(194,140,142,.12); }
.ibca-input:disabled, .ibca-select:disabled, .ibca-textarea:disabled { background:#f3efed; color:#8b8080; }
.ibca-form-section { padding:22px 0; border-top:1px solid var(--ibca-border); }
.ibca-form-section:first-of-type { border-top:0; padding-top:0; }
.ibca-form-section-head { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; margin-bottom:18px; }
.ibca-step-label { font-size:11px; letter-spacing:.18em; color:var(--ibca-rose); text-transform:uppercase; }

.ibca-notice, .ibca-error, .ibca-info-banner {
    padding:14px 16px; border-radius:14px; margin-bottom:18px; line-height:1.7;
}
.ibca-notice { background:#e9efe7; color:#52644e; }
.ibca-error { background:#f7e7e6; color:#8d575b; }
.ibca-info-banner { background:#f5ece5; border:1px solid #eadbd2; color:#6f5d58; }

.ibca-status-pill { display:inline-flex; align-items:center; gap:7px; border-radius:999px; padding:6px 11px; font-size:12px; background:#ede7e5; color:#6c5d60; }
.ibca-status-pill.pending { background:#f4ead0; color:#8e6e34; }
.ibca-status-pill.ok { background:#e4eee4; color:#557052; }
.ibca-status-pill.rejected { background:#f4dfdf; color:#8c555a; }
.ibca-lock { font-size:11px; padding:4px 7px; border-radius:999px; color:#8a6731; background:#f6ead1; white-space:nowrap; }

.ibca-status-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:22px; align-items:stretch; }
.ibca-status-main { padding:38px; }
.ibca-progress { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin-top:28px; gap:12px; }
.ibca-progress-item { padding:17px; border-radius:16px; background:#faf5f1; border:1px solid #eee1da; }
.ibca-progress-dot { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:var(--ibca-primary-soft); color:var(--ibca-primary); margin-bottom:10px; }
.ibca-progress-item.active .ibca-progress-dot { background:var(--ibca-rose); color:#fff; }
.ibca-progress-title { font-size:13px; color:#5d5154; }
.ibca-progress-meta { font-size:11px; color:#918587; margin-top:5px; }

.ibca-member-card {
    padding:34px; color:#fff; border-radius:var(--ibca-radius);
    background:
      radial-gradient(circle at 86% 20%, rgba(206,155,156,.25), transparent 18rem),
      linear-gradient(145deg,#4d4145,#66555b);
    box-shadow:var(--ibca-shadow); position:relative; overflow:hidden;
}
.ibca-member-card::after { content:"IBCA"; position:absolute; right:-10px; bottom:-45px; font-family:var(--ibca-serif); font-size:150px; color:rgba(255,255,255,.035); letter-spacing:.04em; }
.ibca-member-card .ibca-eyebrow { color:#d4c09f; }
.ibca-member-name { font-family:var(--ibca-serif); font-size:34px; margin:5px 0 3px; }
.ibca-member-en { color:#dccfd0; letter-spacing:.08em; }
.ibca-member-number { font-size:19px; letter-spacing:.08em; margin:28px 0; }
.ibca-member-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:20px; position:relative; z-index:1; }
.ibca-member-label { color:#cdbec0; font-size:11px; margin-bottom:5px; }
.ibca-member-value { font-size:14px; }
.ibca-dashboard-grid { display:grid; grid-template-columns:1.4fr .85fr; gap:20px; align-items:start; }
.ibca-quick-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.ibca-quick-card { padding:22px; border:1px solid var(--ibca-border); border-radius:19px; background:#fffdfb; min-height:150px; display:flex; flex-direction:column; justify-content:space-between; }
.ibca-quick-card h3 { font-family:var(--ibca-serif); font-weight:500; margin:0 0 8px; font-size:20px; }

.ibca-profile-head { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; }
.ibca-profile-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr); gap:20px; }
.ibca-profile-summary { display:grid; grid-template-columns:130px minmax(0,1fr); gap:20px; }
.ibca-profile-photo { width:130px; height:160px; border-radius:18px; object-fit:cover; border:1px solid var(--ibca-border); background:#eee4df; }
.ibca-profile-photo-placeholder { width:130px; height:160px; display:grid; place-items:center; border-radius:18px; border:1px dashed #d5c5be; background:#f5ede9; color:#9a8883; font-size:12px; text-align:center; padding:12px; }
.ibca-info-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border:1px solid var(--ibca-border); border-radius:18px; overflow:hidden; }
.ibca-info-item { padding:15px 17px; border-right:1px solid var(--ibca-border); border-bottom:1px solid var(--ibca-border); min-width:0; }
.ibca-info-item:nth-child(2n) { border-right:0; }
.ibca-info-label { font-size:11px; color:#998b89; margin-bottom:5px; }
.ibca-info-value { color:#4c4244; font-size:14px; overflow-wrap:anywhere; }
.ibca-info-item.full { grid-column:1/-1; border-right:0; }
.ibca-social-list { display:flex; flex-wrap:wrap; gap:8px; }
.ibca-social-chip { border:1px solid #e5d9d4; border-radius:999px; padding:7px 10px; background:#faf4f1; color:#66575a; font-size:12px; }
.ibca-system-list { display:grid; gap:1px; background:var(--ibca-border); border:1px solid var(--ibca-border); border-radius:16px; overflow:hidden; }
.ibca-system-row { background:#fffdfb; display:grid; grid-template-columns:125px minmax(0,1fr); gap:14px; padding:13px 15px; }
.ibca-system-row span:first-child { color:#958787; font-size:12px; }

.ibca-history { padding:14px 0; border-top:1px solid var(--ibca-border); }
.ibca-history:first-child { border-top:0; }
.ibca-inline { display:flex; flex-wrap:wrap; gap:9px; align-items:center; }

.ibca-social-row { display:grid; grid-template-columns:1fr 1.5fr auto; gap:10px; margin-bottom:9px; align-items:center; }
.ibca-social-heading { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; margin-bottom:10px; }
.ibca-social-note { font-size:12px; color:#897b7b; line-height:1.6; margin-top:4px; }
.ibca-social-account-remove { white-space:nowrap; }
.ibca-social-account-remove:disabled, .ibca-social-account-add:disabled { opacity:.45; cursor:not-allowed; }

.ibca-bottom-nav { display:none; }

@media (max-width: 1020px) {
    .ibca-app-grid { grid-template-columns:205px minmax(0,1fr); gap:18px; }
    .ibca-sidebar-head { padding:24px 18px 20px; }
    .ibca-nav { padding:12px 9px; }
    .ibca-dashboard-grid, .ibca-profile-grid { grid-template-columns:1fr; }
}

@media (max-width: 768px) {
    body { background:linear-gradient(180deg,#fbf7f4,#f5ede8); }
    .ibca-topbar { height:64px; padding:0 16px; }
    .ibca-brand-mark { font-size:26px; }
    .ibca-brand-sub { display:none; }
    .ibca-shell { padding:18px 14px 92px; }
    .ibca-app-grid { display:block; }
    .ibca-sidebar { display:none; }
    .ibca-card { padding:20px; border-radius:19px; }
    .ibca-title { font-size:28px; }
    .ibca-row { grid-template-columns:1fr; gap:0; }
    .ibca-guest-wrap { padding:20px 14px 70px; }
    .ibca-auth-card { grid-template-columns:1fr; min-height:0; }
    .ibca-auth-form { padding:28px 22px; }
    .ibca-auth-card > .ibca-image-slot { min-height:260px; order:-1; }
    .ibca-status-layout { grid-template-columns:1fr; }
    .ibca-status-main { padding:24px; }
    .ibca-progress { grid-template-columns:1fr; }
    .ibca-member-card { padding:25px 22px; }
    .ibca-member-name { font-size:28px; }
    .ibca-member-grid { grid-template-columns:1fr 1fr; gap:16px; }
    .ibca-quick-grid { grid-template-columns:1fr; }
    .ibca-profile-head { display:block; }
    .ibca-profile-head .ibca-actions { margin-top:16px; }
    .ibca-profile-summary { grid-template-columns:1fr; }
    .ibca-profile-photo, .ibca-profile-photo-placeholder { width:104px; height:128px; }
    .ibca-info-grid { grid-template-columns:1fr; }
    .ibca-info-item, .ibca-info-item:nth-child(2n) { border-right:0; }
    .ibca-info-item:last-child { border-bottom:0; }
    .ibca-system-row { grid-template-columns:105px minmax(0,1fr); }
    .ibca-social-row { grid-template-columns:1fr; }
    .ibca-social-heading { display:block; }
    .ibca-social-account-add { margin-top:10px; }
    .ibca-social-account-remove { justify-self:start; }
    .ibca-bottom-nav {
        position:fixed; left:0; right:0; bottom:0; z-index:60; display:grid; grid-template-columns:repeat(5,minmax(0,1fr));
        background:rgba(255,253,251,.96); border-top:1px solid var(--ibca-border);
        backdrop-filter:blur(18px); padding:6px 8px max(6px, env(safe-area-inset-bottom));
    }
    .ibca-bottom-nav a { text-decoration:none; color:#887b7c; text-align:center; font-size:11px; padding:9px 4px; border-radius:12px; }
    .ibca-bottom-nav a.active { color:var(--ibca-rose-dark); background:#f4e9e6; }
}

@media (max-width: 430px) {
    .ibca-title { font-size:25px; }
    .ibca-member-grid { grid-template-columns:1fr; }
    .ibca-profile-photo, .ibca-profile-photo-placeholder { width:96px; height:118px; }
    .ibca-top-actions .ibca-btn { padding:9px 13px; min-height:38px; }
}

/* v0.3-dev1 r3: fixed image responsibility and proportions */
.ibca-login-card {
    grid-template-columns:minmax(0,.95fr) minmax(420px,1.05fr);
    min-height:0;
    align-items:stretch;
}
.ibca-login-card .ibca-auth-form { min-width:0; }
.ibca-login-card > .ibca-login-hero {
    min-height:0;
    aspect-ratio:4 / 5;
    align-self:center;
    border-radius:0;
}
.ibca-login-hero .ibca-image-slot-img { object-fit:cover; }

.ibca-home-hero { min-height:0; }

.ibca-dashboard-hero {
    height:clamp(230px, 26vw, 330px);
    min-height:0;
    margin:24px 0 20px;
    border-radius:22px;
}
.ibca-dashboard-content {
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(290px,.65fr);
    gap:20px;
    align-items:start;
}
.ibca-dashboard-quick-card { margin:0; }
.ibca-dashboard-quick-list { display:grid; gap:14px; }
.ibca-dashboard-quick-list .ibca-quick-card { min-height:138px; }

.ibca-profile-banner {
    height:clamp(180px, 18vw, 245px);
    min-height:0;
    margin:0 0 20px;
    border-radius:22px;
}
.ibca-profile-grid { align-items:start; }
.ibca-profile-grid > aside { min-width:0; align-self:start; }
.ibca-profile-side {
    width:100%;
    max-width:300px;
    aspect-ratio:3 / 4;
    min-height:0;
    margin:18px auto 0;
    align-self:start;
}

.ibca-onboarding-layout {
    display:grid;
    grid-template-columns:minmax(0,1fr) 330px;
    gap:22px;
    align-items:start;
}
.ibca-onboarding-card { margin:0; }
.ibca-onboarding-visual {
    position:sticky;
    top:102px;
    align-self:start;
}
.ibca-onboarding-image {
    width:100%;
    aspect-ratio:4 / 5;
    min-height:0;
}

@media (max-width: 1020px) {
    .ibca-dashboard-content { grid-template-columns:1fr; }
    .ibca-onboarding-layout { grid-template-columns:1fr; }
    .ibca-onboarding-visual { position:static; }
    .ibca-onboarding-image { width:min(100%, 520px); margin:0 auto; }
}

@media (max-width: 768px) {
    .ibca-login-card { grid-template-columns:1fr; }
    .ibca-login-card > .ibca-login-hero {
        order:-1;
        width:100%;
        aspect-ratio:16 / 9;
        min-height:0;
        max-height:280px;
    }
    .ibca-dashboard-hero {
        height:210px;
        margin:18px 0;
        border-radius:18px;
    }
    .ibca-profile-banner {
        height:170px;
        border-radius:18px;
    }
    .ibca-profile-side {
        max-width:220px;
        margin-left:0;
    }
    .ibca-onboarding-visual { order:-1; }
    .ibca-onboarding-image {
        width:100%;
        aspect-ratio:16 / 9;
        max-height:240px;
    }
}

@media (max-width: 430px) {
    .ibca-login-card > .ibca-login-hero { max-height:220px; }
    .ibca-dashboard-hero { height:180px; }
    .ibca-profile-banner { height:145px; }
    .ibca-profile-side { max-width:180px; }
    .ibca-onboarding-image { max-height:200px; }
}

/* Certificate center — inherits the frozen v0.3 Student Portal palette. */
.ibca-certificates-list{display:grid;gap:16px;margin:24px 0}
.ibca-certificate-entry{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.ibca-certificate-emblem{width:98px;height:130px;border:2px solid #bfa57c;background:#f4efe8;color:#ad8c60;display:flex;align-items:center;justify-content:center;flex-direction:column;font-family:Georgia,serif;font-size:24px;letter-spacing:2px;flex:none}
.ibca-certificate-emblem span{font:9px sans-serif;letter-spacing:2px;margin-top:8px}
.ibca-certificate-summary{flex:1;min-width:215px}
.ibca-certificate-summary .ibca-subtitle{margin:8px 0}
.ibca-certificate-actions{display:flex;flex-direction:column;gap:8px;align-items:stretch}
.ibca-certificate-status{display:inline-flex;padding:6px 12px;border-radius:100px;font-size:12px;font-weight:700;letter-spacing:.03em}
.ibca-certificate-status.valid{background:#e8f1ea;color:#386b4b}
.ibca-certificate-status.revoked{background:#fbeae8;color:#903b39}
.ibca-certificate-pagination{margin:20px 0 32px}
.ibca-certificate-detail{margin-top:20px}
.ibca-certificate-detail-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.ibca-certificate-revoked-note{background:#fbeae8;border:1px solid #e4bfbc;border-radius:14px;padding:18px;margin-top:24px;color:#903b39}
.ibca-certificate-preview{margin:24px auto 0;width:min(100%,690px);height:750px;border:1px solid #e5dcd4;background:#f4efe8;border-radius:14px;overflow:hidden}
.ibca-certificate-preview iframe{width:100%;height:100%;border:0}
@media(max-width:768px){.ibca-certificate-entry{align-items:flex-start;gap:16px}.ibca-certificate-emblem{width:65px;height:90px;font-size:16px}.ibca-certificate-actions{width:100%;flex-direction:row;flex-wrap:wrap}.ibca-certificate-preview{height:530px}}

/* Certificate self-service uses the existing cream/mauve student design system. */
.ibca-application-card { margin-top:20px; }
.ibca-application-form { margin-top:20px; display:grid; gap:17px; }
.ibca-application-form .ibca-field { min-width:0; display:flex; flex-direction:column; gap:7px; }
.ibca-application-form label { display:block; font-size:13px; font-weight:600; color:#53464b; }
.ibca-application-form input,.ibca-application-form select,.ibca-application-form textarea { width:100%; min-height:43px; border:1px solid #d9ccc7; border-radius:10px; background:#fffdfb; color:#3f353b; padding:10px 12px; font:inherit; }
.ibca-application-form textarea { resize:vertical; }
.ibca-application-form .ibca-btn { justify-self:start; }
.ibca-application-entry { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:start; gap:16px; padding:20px 0; border-bottom:1px solid #e7dbd6; }
.ibca-application-entry h3 { margin:0 0 9px; font-weight:600; font-size:17px; }
.ibca-application-entry:last-of-type { border-bottom:0; }
.ibca-application-returned { width:min(100%,440px); }
.ibca-application-returned summary { cursor:pointer; color:#97585f; padding:8px 0; }

/* RC1-B language picker: small screens and long German/French words. */
.ibca-language-picker{display:flex;flex-wrap:wrap;gap:5px;align-items:center;min-width:0;margin-left:auto;margin-right:12px}
.ibca-language-picker a{font-size:12px;padding:4px 6px;text-decoration:none;white-space:nowrap;border-radius:7px}
.ibca-language-picker a[aria-current="page"]{text-decoration:underline;font-weight:700}
.ibca-title,.ibca-subtitle,.ibca-lead,.ibca-nav a,.ibca-info-value{overflow-wrap:anywhere}
@media(max-width:1000px){.ibca-topbar{height:auto;min-height:74px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px;gap:10px}.ibca-language-picker{order:3;width:100%;margin:0;justify-content:center}.ibca-brand-sub{white-space:normal}}
@media(max-width:600px){.ibca-language-picker{gap:1px;justify-content:center}.ibca-language-picker a{font-size:11px;padding:5px 6px}.ibca-top-actions{gap:5px;flex-wrap:wrap}}

/* RC1-D-r2: one accessible language select instead of seven horizontal links. */
.ibca-language-picker{display:flex;align-items:center;flex-wrap:nowrap;gap:8px;width:auto;margin-left:auto;margin-right:12px;min-width:0}
.ibca-language-label{font-size:12px;color:inherit;white-space:nowrap}
.ibca-language-select{min-width:118px;max-width:160px;padding:9px 30px 9px 12px;background:rgba(255,255,255,.9);border:1px solid #d9cdca;border-radius:999px;color:#3f353a;font-size:13px;line-height:1.4;cursor:pointer}
.ibca-language-select:focus-visible{outline:2px solid #ad777e;outline-offset:2px}
.ibca-language-submit{border:1px solid #d9cdca;border-radius:8px;background:#fff;padding:6px 9px;color:#3f353a}
@media(max-width:1000px){.ibca-language-picker{order:initial;width:auto;margin-left:auto;margin-right:6px;justify-content:flex-start}}
@media(max-width:600px){.ibca-language-picker{gap:3px}.ibca-language-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ibca-language-select{min-width:93px;max-width:108px;padding:7px 24px 7px 8px;font-size:12px}}
