:root{--green:#073c2d;--deep:#052f24;--cream:#f7f1df;--gold:#e8ac23;--red:#b64235}*{box-sizing:border-box}body{margin:0;color:var(--green);background:radial-gradient(circle at 75% 0,#ddeced 0,transparent 30%),var(--cream);font-family:"Trebuchet MS",Arial,sans-serif}a{text-decoration:none;color:inherit}.home-shell{min-height:100vh;padding:clamp(24px,4vw,58px) clamp(22px,6vw,86px)}header{display:flex;align-items:center;justify-content:space-between}.brand{font:clamp(2.4rem,5vw,5rem)/1 Georgia,serif;letter-spacing:-.05em}.sun{color:var(--gold);margin-right:.25em}.home-shell nav{display:flex;gap:24px;align-items:center}.public-pill{border:2px solid var(--green);border-radius:999px;padding:12px 30px;font-weight:bold}.admin-dot{font-size:1.8rem;opacity:.55}.island{width:min(1030px,82vw);margin:7vh auto 0;padding:clamp(28px,5vw,72px);border-radius:18% 12% 16% 13%;background:radial-gradient(circle at 80% 65%,#27654f,var(--deep));box-shadow:0 28px 46px #4e391936}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.5vw,32px)}.cards a{overflow:hidden;border-radius:30px;box-shadow:0 18px 26px #0006;transition:.2s}.cards a:hover{transform:translateY(-8px)}.cards img{display:block;width:100%;height:100%;object-fit:cover}.portal,.simple-card,.admin-page{width:min(1050px,92vw);margin:5vh auto}.simple-card{max-width:560px;background:#fffaf0;padding:clamp(24px,5vw,54px);border-radius:28px;box-shadow:0 18px 45px #073c2d26}.back{display:inline-block;margin-bottom:20px;font-weight:bold}.class-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.class-card,.student-grid a,.folder-list a,.big-button{display:block;padding:28px;border-radius:20px;background:var(--green);color:white;text-align:center;font-weight:bold;box-shadow:0 8px 18px #0002}.student-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:850px}.folder-list{display:grid;gap:12px}.folder-list a{text-align:left;padding:18px}.simple-card form{display:grid;gap:18px;margin-top:28px}label{display:grid;gap:7px;font-weight:bold}input,select,button{font:inherit;padding:12px 14px;border:1px solid #9d9d80;border-radius:10px}button{border:0;background:var(--gold);color:var(--deep);font-weight:bold;cursor:pointer}.error{color:var(--red)}.notice{padding:12px;background:#e8f6df}.admin-page section{margin:22px 0;padding:24px;background:#fffaf0;border-radius:18px}.admin-page header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.admin-page header nav{display:flex;gap:16px;flex-wrap:wrap}.admin-page header nav a{padding:8px 4px;font-weight:800;opacity:.7}.admin-page header nav a.current{opacity:1;border-bottom:3px solid var(--gold)}.inline-form{display:flex;gap:10px;flex-wrap:wrap;align-items:center}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:10px;border-bottom:1px solid #ddd}.notice.error{background:#fbe4e0;color:var(--red)}.btn-danger{background:var(--red)!important;color:#fff!important}.small{color:#5a6b5f;font-size:.88rem}.small.error{color:var(--red)}code{background:#00000010;padding:2px 6px;border-radius:6px}
@media(max-width:720px){.cards{grid-template-columns:1fr}.island{width:92vw}.site-header{align-items:flex-start}.brand{font-size:2.2rem}.public-pill{padding:8px 16px}.student-grid,.class-grid{grid-template-columns:repeat(2,1fr)}}

/* --- Écrans admin étendus (permissions, classes, comptes) --------------- */
.stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:22px 0}
.stat-card{padding:20px 16px;background:#fffaf0;border-radius:16px;text-align:center;box-shadow:0 8px 18px #0001}
.stat-card strong{display:block;font:900 2.1rem/1 Georgia,serif;color:var(--deep)}
.stat-card span{display:block;margin-top:6px;font-size:.82rem;color:#5a6b5f}
.nav-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:22px 0}
.nav-card{display:block;padding:26px;background:var(--green);color:#fff;border-radius:20px;box-shadow:0 10px 22px #0002;transition:transform .18s ease}
.nav-card:hover{transform:translateY(-5px)}
.nav-card h2{margin:0 0 10px;font:800 1.5rem Georgia,serif}
.nav-card p{margin:0;font-size:.92rem;line-height:1.5;opacity:.92}
.mode-tabs{display:flex;gap:10px;margin:18px 0}
.mode-tabs a{padding:12px 20px;border-radius:14px;background:#fffaf0;font-weight:800;box-shadow:0 6px 14px #0001}
.mode-tabs a.current{background:var(--green);color:#fff}
.scan-box{background:#fffaf0;border-radius:16px;padding:16px 20px}
.scan-box summary{cursor:pointer;font-weight:800}
.scope-form{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end}
.scope-form .field{display:grid;gap:6px;min-width:220px}
.scope-form label{font-weight:800;font-size:.85rem}
details{margin:14px 0;border:1px solid #e2d9bd;border-radius:14px;padding:4px 18px;background:#fffefa}
details summary{padding:12px 0;cursor:pointer;font-weight:800;list-style:none}
details summary::-webkit-details-marker{display:none}
details summary::before{content:"▸ ";color:var(--gold)}
details[open] summary::before{content:"▾ "}
.check-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;padding:6px 0 18px}
.check-item{display:flex;align-items:flex-start;gap:8px;padding:9px 12px;border:1px solid #eee2c4;border-radius:10px;background:#fff;font-weight:600;font-size:.92rem}
.check-item input{margin-top:3px}
.stacked-form{display:grid;gap:14px;max-width:520px}
.account-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:14px;margin-bottom:10px;background:#fffaf0;border-radius:14px}
.account-row.inactive{opacity:.55}
.account-username{font-weight:900;min-width:110px}
.account-active{display:flex;align-items:center;gap:6px;font-size:.85rem;font-weight:700}
@media(max-width:900px){.stat-grid{grid-template-columns:repeat(2,1fr)}.nav-cards{grid-template-columns:1fr}}
