/* Lot B0 — Al Batoul | Scoped identity for Filament v3. No Vite dependency. */
:root {
    --ab-navy: #102d45;
    --ab-navy-dark: #092238;
    --ab-gold: #b68b3f;
    --ab-gold-soft: #d6b574;
    --ab-ivory: #fbf9f3;
    --ab-line: #e7e7e3;
    --ab-text: #1a3040;
    --ab-muted: #62717f;
}
.fi-body {
    background:
        radial-gradient(circle at 86% 0%, rgba(182,139,63,.075), transparent 28rem),
        radial-gradient(circle at 0% 98%, rgba(16,45,69,.045), transparent 30rem),
        #fafbf9;
}
.fi-sidebar { border-right: 1px solid #e5e9e9; }
.fi-topbar nav { border-bottom: 1px solid #e7e9e6; backdrop-filter: blur(10px); }
.fi-topbar .fi-logo, .fi-sidebar-header .fi-logo { max-height: 3.7rem; width: auto; object-fit: contain; }
.fi-sidebar-item-button { border-radius: .68rem !important; }
.fi-sidebar-item-active .fi-sidebar-item-button { background: rgba(16,45,69,.075) !important; }
.fi-sidebar-group-label { font-weight: 700; letter-spacing: .025em; }
.fi-section, .fi-wi-stats-overview-stat {
    border-radius: 1.05rem !important;
    border-color: var(--ab-line) !important;
    box-shadow: 0 12px 32px rgba(15,37,55,.045) !important;
}
.fi-wi-stats-overview-stat { position: relative; overflow: hidden; }
.fi-wi-stats-overview-stat::before { content: ''; position: absolute; top: 0; left: 0; width: 48px; height: 3px; background: linear-gradient(90deg,var(--ab-navy),var(--ab-gold)); border-radius: 0 0 7px 0; }
.fi-btn { border-radius: .72rem !important; }
.fi-header-heading { color: var(--ab-navy); }
/* Dashboard welcome ribbon */
.ab-dashboard-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0,1fr) 175px;
    gap: 1.4rem;
    align-items: center;
    overflow: hidden;
    padding: 1.55rem 2rem;
    border: 1px solid rgba(182,139,63,.20);
    border-radius: 1.2rem;
    background: linear-gradient(120deg,#fffefb 0%,#fbfaf4 50%,#eef3f2 100%);
    box-shadow: 0 15px 36px rgba(14,45,69,.055);
}
.ab-dashboard-hero::after {
    content: ''; position: absolute; right: -40px; top: -170px; width: 350px; height: 350px;
    border: 1px solid rgba(182,139,63,.11); transform: rotate(45deg); pointer-events: none;
}
.ab-dashboard-hero__text { position: relative; z-index: 1; }
.ab-dashboard-hero__eyebrow { display: inline-flex; align-items: center; gap: .5rem; font-size: .7rem; font-weight: 850; letter-spacing: .09em; color: #8f682b; }
.ab-dashboard-hero__dot { width: .45rem; height: .45rem; border-radius: 50%; background: var(--ab-gold); box-shadow: 0 0 0 4px rgba(182,139,63,.12); }
.ab-dashboard-hero h2 { margin: .65rem 0 .4rem; color: var(--ab-navy); font-size: clamp(1.3rem,2.2vw,1.9rem); line-height: 1.2; letter-spacing: -.03em; font-weight: 820; }
.ab-dashboard-hero p { max-width: 690px; margin: 0; color: var(--ab-muted); font-size: .9rem; line-height: 1.65; }
.ab-dashboard-hero__footer { display: inline-block; margin-top: 1rem; color: #7b857f; font-size: .73rem; font-weight: 650; }
.ab-dashboard-hero__logo { position: relative; display: grid; place-items: center; min-height: 150px; }
.ab-dashboard-hero__logo img { width: 128px; height: 128px; object-fit: contain; z-index: 2; filter: drop-shadow(0 12px 18px rgba(14,45,69,.08)); }
.ab-dashboard-hero__orbit { position: absolute; width: 158px; height: 158px; border: 1px dashed rgba(182,139,63,.3); border-radius: 50%; background: rgba(255,255,255,.36); }
/* Login: Filament simple page is intentionally expanded into a 2-column shell. */
body:has(.ab-login-shell) .fi-simple-layout {
    min-height: 100vh; padding: 1.5rem;
    background: radial-gradient(circle at 8% 8%,rgba(182,139,63,.11),transparent 26rem), radial-gradient(circle at 92% 89%,rgba(16,45,69,.07),transparent 30rem),#f9faf7;
}
body:has(.ab-login-shell) .fi-simple-main {
    width: min(1170px,100%) !important;
    max-width: 1170px !important;
    padding: 0 !important;
    overflow: hidden;
    border: 1px solid rgba(205,211,209,.8) !important;
    border-radius: 1.65rem !important;
    background: #fff !important;
    box-shadow: 0 28px 80px rgba(11,33,53,.12) !important;
}
body:has(.ab-login-shell) .fi-simple-header { display: none !important; }
body:has(.ab-login-shell) .fi-simple-main > .fi-logo,
body:has(.ab-login-shell) .fi-simple-main > img { display: none !important; }
.ab-login-shell { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(380px,.9fr); min-height: 642px; }
.ab-login-story {
    position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: space-between;
    overflow: hidden; padding: 2.1rem 2.35rem 2rem;
    border-right: 1px solid rgba(182,139,63,.15);
    background:
        radial-gradient(circle at 78% 17%,rgba(210,178,115,.20),transparent 15rem),
        radial-gradient(circle at 15% 93%,rgba(16,45,69,.07),transparent 19rem),
        linear-gradient(143deg,#fffdf7 0%,#f9f8f2 52%,#edf2f1 100%);
}
.ab-login-story::before {
    content: ''; position: absolute; z-index: -1; inset: 0; opacity: .35;
    background-image: linear-gradient(rgba(182,139,63,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(182,139,63,.07) 1px,transparent 1px);
    background-size: 45px 45px; mask-image: linear-gradient(130deg,rgba(0,0,0,.6),transparent 75%);
}
.ab-login-story__watermark { position: absolute; width: 330px; height: 330px; right: -90px; bottom: -100px; z-index: -1; opacity: .045; transform: rotate(-10deg); object-fit: contain; pointer-events: none; }
.ab-login-story__top { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.ab-login-identity { display: flex; align-items: center; gap: 1rem; }
.ab-login-identity__seal { display: grid; place-items: center; flex: 0 0 138px; width: 138px; height: 138px; padding: .34rem; border-radius: 1.2rem; background: rgba(255,255,255,.72); border: 1px solid rgba(182,139,63,.3); box-shadow: 0 12px 30px rgba(64,44,31,.075); }
.ab-login-identity__seal img { width: 124px; height: 124px; object-fit: contain; }
.ab-login-identity__text { min-width: 0; display: flex; flex-direction: column; gap: .26rem; }
.ab-login-identity__overline { font-weight: 800; color: #8c6a36; letter-spacing: .13em; font-size: .64rem; }
.ab-login-identity__text strong { font-size: 1.65rem; letter-spacing: .01em; font-weight: 900; line-height: 1.1; color: var(--ab-navy); }
.ab-login-identity__text > span:last-child { font-size: .74rem; line-height: 1.52; color: #5e6b73; }
.ab-login-story__pill { border: 1px solid rgba(182,139,63,.25); border-radius: 999px; color: #8d682f; background: rgba(255,255,255,.74); padding: .35rem .62rem; font-size: .65rem; font-weight: 800; }
.ab-login-story__content { max-width: 590px; margin: 1.4rem 0 1.8rem; }
.ab-login-story__ornament { display: inline-grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: .45rem; background: rgba(182,139,63,.12); color: #a87b35; margin-bottom: .7rem; }
.ab-login-story__eyebrow, .ab-login-panel__eyebrow { display: block; color: #936d33; font-size: .68rem; font-weight: 850; letter-spacing: .11em; }
.ab-login-story h1 { margin: .7rem 0 0; font-size: clamp(2.05rem,3vw,3.1rem); line-height: 1.07; letter-spacing: -.044em; font-weight: 850; color: var(--ab-navy); }
.ab-login-story__content > p { margin: 1rem 0 0; color: #596d78; font-size: .94rem; line-height: 1.66; }
.ab-login-flow { display: flex; align-items: center; gap: .36rem; flex-wrap: wrap; margin-top: 1.1rem; }
.ab-login-flow span { padding: .37rem .6rem; background: rgba(255,255,255,.85); border: 1px solid rgba(182,139,63,.17); border-radius: 999px; font-size: .73rem; font-weight: 700; color: var(--ab-navy); }
.ab-login-flow b { color: var(--ab-gold); }
.ab-login-story__benefits { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .55rem; }
.ab-login-story__benefit { display: flex; align-items: flex-start; gap: .5rem; min-width: 0; min-height: 100px; padding: .8rem .7rem; background: rgba(255,255,255,.83); border: 1px solid rgba(182,139,63,.13); border-radius: .8rem; }
.ab-login-story__benefit svg { width: 1.3rem; height: 1.3rem; flex: 0 0 1.3rem; color: #a87f42; }
.ab-login-story__benefit span { display: flex; flex-direction: column; gap: .28rem; min-width: 0; }
.ab-login-story__benefit strong { color: var(--ab-navy); font-size: .76rem; font-weight: 800; }
.ab-login-story__benefit small { color: #6b7a81; font-size: .67rem; line-height: 1.45; }
.ab-login-panel { display: grid; align-items: center; padding: 3.5rem 3.1rem; background: #fff; }
.ab-login-panel__inner { width: 100%; max-width: 390px; margin: auto; }
.ab-login-panel__mobile-brand { display: none; }
.ab-login-panel h2 { margin: .8rem 0 .4rem; color: var(--ab-navy); font-size: clamp(1.52rem,2vw,2rem); line-height: 1.14; font-weight: 850; letter-spacing: -.027em; }
.ab-login-panel__intro { color: var(--ab-muted); font-size: .89rem; line-height: 1.65; margin-bottom: 1.5rem; }
.ab-login-panel .fi-fo-field-wrp-label { color: var(--ab-navy); }
.ab-login-panel .fi-input-wrp { border-radius: .72rem; }
.ab-login-panel .fi-btn-color-primary { background-color: var(--ab-navy) !important; }
.ab-login-panel .fi-btn-color-primary:hover { background-color: #194363 !important; }
.ab-login-panel__security { display: flex; align-items: center; justify-content: center; gap: .4rem; border-top: 1px solid #ecefeb; margin-top: 1.65rem; padding-top: 1rem; color: #798793; font-size: .7rem; }
.ab-login-panel__security svg { flex: 0 0 1rem; width: 1rem; height: 1rem; }
.ab-login-panel__powered { text-align: center; font-size: .69rem; color: #9aa4a3; margin-top: .75rem; }
.ab-login-panel__powered strong { color: #997239; }
@media (max-width: 1040px) {
    .ab-login-shell { grid-template-columns: minmax(0,1fr) minmax(330px,.95fr); }
    .ab-login-story { padding: 1.7rem; }
    .ab-login-identity__seal { flex-basis: 105px; width: 105px; height: 105px; }
    .ab-login-identity__seal img { width: 96px; height: 96px; }
    .ab-login-story__benefit { flex-direction: column; }
    .ab-login-panel { padding: 2.6rem 2rem; }
}
@media (max-width: 750px) {
    body:has(.ab-login-shell) .fi-simple-layout { padding: .9rem; }
    body:has(.ab-login-shell) .fi-simple-main { border-radius: 1.25rem !important; }
    .ab-login-shell { display: block; min-height: 0; }
    .ab-login-story { display: none; }
    .ab-login-panel { padding: 1.75rem 1.35rem 2rem; min-height: 570px; }
    .ab-login-panel__mobile-brand { display: flex; align-items: center; gap: .9rem; margin-bottom: 2rem; }
    .ab-login-panel__mobile-brand img { width: 82px; height: 82px; object-fit: contain; }
    .ab-login-panel__mobile-brand strong { font-size: 1.4rem; color: var(--ab-navy); letter-spacing: .05em; }
    .ab-dashboard-hero { grid-template-columns: 1fr; padding: 1.2rem; }
    .ab-dashboard-hero__logo { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .ab-login-shell *, .ab-dashboard-hero * { scroll-behavior: auto !important; transition-duration: 0s !important; animation-duration: 0s !important; }
}


/* Lot 2.4 — synthèses et périodes, sobres et adaptées au branding institutionnel */
.alb-finance-summary{border:1px solid #e6e8eb;border-radius:17px;background:#fff;padding:22px 24px;box-shadow:0 12px 34px rgba(15,42,65,.035);margin-bottom:1.15rem;color:#133451}
.alb-period-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;border-bottom:1px solid #e9edf0;padding-bottom:20px}
.alb-presets,.alb-date-range{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.alb-period-label{font-weight:700;font-size:.82rem;margin-right:5px}
.alb-filter-pill{font-size:.78rem;font-weight:600;padding:9px 13px;border:1px solid #dde5ed;border-radius:11px;background:#fff;color:#314b5d;cursor:pointer}
.alb-filter-pill.is-active{background:#eff8f5;color:#117e64;border-color:#8fe3c3}
.alb-date-range label{display:flex;flex-direction:column;gap:4px;color:#637b8e;font-size:.72rem;font-weight:700}
.alb-date-input{border:1px solid #d5e0e9;border-radius:10px;background:white;padding:8px 10px;color:#1b3144;font-size:.8rem;min-height:38px}
.alb-apply{align-self:flex-end;border:0;background:#0f8773;color:white;border-radius:11px;padding:10px 16px;min-height:38px;font-size:.8rem;font-weight:700;cursor:pointer}
.alb-finance-metrics{display:grid;grid-template-columns:1.3fr .8fr 2.6fr .85fr;gap:0;padding-top:18px;align-items:center}
.alb-finance-number{display:flex;flex-direction:column;gap:4px;padding:0 18px;border-right:1px solid #e2e8ef;min-width:0}
.alb-finance-number:first-child{padding-left:0}
.alb-finance-number:last-child{border-right:none}
.alb-finance-number strong{font-size:1.55rem;line-height:1.2;font-weight:800;color:#082a43;letter-spacing:-.025em;white-space:nowrap}
.alb-finance-number strong small{font-size:.68em}
.alb-finance-number b,.alb-channels b{font-size:.83rem;color:#102f48;font-weight:700}
.alb-finance-number span,.alb-channels-heading span{font-size:.73rem;color:#8391a2}
.alb-channels{padding:0 18px;min-width:0;border-right:1px solid #e2e8ef}
.alb-channels-heading{display:flex;justify-content:space-between;gap:8px;margin-bottom:12px}
.alb-channel-track{display:flex;overflow:hidden;height:9px;border-radius:100px;background:#e9eef3}
.alb-channel-track span{height:100%}
.alb-channel-cash{background:#129d7e}.alb-channel-wave{background:#16bbee}
.alb-channel-labels{display:flex;flex-wrap:wrap;gap:12px;padding-top:9px;color:#60778b;font-size:.73rem;align-items:center}
.alb-channel-labels span{display:flex;align-items:center;gap:5px}.alb-channel-labels b{font-size:.73rem}
.alb-wave-icon{width:23px;height:17px;object-fit:contain;border-radius:3px}
.alb-pending strong{color:#b4781f}
.alb-reminder-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding-top:20px}
.alb-reminder-metrics > div{display:flex;flex-direction:column;gap:4px;padding:0 19px;border-right:1px solid #e5ebef}
.alb-reminder-metrics > div:first-child{padding-left:0}.alb-reminder-metrics > div:last-child{border-right:0}
.alb-reminder-metrics strong{font-size:1.6rem;color:#082a43}.alb-reminder-metrics b{font-size:.84rem}.alb-reminder-metrics small{font-size:.73rem;color:#71869a}
.alb-reminder-info{margin:14px 0 0;font-size:.75rem;color:#74849a}
@media (max-width:1140px){.alb-finance-metrics{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:18px}.alb-finance-number:nth-child(2){border-right:0}.alb-channels{padding-left:0}}
@media (max-width:640px){.alb-finance-summary{padding:16px}.alb-finance-metrics{grid-template-columns:1fr}.alb-finance-number,.alb-finance-number:first-child,.alb-channels{padding:12px 0;border-right:0;border-bottom:1px solid #edf0f4}.alb-reminder-metrics{grid-template-columns:repeat(2,1fr);row-gap:18px}.alb-reminder-metrics > div:nth-child(2){border-right:0}.alb-date-input{max-width:142px}}

/* Lot 2.5 — synthèse arriérés, dans l'esprit Créances & Recouvrement */
.alb-arrears-summary{padding:22px 23px;border:1px solid #e6e8eb;border-radius:17px;background:#fff;box-shadow:0 12px 34px rgba(15,42,65,.035);margin-bottom:1.15rem;color:#133451}
.alb-arrears-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding-bottom:20px;border-bottom:1px solid #e7ebef}
.alb-arrears-stats>div{display:flex;flex-direction:column;gap:5px;min-width:0;padding:0 20px;border-right:1px solid #e1e8ee}
.alb-arrears-stats>div:first-child{padding-left:0}.alb-arrears-stats>div:last-child{padding-right:0;border:0}
.alb-arrears-stats strong{font-size:clamp(1.2rem,1.9vw,1.65rem);letter-spacing:-.025em;font-weight:800;color:#092d49;line-height:1.3}
.alb-arrears-stats strong small{font-size:.61em}.alb-arrears-stats .alb-arrears-critical{color:#bf3535}
.alb-arrears-stats b{font-size:.81rem;font-weight:730;color:#17334e}
.alb-arrears-stats span,.alb-arrears-age__heading span{font-size:.74rem;color:#8292a4}
.alb-arrears-age{padding-top:16px}.alb-arrears-age__heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.alb-arrears-age__heading b{font-size:.81rem}.alb-arrears-track{height:9px;background:#eef2f5;border-radius:10px;display:flex;overflow:hidden}
.alb-arrears-band{display:block;height:100%;flex:0 0 auto}.alb-arrears-band--0,.alb-arrears-dot--0{background:#4a87e8}
.alb-arrears-band--1,.alb-arrears-dot--1{background:#e5b129}.alb-arrears-band--2,.alb-arrears-dot--2{background:#ee8e3a}.alb-arrears-band--3,.alb-arrears-dot--3{background:#d94b48}
.alb-arrears-legend{display:flex;flex-wrap:wrap;gap:9px 17px;margin-top:12px;color:#587087;font-size:.74rem}
.alb-arrears-legend span{display:inline-flex;align-items:center;gap:5px}.alb-arrears-legend b{font-weight:750;color:#254258}
.alb-arrears-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}
.alb-arrears-table__help{font-size:.79rem;color:#657c91;margin:0 0 12px 2px}
.alb-overdue-detail dl{display:grid;grid-template-columns:1fr 1fr;gap:13px 20px}
.alb-overdue-detail dl>div{border-bottom:1px solid #e9edf2;padding-bottom:9px}.alb-overdue-detail dt{font-size:.73rem;color:#6e8598}.alb-overdue-detail dd{margin:4px 0 0;font-size:.9rem;color:#123451;font-weight:650}
.alb-overdue-detail p{font-size:.76rem;color:#7a8da1;margin-top:15px}
@media(max-width:850px){.alb-arrears-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 0}.alb-arrears-stats>div:nth-child(2){border-right:0}.alb-arrears-stats>div:nth-child(3){padding-left:0}.alb-arrears-age__heading{align-items:flex-start;flex-direction:column}}
@media(max-width:550px){.alb-arrears-summary{padding:15px}.alb-arrears-stats>div{padding:0 10px}.alb-arrears-stats strong{font-size:1.2rem}.alb-overdue-detail dl{grid-template-columns:1fr}}

/* Lot 2.6 - tableaux de synthèse, rapports et élève */
.alb-kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0 20px}
.alb-kpi-row>div{background:#fff;border:1px solid #e5eaf0;border-radius:14px;padding:20px 19px;min-width:0;box-shadow:0 8px 22px rgba(14,43,62,.035);display:flex;flex-direction:column;gap:8px}
.alb-kpi-row span{font-size:12px;font-weight:650;color:#546b80}.alb-kpi-row strong{font-size:25px;color:#102c43;font-weight:850;letter-spacing:-.04em;line-height:1.2}
.alb-kpi-row strong small{font-size:12px;font-weight:700}.alb-kpi-row small{font-size:11px;color:#758899}
.alb-kpi-students>div{border-top:3px solid #c39a4c}
.alb-class-breakdown{padding:20px 22px;border:1px solid #e4e9ee;background:#fff;border-radius:16px;margin:10px 0 20px}
.alb-class-breakdown>b{display:block;color:#102c43;font-size:15px;margin-bottom:15px}
.alb-class-tags{display:flex;flex-wrap:wrap;gap:9px}.alb-class-tags span{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border-radius:11px;background:#f8f9f8;border:1px solid #e6e9ea;font-size:12px;color:#1c3950}
.alb-class-tags small{font-size:10px;color:#758899}.alb-class-tags strong{padding:2px 8px;border-radius:12px;background:#efe0c1;color:#79591e}
.alb-report-period{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:16px 0;padding:16px;background:#fff;border:1px solid #e5e9ed;border-radius:15px}
.alb-report-period>span{color:#1c3950;font-weight:800;font-size:12px;margin-right:10px}.alb-report-period label{font-size:11px;color:#64748b;display:flex;flex-direction:column;gap:3px;margin-left:auto}
.alb-report-period label+label{margin-left:0}.alb-report-period .alb-filter-pill{font-size:11px;border-radius:9px;border:1px solid #d7e0e8;background:#fff;padding:10px 12px;color:#24455c;cursor:pointer}
.alb-report-period .alb-filter-pill.is-active{border-color:#c49b48;background:#fff7e8;color:#805b24}
.alb-report-period .alb-date-input{border:1px solid #d4dee8;border-radius:9px;min-height:37px;padding:5px 9px;color:#24455c;background:#fff}
.alb-report-period .alb-apply{background:#123451;color:#fff;padding:10px 16px;border-radius:9px;font-size:12px;font-weight:700;cursor:pointer}
.alb-dashboard-banner{display:flex;align-items:center;justify-content:space-between;gap:22px;border:1px solid #e7decb;background:linear-gradient(110deg,#fffefa,#f1f5f4);border-radius:18px;padding:24px 30px;margin-bottom:18px}
.alb-dashboard-banner small,.alb-reports-heading small{color:#997634;font-weight:850;font-size:10px;letter-spacing:.07em}
.alb-dashboard-banner h2,.alb-reports-heading h2{font-size:25px;font-weight:850;color:#123451;margin:8px 0}.alb-dashboard-banner p,.alb-reports-heading p{font-size:13px;color:#667b8a}
.alb-dashboard-banner span{font-size:10px;color:#708080;display:block;margin-top:16px}.alb-dashboard-banner img{max-width:110px;height:110px;object-fit:contain}
.alb-quick-links{display:flex;flex-wrap:wrap;gap:10px}.alb-quick-links a,.alb-report-exports a{display:inline-block;border:1px solid #e2e7e9;background:#fff;color:#123451;border-radius:10px;padding:9px 13px;font-size:12px;font-weight:800}
.alb-quick-links a:nth-child(2),.alb-report-exports a:first-child{background:#123451;color:white}
.alb-month-bars{display:flex;flex-direction:column;gap:12px}.alb-month-row{display:grid;grid-template-columns:100px 1fr 115px;align-items:center;gap:14px;font-size:12px;color:#52687b}.alb-month-row>div{height:13px;background:#f0f2f2;border-radius:20px;overflow:hidden}.alb-month-row i{display:block;height:100%;border-radius:20px;background:#c39a4c}.alb-month-row strong{text-align:right;color:#123451}
.alb-reports-heading{display:flex;justify-content:space-between;gap:15px;align-items:center}.alb-report-exports{display:flex;gap:7px;align-items:center}
.alb-report-insights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.alb-report-insights>div{background:#f7fafb;border:1px solid #e0e9ed;border-radius:12px;padding:15px}.alb-report-insights small{color:#976d24;text-transform:uppercase;font-weight:800;font-size:10px}.alb-report-insights p{font-size:12px;color:#26465b;line-height:1.6;margin-top:8px}
.alb-info-note{font-size:11px;color:#60798a;margin:10px 0}.alb-scroll-table{overflow-x:auto}.alb-plain-table{width:100%;border-collapse:collapse;font-size:12px}.alb-plain-table th{background:#f4f7f9;text-align:left;color:#324b60;padding:12px}.alb-plain-table td{padding:13px 12px;border-bottom:1px solid #edf0f2;color:#30445a}.alb-plain-table td small{display:block;color:#789;font-size:10px;margin-top:5px}
@media(max-width:900px){.alb-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}.alb-report-insights{grid-template-columns:1fr}.alb-report-period label{margin-left:0}}@media(max-width:580px){.alb-kpi-row{grid-template-columns:1fr}.alb-dashboard-banner img{width:64px;height:64px}.alb-month-row{grid-template-columns:80px 1fr 70px}.alb-report-period label{width:100%}.alb-reports-heading{flex-direction:column;align-items:flex-start}}

/* Lot 2.8 — Graphes du tableau de bord et archives institutionnelles */
.alb-six-month-chart{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:end;gap:16px;min-height:215px;padding:12px 10px 3px}
.alb-chart-col{display:flex;min-width:0;flex-direction:column;gap:8px;text-align:center;align-items:stretch}
.alb-chart-col strong{font-size:12px;color:#18374e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.alb-chart-track{height:145px;border-radius:0;background:transparent;border-bottom:2px solid #dce5ea;display:flex;align-items:end;overflow:visible}
.alb-chart-track span{display:block;width:100%;min-height:0;background:linear-gradient(0deg,#947036,#c9a152);border-radius:8px 8px 0 0;transition:height .2s}
.alb-chart-col small{font-size:11px;color:#688099;line-height:1.3}
.alb-coverage-graph{height:20px;border-radius:100px;background:#edf1f5;overflow:hidden}
.alb-coverage-graph span{display:block;height:100%;background:#0e9a77;border-radius:100px}
.alb-report-year-select{display:flex;align-items:center;flex-wrap:wrap;gap:12px;background:#fff;border:1px solid #e6eaee;border-radius:14px;padding:17px 20px}
.alb-report-year-select label{font-size:12px;font-weight:800;color:#123451}
.alb-report-year-select select{font-size:13px;border:1px solid #d8e1e8;border-radius:8px;padding:9px 13px;min-width:210px;background:#fff}
.alb-report-year-select button{background:#123451;color:#fff;border-radius:9px;padding:10px 15px;font-size:12px;font-weight:750;cursor:pointer}
.alb-report-year-select button:disabled{opacity:.5}
@media(max-width:600px){.alb-six-month-chart{gap:7px}.alb-chart-col small{font-size:9px}.alb-chart-col strong{font-size:9px}.alb-chart-track{height:115px}}

/* Lot 2.11 — actions distinctes de consultation et d'export des archives */
.alb-archive-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.alb-archive-actions a{display:inline-block;padding:7px 12px;border:1px solid #d4dfe5;border-radius:7px;text-decoration:none;background:#fff;color:#123451;font-size:12px;font-weight:700;white-space:nowrap}
.alb-archive-actions a:first-child{background:#123451;border-color:#123451;color:white}
.alb-archive-actions a:hover,.alb-report-exports a:hover{filter:brightness(.92)}
.alb-archive-actions a:focus-visible,.alb-report-exports a:focus-visible{outline:3px solid #c39a4c;outline-offset:3px}
