:root{--blue:#1f5fae;--blue-d:#164a8a;--yellow:#ffc933;--green:#37a35b;--bg:#fbfdff;--ink:#1d2a3a}
body{color:var(--ink);background:var(--bg);font-size:1rem;line-height:1.6}
a{color:var(--blue)}
.btn-primary{background:var(--blue);border-color:var(--blue)}.btn-primary:hover{background:var(--blue-d);border-color:var(--blue-d)}
.btn-warning{background:var(--yellow);border-color:var(--yellow);color:#3b2d00;font-weight:600}
.navbar-school{background:#fff;border-bottom:4px solid var(--yellow);box-shadow:0 2px 8px rgba(0,0,0,.05)}
.navbar-school .navbar-brand{color:var(--blue);font-weight:700;font-size:1.05rem}
.navbar-school .nav-link{color:var(--ink);font-weight:500;border-radius:.5rem}
.navbar-school .nav-link.active,.navbar-school .nav-link:hover{color:var(--blue);background:#eaf2fc}
.navbar-school .nav-parents{background:var(--green);color:#fff!important}
.hero{background:linear-gradient(135deg,#eaf2fc 0%,#fff8dc 100%);padding:3rem 0}
.hero h1{color:var(--blue);font-weight:800;font-size:clamp(1.7rem,5vw,2.8rem)}
.hero-art{font-size:6rem;position:relative}.hero-art span{font-size:2.5rem;position:absolute}
.hero-art span:nth-child(1){top:0;left:12%}.hero-art span:nth-child(2){bottom:0;right:10%}.hero-art span:nth-child(3){top:20%;right:2%}
.tiles .tile{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.2rem;padding:1.2rem .6rem;border-radius:1rem;background:#fff;text-decoration:none;color:var(--ink);border:2px solid #e3edf9;height:100%;transition:transform .15s}
.tiles .tile:hover{transform:translateY(-3px);border-color:var(--yellow)}.tiles .tile span{font-size:2.2rem}.tiles small{color:#667}
.section-title,.page h2{color:var(--blue);font-weight:700;border-left:6px solid var(--yellow);padding-left:.6rem;margin:1.5rem 0 1rem}
.page{padding-top:1.5rem}.page h1{color:var(--blue);font-weight:800;margin-bottom:1rem}.narrow{max-width:760px}
.card-news{border:0;border-left:5px solid var(--green);box-shadow:0 1px 6px rgba(0,0,0,.07)}.card-news a{text-decoration:none}
.date-badge{display:inline-block;background:var(--blue);color:#fff;border-radius:.4rem;padding:0 .45rem;font-weight:600;font-size:.85rem}
.events-mini li{margin-bottom:.5rem}
.panel{border-radius:1rem;padding:1.1rem 1.3rem;margin-bottom:1.2rem;background:#fff;border:1px solid #e3edf9}
.panel h2,.panel .h4{border:0;padding:0;margin-top:0}
.panel-blue{background:#eaf2fc;border-color:#cfe1f7}.panel-yellow{background:#fff8dc;border-color:#f5e3a0}.panel-green{background:#e8f6ee;border-color:#c3e6d0}
.team-card{border:0;box-shadow:0 1px 8px rgba(0,0,0,.08);border-radius:1rem}
.avatar{width:96px;height:96px;border-radius:50%;object-fit:cover;margin-bottom:.6rem}
.avatar-ph{display:inline-flex;align-items:center;justify-content:center;background:var(--yellow);color:#3b2d00;font-size:2.4rem;font-weight:700}
.card-act{border:0;border-top:5px solid var(--blue);box-shadow:0 1px 6px rgba(0,0,0,.07)}
.cat-sportive{border-top-color:var(--green)}.cat-sortie{border-top-color:var(--yellow)}.cat-fete{border-top-color:#e8634a}
.calendar .list-group-item{border-left:6px solid var(--blue)}
.cal-vacances{border-left-color:var(--green)!important}.cal-fete{border-left-color:#e8634a!important}.cal-sortie{border-left-color:var(--yellow)!important}.cal-reunion{border-left-color:#7a55c7!important}
.album-card{display:block;text-decoration:none;color:var(--ink);background:#fff;border-radius:1rem;overflow:hidden;box-shadow:0 1px 8px rgba(0,0,0,.1);height:100%}
.album-card img,.album-card .ph{width:100%;aspect-ratio:4/3;object-fit:cover;display:flex;align-items:center;justify-content:center;font-size:3rem;background:#eaf2fc}
.album-card span{display:block;padding:.6rem .8rem}.album-card small{display:block;color:#667}
.photo-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:.6rem}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.map{border-radius:1rem;overflow:hidden}
.site-footer{background:var(--blue);color:#fff}.site-footer a{color:var(--yellow)}
:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
/* Administration */
body.admin{background:#f3f6fa}.admin-side{background:#fff;min-height:calc(100vh - 56px);border-right:1px solid #e1e8f0}
body.admin .panel{background:#fff}.stat .display-6{color:var(--blue);font-weight:700}
body.admin-login{background:linear-gradient(135deg,#eaf2fc,#fff8dc);min-height:100vh}
@media (max-width:575px){.hero{padding:2rem 0}.hero-art{display:none}}
