/* Shared visual palette: stronger contrast while keeping light surfaces. */
:root{
  --primary:#c9006d;
  --fscf-blue:#009ee2;
  --fscf-blue-ink:#006f9f;
  --fscf-magenta:#e5007e;
  --fscf-yellow:#fab900;
  --fscf-red:#e32213;
  --primary-soft:#fce7f2;
  --ink:#202e47;
  --muted:#52617b;
  --line:#a2b7d0;
  --canvas:#dfe9f3;
  --surface:#fff;
  --surface-subtle:#edf2fa;
  --shadow:0 6px 18px #203d641a;
  color:var(--ink);
  background:var(--canvas);
}
body,.app-layout,.content{background:var(--canvas)}
.sidebar{background:linear-gradient(165deg,#d3e8f5 0%,#e1eaf6 100%);border-right:2px solid #9db5d0}
.brand{border-bottom:1px solid #b7c7e0;margin-bottom:12px}
.brand img{background:#ffffffc9;border-radius:10px}
.brand-word span,.sidebar-user small{color:#455877}
.nav-label{color:#465a7b;font-weight:700}
.nav-item{color:#30486d;font-weight:550}
.nav-item:hover{background:#eaf0fd;color:#233b63}
.nav-item.active{background:var(--fscf-blue-ink);color:#fff;box-shadow:0 3px 9px #14517b26,inset 3px 0 #83d4f5}
.nav-item.active .nav-count{background:#005881;color:#fff}
.demo-selector{background:#edf3fd;border-color:#b0c2df}
.sidebar-user{border-top-color:#b3c4df}
.topbar{background:#fff;border-bottom-color:#b8c7df;box-shadow:0 2px 8px #223b5d06}
.breadcrumb strong{color:#2d405f;font-weight:600}
.season-pill{background:#edf2fb;border-color:#b5c5df;color:#3a5076}
.card,.panel,.metric,.planning-board,.pool{border:2px solid var(--line);border-top:4px solid var(--fscf-blue);box-shadow:var(--shadow)}
h1{color:#1c2c49;font-weight:700}
h2,h3,.section-heading h2,.section-heading h3{color:#253957}
.page-subtitle,.muted,.metric-top,.metric-foot,.legend-row,.person-meta,.bottom-caption{color:var(--muted)}
.data-note{color:var(--muted)!important}
.detail-row>span,.equipment-card-body p,.equipment-media-count,.commune-note,.commune-sleeping-note,
.mairie-source-person>span,.mairie-source-person>small,.mairie-person-card p,
.trombinoscope-phone,.trombinoscope-phone a,.resource-body>p,.material-main>p.muted{color:var(--muted)}
.button{color:#334b70;border-color:#b0bfd8}
.button.primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 3px 8px #263d9b20}
.button.primary:hover{background:#ad005d;border-color:#ad005d}
.button.secondary{background:#edf2fc;border-color:#adbedb;color:#30486d}
.button.secondary:hover{background:#dfe8fa;border-color:#8da4cb}
.button.ghost{color:var(--primary);border-color:transparent}
.button.ghost:hover{background:#e8eefb}
.icon-button{color:#516584}
.button.danger{color:#a32642;background:#fff1f4;border-color:#e8afbd}
.field>span,.list-editor legend{color:#344a6b;font-weight:600}
.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea,.search-input,.list-editor input{
  background:#fff;border-color:#adbed8;color:var(--ink);
}
input::placeholder,textarea::placeholder{color:#61718a;opacity:1}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid var(--fscf-blue-ink);outline-offset:3px;
}
.filters,.segmented,.workspace-tabs{background:#dfe7f5}
.filters button,.segmented button,.workspace-tabs button{color:#405474}
.filters button.active,.segmented button.active,.workspace-tabs button.active{
  background:#fff;color:#293dab;box-shadow:0 2px 5px #263d6415,inset 0 -2px var(--primary);
}
.program-content-tabs{border-bottom-color:#becbe0}
.program-content-tabs button{background:var(--tab-tint,#e7edf8);color:#314767;border:1px solid #a6bbd3;border-top:3px solid var(--tab-mark,var(--fscf-blue));font-weight:600}
.program-content-tabs button:hover{background:#dbe5f7;color:#2e4366}
.program-content-tabs button.active{background:var(--tab-accent,var(--fscf-blue-ink));border-color:var(--tab-accent,var(--fscf-blue-ink));color:#fff;box-shadow:0 3px 7px #293e9e1b}
.program-mode-switch{background:#e1e8f5;border:1px solid #b8c8e1}
.program-mode-switch button{color:#435675}
.program-mode-switch button.active{background:var(--fscf-blue-ink);color:#fff}
.program-day{background:#cfebf8;color:#244463;font-weight:600;border-bottom:1px solid #93b9d0}
.program-axis,.program-axis-corner,.program-axis-footer{background:#e2eaf7;color:#34486b}
.program-cell{background:#f8faff;border-top-color:#c1cee4}
.program-day-column>.program-cell:nth-of-type(even){background:#f0f4fc}
.program-day-column,.program-view-compact .program-grid,.program-view-compact .program-day-column{border-color:#bfcee4}
.program-cell-label strong,.program-empty{color:#52647e}
.program-see-day,.program-more-activities{color:#3047b8}
.current-week-team>summary{color:#304768}
.current-week-status{background:#dce7fa;color:#314b85}
.mairie-contact-card{background:#eaf0fc;border-color:#bac9e5}
.mairie-source-person,.mairie-person-card,.equipment-card,.commune-preview,.trombinoscope-card{border-color:#bdcce2}
.equipment-card-body h3,.commune-title h2{color:#263957}
.data-table th{color:#475b7a;border-bottom-color:#b6c6df}
.data-table td{border-bottom-color:#d5dfee}
@media print{
  body,.app-layout,.content{background:#fff}
  .card,.panel,.metric,.planning-board,.pool{box-shadow:none}
}

/* The four colours are taken from the supplied ELI / FSCF logo. */
.topbar{position:relative;border-bottom:0}
.topbar::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(to right,var(--fscf-blue) 0 25%,var(--fscf-magenta) 25% 50%,var(--fscf-yellow) 50% 75%,var(--fscf-red) 75% 100%)}
.brand{border-bottom:3px solid var(--fscf-blue)}
.metric:nth-child(2),.dashboard-main>.card:nth-child(2){border-top-color:var(--fscf-magenta)}
.metric:nth-child(3),.dashboard-secondary>.card:first-child{border-top-color:var(--fscf-yellow)}
.metric:nth-child(4),.dashboard-secondary>.card:nth-child(2){border-top-color:var(--fscf-red)}
.program-content-tabs [data-program-tab=program]{--tab-mark:var(--fscf-blue);--tab-accent:var(--fscf-blue-ink);--tab-tint:#e4f4fb}
.program-content-tabs [data-program-tab=meals]{--tab-mark:var(--fscf-magenta);--tab-accent:#c9006d;--tab-tint:#fcebf4}
.program-content-tabs [data-program-tab=youth]{--tab-mark:var(--fscf-yellow);--tab-accent:var(--fscf-yellow);--tab-tint:#fff5da}
.program-content-tabs [data-program-tab=commune]{--tab-mark:var(--fscf-red);--tab-accent:#c62417;--tab-tint:#fff0ec}
.program-content-tabs [data-program-tab=youth].active{color:#483400}
.weekly-program.program-tab-meals{border-top-color:var(--fscf-magenta)}
.weekly-program.program-tab-youth{border-top-color:var(--fscf-yellow)}
.weekly-program.program-tab-commune{border-top-color:var(--fscf-red)}
.current-week-team{border-top-color:var(--fscf-magenta)}
.current-week-commune .equipment-panel{border-top-color:var(--fscf-yellow)}
.program-view-compact .program-grid,.program-grid{border:2px solid #8faec9}
.program-day-column,.program-view-compact .program-day-column{border-color:#a7bfd6}
.program-cell,.program-axis{border-top-color:#afc3d9}
.program-axis,.program-axis-corner,.program-axis-footer{background:#e5edf6;border-left:3px solid var(--fscf-yellow)}
.mairie-contact-card{border:2px solid #a8c5dd;border-left:4px solid var(--fscf-blue);background:#edf6fc}
.equipment-card,.commune-preview,.trombinoscope-card{border-width:2px;border-color:#acc1d7}
.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea,.search-input{border-color:#8faac6}
