/* IBCA v0.5-dev1 Integration RC1-E-r1 | unified Student Portal layout
   Pure presentation: no changes to auth, certificate, translation or image-slot data contracts. */
:root {
    --ibca-bg: #f7f3f0;
    --ibca-border: #e7deda;
    --ibca-surface: #fffdfb;
    --ibca-radius: 18px;
    --ibca-shadow: 0 12px 36px rgba(65,49,56,.055);
    --ibca-shadow-soft: 0 5px 22px rgba(65,49,56,.035);
}
body { background: #f8f5f2; }
.ibca-skip-link { position:fixed; top:-80px; left:15px; z-index:100; padding:10px 15px; border-radius:8px; background:#fff; color:var(--ibca-primary); }
.ibca-skip-link:focus-visible { top:12px; }
.ibca-topbar { height:70px; padding:0 28px; background:rgba(255,253,251,.98); box-shadow:0 1px 0 rgba(95,75,77,.045); }
.ibca-topbar-inner { width:100%; max-width:1450px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.ibca-brand { align-items:center; gap:13px; }
.ibca-brand-mark { font-size:29px; letter-spacing:.095em; }
.ibca-brand-sub { font-size:12px; letter-spacing:.02em; padding-left:12px; border-left:1px solid var(--ibca-border); }
.ibca-header-tools { display:flex; align-items:center; gap:18px; min-width:0; }
.ibca-language-picker { margin:0; gap:8px; flex:none; }
.ibca-language-label { color:#7d7274; }
.ibca-language-select { background:#fff; border-radius:11px; min-height:39px; min-width:128px; padding:8px 29px 8px 12px; }
.ibca-user-menu { position:relative; }
.ibca-user-trigger { display:flex; align-items:center; gap:9px; padding:5px 9px 5px 5px; cursor:pointer; border-radius:999px; border:1px solid var(--ibca-border); background:#fff; list-style:none; min-height:42px; font-size:13px; color:var(--ibca-primary); }
.ibca-user-trigger::-webkit-details-marker { display:none; }
.ibca-user-trigger:hover, .ibca-user-menu[open] .ibca-user-trigger { background:#f6efec; }
.ibca-user-avatar { height:30px; width:30px; border-radius:50%; display:grid; place-items:center; font:12px var(--ibca-serif); background:#5c4a50; color:#fff; }
.ibca-chevron { height:15px; width:15px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.ibca-user-popover { position:absolute; right:0; top:calc(100% + 9px); min-width:215px; max-width:min(315px, 90vw); background:#fffdfb; border:1px solid var(--ibca-border); border-radius:15px; padding:9px; z-index:80; box-shadow:0 20px 42px rgba(65,49,56,.15); }
.ibca-user-popover .ibca-user-email { margin:3px 8px 9px; padding-bottom:10px; font-size:12px; color:var(--ibca-muted); border-bottom:1px solid var(--ibca-border); overflow-wrap:anywhere; }
.ibca-user-popover a, .ibca-user-popover button { width:100%; display:block; border:0; padding:11px 12px; border-radius:9px; text-align:left; background:transparent; text-decoration:none; color:var(--ibca-primary); font-size:13px; cursor:pointer; }
.ibca-user-popover a:hover, .ibca-user-popover button:hover { background:#f5eeeb; }
.ibca-user-popover form { margin:0; }
.ibca-user-trigger:focus-visible,.ibca-nav a:focus-visible,.ibca-action-tile:focus-visible,.ibca-bottom-nav a:focus-visible { outline:3px solid rgba(173,116,119,.65); outline-offset:2px; }
/* Compact side navigation; eliminate full-height dark empty block */
.ibca-shell { max-width:1450px; padding:30px 28px 90px; }
.ibca-app-grid { grid-template-columns:208px minmax(0,1fr); gap:30px; align-items:start; }
.ibca-sidebar { min-height:0; height:auto; top:99px; border-radius:17px; background:#fffdfb; color:#52474b; border:1px solid var(--ibca-border); box-shadow:var(--ibca-shadow-soft); overflow:hidden; }
.ibca-sidebar-head { padding:20px 20px 16px; border-bottom:1px solid #f0e8e4; }
.ibca-sidebar-mark { color:#63545a; font:12px var(--ibca-serif); letter-spacing:.06em; overflow-wrap:anywhere; }
.ibca-sidebar-mark span { color:#b9a29a; padding:0 4px; }
.ibca-nav { padding:12px 10px; }
.ibca-nav a { display:flex; align-items:center; gap:12px; padding:12px 13px; margin:3px 0; border-radius:10px; color:#64595c; font-size:13px; font-weight:500; text-wrap:pretty; line-height:1.5; }
.ibca-nav a:hover { background:#f5eeeb; color:#634c53; }
.ibca-nav a.active { background:#f1e1e0; color:#80575e; box-shadow:none; font-weight:650; }
.ibca-nav-icon { flex:0 0 19px; width:19px; height:19px; }
.ibca-sidebar-footer { padding:13px 18px 19px; font-size:10px; line-height:1.7; font-family:var(--ibca-serif); text-align:center; letter-spacing:.035em; color:#a28e8d; }
.ibca-sidebar-footer-line { display:block; width:50px; height:1px; margin:0 auto 12px; background:#e2d6d0; }
.ibca-main { min-width:0; }
/* Shared page rhythm and controls */
.ibca-card { background:#fffdfb; border:1px solid var(--ibca-border); border-radius:18px; box-shadow:var(--ibca-shadow-soft); padding:26px 28px; margin-bottom:20px; }
.ibca-eyebrow { font-size:10px; font-weight:650; letter-spacing:.19em; margin-bottom:10px; }
.ibca-title { font-size:clamp(27px,2.6vw,36px); line-height:1.25; letter-spacing:0; margin:0 0 10px; }
.ibca-subtitle { font-size:21px; line-height:1.4; margin-bottom:14px; }
.ibca-lead { margin:0; font-size:14px; line-height:1.8; max-width:870px; }
.ibca-muted { font-size:13px; line-height:1.75; overflow-wrap:anywhere; }
.ibca-btn { border-radius:11px; min-height:42px; box-shadow:none; padding:10px 17px; font-size:13px; }
.ibca-btn:hover { box-shadow:0 7px 18px rgba(151,92,96,.13); }
.ibca-btn.secondary { background:#f4ece9; }
.ibca-btn.ghost { background:#fffdfb; }
.ibca-field input:not([type=checkbox]):not([type=radio]),.ibca-field select,.ibca-field textarea { max-width:100%; border-radius:11px; }
.ibca-info-grid { border-radius:13px; }
.ibca-system-list { border-radius:12px; }
.ibca-system-row { gap:16px; }
.ibca-info-value,.ibca-system-row strong { overflow-wrap:anywhere; }
/* Dashboard: full-width editorial welcome, hero, compact horizontal member summary, even quick grid */
.ibca-dashboard-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:3px 0 22px; }
.ibca-dashboard-heading .ibca-title { margin-bottom:6px; }
.ibca-dashboard-heading .ibca-status-pill { white-space:normal; flex-shrink:0; }
.ibca-dashboard-hero { height:clamp(200px,22vw,290px); min-height:0; margin:0 0 22px; border-radius:18px; border:0; box-shadow:var(--ibca-shadow-soft); }
.ibca-dashboard-hero .ibca-image-slot-caption { padding:24px 30px; }
.ibca-dashboard-hero .ibca-image-slot-title { font-size:clamp(20px,2.1vw,28px); }
.ibca-member-card { display:grid; grid-template-columns:minmax(200px,.7fr) minmax(0,1.55fr); padding:0; border-radius:18px; background:#fffdfb; color:var(--ibca-text); border:1px solid var(--ibca-border); box-shadow:var(--ibca-shadow-soft); overflow:hidden; }
.ibca-member-card::after { content:none; }
.ibca-member-identity { padding:24px 25px; background:linear-gradient(135deg,#55464d,#6b585e); color:#fff; min-width:0; }
.ibca-member-card .ibca-eyebrow { color:#d5c6b2; }
.ibca-member-name { font-size:clamp(25px,2.4vw,32px); line-height:1.3; margin:6px 0 4px; overflow-wrap:anywhere; }
.ibca-member-en { font-size:12px; letter-spacing:.04em; }
.ibca-member-number { font-size:13px; margin:18px 0 0; letter-spacing:.025em; overflow-wrap:anywhere; font-weight:600; }
.ibca-member-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-content:center; gap:0; padding:13px 15px; }
.ibca-member-grid > div { min-width:0; padding:12px 14px; }
.ibca-member-grid > div:last-child { grid-column:1/-1; }
.ibca-member-label { font-size:11px; color:#a29291; margin-bottom:7px; }
.ibca-member-value { font-size:13px; font-weight:600; color:#4f4348; line-height:1.55; overflow-wrap:anywhere; }
.ibca-dashboard-actions { margin-top:28px; }
.ibca-section-heading { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; }
.ibca-section-heading .ibca-subtitle { margin:0; }
.ibca-dashboard-quick-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.ibca-action-tile { display:flex; align-items:center; gap:17px; min-width:0; min-height:113px; padding:19px 20px; background:#fffdfb; border:1px solid var(--ibca-border); border-radius:16px; box-shadow:var(--ibca-shadow-soft); text-decoration:none; transition:border-color .18s ease,transform .18s ease,background .18s ease; }
.ibca-action-tile:hover { transform:translateY(-2px); border-color:#d2b6b5; background:#fffaf8; }
.ibca-action-icon { width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center; background:#f2e7e5; color:#96686d; border-radius:12px; }
.ibca-action-icon .ibca-nav-icon { width:21px; height:21px; }
.ibca-action-copy { flex:1; min-width:0; display:grid; gap:7px; }
.ibca-action-copy strong { font-family:var(--ibca-serif); font-size:17px; color:#463a3e; font-weight:500; overflow-wrap:anywhere; }
.ibca-action-copy > span { color:#897b7d; font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
.ibca-action-arrow { font-size:19px; font-weight:300; color:#ac8b8a; flex:0 0 auto; }
/* Other authenticated pages: layout grids should not create thin, towering columns */
.ibca-main > .ibca-eyebrow:first-child { margin-top:4px; }
.ibca-main > .ibca-lead { margin:0 0 25px; }
.ibca-main > .ibca-title { margin-bottom:10px; }
.ibca-profile-head { align-items:center; }
.ibca-profile-banner { height:clamp(165px,18vw,230px); min-height:0; border-radius:18px; margin:0 0 20px; }
.ibca-profile-grid { grid-template-columns:minmax(0,1.7fr) minmax(260px,.8fr); gap:26px; }
.ibca-profile-grid > aside { min-width:0; }
.ibca-profile-side { max-width:250px; border-radius:15px; }
.ibca-application-card { margin-top:20px; }
.ibca-application-entry { padding:19px 0; }
.ibca-certificates-list { margin-top:24px; }
.ibca-certificate-entry { align-items:center; }
.ibca-certificate-actions { min-width:140px; }
.ibca-certificate-preview { max-width:100%; }
.ibca-guest-wrap { max-width:1150px; padding-top:38px; }
.ibca-auth-card { border-radius:20px; }
.ibca-auth-form { padding:40px; }
.ibca-onboarding-layout { gap:22px; }
.ibca-status-layout { gap:0; }
/* Tablet: no squeezed 200px rail beside narrow content */
@media (max-width:1100px) {
    .ibca-shell { padding:24px 22px 80px; }
    .ibca-app-grid { grid-template-columns:186px minmax(0,1fr); gap:20px; }
    .ibca-sidebar-head { padding:17px 13px 13px; }
    .ibca-sidebar-mark { font-size:11px; }
    .ibca-nav { padding:10px 7px; }
    .ibca-nav a { gap:9px; padding:11px 9px; }
    .ibca-member-card { grid-template-columns:minmax(175px,.7fr) minmax(0,1.5fr); }
    .ibca-member-grid > div { padding:10px; }
    .ibca-profile-grid { grid-template-columns:1fr; }
}
@media (max-width:860px) {
    .ibca-topbar { min-height:65px; height:auto; padding:9px 16px; }
    .ibca-topbar-inner { gap:14px; }
    .ibca-brand-mark { font-size:25px; }
    .ibca-brand-sub { font-size:11px; }
    .ibca-header-tools { gap:9px; }
    .ibca-app-grid { display:block; }
    .ibca-sidebar { display:none; }
    .ibca-shell { padding:22px 18px 102px; }
    .ibca-member-card { grid-template-columns:minmax(0,1fr); }
    .ibca-member-identity { padding:22px; }
    .ibca-member-number { margin-top:12px; }
    .ibca-member-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .ibca-bottom-nav { position:fixed; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); bottom:0; left:0; right:0; z-index:50; padding:7px max(6px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left)); background:rgba(255,253,251,.98); border-top:1px solid var(--ibca-border); box-shadow:0 -5px 22px rgba(65,49,56,.045); }
    .ibca-bottom-nav a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; padding:7px 2px; border-radius:10px; font-size:10px; line-height:1.2; text-align:center; text-decoration:none; color:#8d7e81; min-width:0; overflow-wrap:anywhere; }
    .ibca-bottom-nav a.active { background:#f4e6e4; color:#895d65; }
    .ibca-bottom-nav .ibca-nav-icon { width:19px; height:19px; }
}
@media (max-width:620px) {
    .ibca-topbar { padding:8px 12px; }
    .ibca-brand { gap:0; }
    .ibca-brand-sub { display:none; }
    .ibca-brand-mark { font-size:24px; }
    .ibca-header-tools { gap:6px; }
    .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:94px; max-width:118px; padding:7px 24px 7px 8px; font-size:12px; min-height:37px; }
    .ibca-user-trigger { padding:3px; min-height:37px; }
    .ibca-user-trigger-label,.ibca-chevron { display:none; }
    .ibca-user-avatar { width:30px; height:30px; }
    .ibca-shell { padding:18px 13px 100px; }
    .ibca-dashboard-heading { align-items:flex-start; flex-wrap:wrap; gap:10px; margin-bottom:15px; }
    .ibca-dashboard-heading .ibca-status-pill { font-size:11px; }
    .ibca-dashboard-hero { height:clamp(165px,46vw,230px); border-radius:15px; margin-bottom:16px; }
    .ibca-dashboard-hero .ibca-image-slot-caption { padding:16px 18px; }
    .ibca-dashboard-hero .ibca-image-slot-title { font-size:19px; }
    .ibca-member-grid { padding:9px 8px; }
    .ibca-member-grid > div { padding:11px; }
    .ibca-dashboard-actions { margin-top:22px; }
    .ibca-dashboard-quick-list { grid-template-columns:1fr; gap:10px; }
    .ibca-action-tile { padding:15px; min-height:86px; gap:12px; }
    .ibca-action-icon { flex-basis:38px; width:38px; height:38px; }
    .ibca-action-copy strong { font-size:16px; }
    .ibca-card { padding:20px 18px; border-radius:16px; }
    .ibca-row { grid-template-columns:1fr; }
    .ibca-title { font-size:27px; }
    .ibca-subtitle { font-size:19px; }
    .ibca-profile-summary { grid-template-columns:1fr; }
    .ibca-info-grid { grid-template-columns:1fr; }
    .ibca-info-item,.ibca-info-item:nth-child(2n) { border-right:0; }
    .ibca-profile-banner { height:155px; }
    .ibca-certificate-actions { width:100%; }
    .ibca-auth-form { padding:25px 20px; }
    .ibca-system-row { grid-template-columns:100px minmax(0,1fr); gap:10px; }
    .ibca-guest-wrap { padding:18px 13px 80px; }
}
@media (prefers-reduced-motion:reduce) {
    .ibca-action-tile,.ibca-btn { transition:none; }
    .ibca-action-tile:hover,.ibca-btn:hover { transform:none; }
}
