*{box-sizing:border-box}
body{margin:0;font-family:Segoe UI,Arial,sans-serif;background:var(--bg,#f4f7fb);color:var(--text,#0f172a)}
.app-shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh}
.sidebar{background:var(--sidebar-bg,#0b1f3a);color:var(--sidebar-text,#dbeafe);padding:16px;display:flex;flex-direction:column;gap:6px}
.sidebar h2{margin:0 0 8px}
.sidebar a{display:block;color:var(--sidebar-text,#dbeafe);text-decoration:none;padding:9px;border-radius:8px;font-size:.95rem}
.sidebar a:hover{background:var(--sidebar-hover,#1e3a8a)}
.lang-switch{display:flex;gap:8px;margin-bottom:4px}
.lang-switch .lang-flag{display:inline-flex;align-items:center;justify-content:center;width:40px;height:36px;font-size:20px;line-height:1;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);border-radius:8px;text-decoration:none;padding:0}
.lang-flag.active{background:var(--sidebar-hover,#1e3a8a);border-color:rgba(255,255,255,.35)}
.sidebar-section{margin-top:10px;font-size:.8rem;text-transform:uppercase;opacity:.75}
.menu-group{display:block}
.menu-toggle{width:100%;text-align:left;background:transparent;color:var(--sidebar-text,#dbeafe);border:1px solid rgba(255,255,255,.15);padding:9px;border-radius:8px;cursor:pointer;font-weight:600}
.menu-toggle:hover{background:var(--sidebar-hover,#1e3a8a)}
.submenu{display:none;padding-left:10px;margin-top:6px}
.menu-group.open .submenu{display:block}
.menu-group.active .menu-toggle{background:var(--sidebar-hover,#1e3a8a);border-color:rgba(255,255,255,.35)}
.submenu a.active{background:var(--sidebar-hover,#1e3a8a);font-weight:700}
.sidebar > a.active{background:var(--sidebar-hover,#1e3a8a);font-weight:700}
html[dir="rtl"] body{direction:rtl}
html[dir="rtl"] .app-shell{grid-template-columns:280px 1fr}
html[dir="rtl"] .menu-toggle{text-align:right}
html[dir="rtl"] .submenu{padding-right:10px;padding-left:0}
html[dir="rtl"] .table th,html[dir="rtl"] .table td{text-align:right}
.content{padding:20px}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px}
.card{background:var(--card-bg,#fff);border:1px solid var(--border,#dbe4f2);border-radius:12px;padding:12px}
.card-link{display:block;color:inherit;text-decoration:none;transition:transform .12s ease,border-color .12s ease}
.card-link:hover{transform:translateY(-1px);border-color:var(--sidebar-hover,#1e3a8a)}
.table{width:100%;border-collapse:collapse;background:var(--card-bg,#fff);border:1px solid var(--border,#dbe4f2);border-radius:10px;overflow:hidden}
.table th,.table td{padding:9px;border-bottom:1px solid var(--table-row,#e2e8f0);text-align:left}
.auth-body{display:flex;min-height:100vh;align-items:center;justify-content:center;background:#0f172a}
.auth-card{background:#fff;padding:20px;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.2);width:min(420px,92vw)}
.auth-card h1{margin-top:0}
.auth-card form{display:grid;gap:8px}
input,select,button{padding:10px;border-radius:8px;border:1px solid #cbd5e1}
button{background:#2563eb;color:#fff;border:none;cursor:pointer}
.btn-danger{background:#dc2626}
.error{background:#fee2e2;color:#991b1b;padding:8px;border-radius:8px}
.success{background:#dcfce7;color:#166534;padding:8px;border-radius:8px}
.muted{color:var(--muted,#64748b)}
.form-grid{display:grid;gap:8px}
.settings-layout{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:14px;align-items:start}
.settings-block h2{margin:0 0 8px}
.settings-wide{grid-column:1 / -1}
.settings-plugins-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:8px 14px}
.prof-form-grid{display:grid;grid-template-columns:repeat(5,minmax(160px,1fr));gap:10px;align-items:end}
.prof-field{display:grid;gap:6px}
.prof-actions{margin-top:6px}
.details-profs-new-field-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:10px}
.details-profs-new-field-grid > div{display:grid;gap:6px}
.weekly-schedule-card{display:grid;gap:8px;border:1px solid var(--border,#dbe4f2);border-radius:10px;padding:10px;background:var(--card-bg,#fff)}
.weekly-schedule-row{display:grid;grid-template-columns:140px 1fr 1fr;gap:8px;align-items:end}
.weekly-schedule-row .day-name{font-weight:600}
.mission-form,.objectif-form{display:grid;gap:12px}
.mission-form-two-cols,.objectif-form-two-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.mission-form-fields,.mission-form-groups,.objectif-form-fields,.objectif-form-groups{display:grid;gap:8px}
.mission-submit,.objectif-submit{justify-self:start}
.qprofs-grid-3{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:12px;align-items:start}
.qprofs-grid-4{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:12px;align-items:start}
.qprofs-grid-3 > div,.qprofs-grid-4 > div{display:grid;gap:6px}
.alert-form{display:grid;gap:12px}
.alert-form-two-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.alert-form-fields,.alert-form-groups{display:grid;gap:8px}
.group-checklist{display:grid;gap:6px;max-height:220px;overflow:auto;border:1px solid var(--border,#dbe4f2);border-radius:10px;padding:10px;background:var(--card-bg,#fff)}
.group-check-item{display:flex;align-items:center;gap:8px;padding:4px 0}
.alert-submit{justify-self:start}
.plugin-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px}
.badge{padding:2px 8px;border-radius:999px;font-size:.8rem}
.badge-ok{background:#dcfce7;color:#166534}
.badge-off{background:#fee2e2;color:#991b1b}
.groupes-create-grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto;column-gap:16px;row-gap:0;align-items:end}
.groupes-field{display:grid;gap:6px}
.groupes-actions{display:grid;align-self:end}

.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px}
.modal-card{background:var(--card-bg,#fff);color:var(--text,#0f172a);width:min(640px,92vw);max-height:90vh;overflow:auto;border-radius:12px;padding:16px;box-shadow:0 10px 25px rgba(0,0,0,.25)}

body.theme-fluent{
	--bg:#f4f7fb;
	--text:#0f172a;
	--sidebar-bg:#0b1f3a;
	--sidebar-text:#dbeafe;
	--sidebar-hover:#1e3a8a;
	--card-bg:#ffffff;
	--border:#dbe4f2;
	--table-row:#e2e8f0;
	--muted:#64748b;
}

body.theme-futuriste{
	--bg:#0b1020;
	--text:#e6eefc;
	--sidebar-bg:#050814;
	--sidebar-text:#b8d4ff;
	--sidebar-hover:#1a2a5a;
	--card-bg:#10182d;
	--border:#273453;
	--table-row:#1a2744;
	--muted:#95a7cc;
}

body.theme-futuriste_white{
	--bg:#f9fbff;
	--text:#0f172a;
	--sidebar-bg:#0b1224;
	--sidebar-text:#dbeafe;
	--sidebar-hover:#1f2f57;
	--card-bg:#ffffff;
	--border:#dbe4f2;
	--table-row:#e2e8f0;
	--muted:#64748b;
}

@media(max-width:980px){
	.app-shell{grid-template-columns:1fr}
	.kpi-grid{grid-template-columns:repeat(2,1fr)}
	.settings-layout{grid-template-columns:1fr}
	.settings-wide{grid-column:auto}
	.settings-plugins-grid{grid-template-columns:1fr}
	.prof-form-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}
	.details-profs-new-field-grid{grid-template-columns:1fr}
	.weekly-schedule-row{grid-template-columns:1fr}
	.mission-form-two-cols,.objectif-form-two-cols{grid-template-columns:1fr}
	.qprofs-grid-3,.qprofs-grid-4{grid-template-columns:1fr}
	.alert-form-two-cols{grid-template-columns:1fr}
	.plugin-grid{grid-template-columns:repeat(1,1fr)}
}
