/* Interface métier institutionnelle : volontairement sobre, sans effets décoratifs excessifs. */
:root{--bg:#f5f7fa;--ink:#263238;--muted:#667085;--line:#e4e7ec;--shadow:0 1px 3px rgba(16,24,40,.06)}
body{font-family:Inter,Segoe UI,Arial,sans-serif;font-size:14px;background:var(--bg)}
.app-shell{grid-template-columns:248px 1fr}.sidebar{width:248px;padding:20px 14px;box-shadow:none}.brand{padding:0 8px 20px;border-bottom:1px solid var(--line);margin-bottom:18px}.brand-mark{width:38px;height:38px;border-radius:7px;box-shadow:none}.brand b{font-size:16px;letter-spacing:.5px}.brand small{font-size:11px}.nav-section{display:block;margin:20px 12px 7px;font-size:10px;font-weight:700;letter-spacing:1.2px;color:#98a2b3}.side-nav{gap:3px}.side-nav a{padding:9px 11px;border-radius:6px;font-weight:500;font-size:14px}.side-nav a i{font-size:16px;width:20px}.side-nav a.active{box-shadow:none;border-left:3px solid #d71920;padding-left:8px}.sidebar-version{margin-top:auto;padding:14px 12px 0;border-top:1px solid var(--line);font-size:11px;color:#98a2b3}.workspace{min-width:0}.topbar{height:64px;padding:0 28px}.topbar-title b{font-size:16px}.topbar-title small{font-size:10px}.top-actions{display:flex;align-items:center;gap:18px}.top-user{position:relative}.top-user summary{list-style:none;display:flex;align-items:center;gap:9px;cursor:pointer}.top-user summary::-webkit-details-marker{display:none}.top-avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#fff0f1;color:#d71920;font-weight:700}.top-user small,.top-user b{display:block}.top-user small{color:var(--muted);font-weight:400}.top-menu{position:absolute;right:0;top:43px;width:180px;background:#fff;border:1px solid var(--line);border-radius:7px;padding:7px;box-shadow:0 12px 30px rgba(16,24,40,.12);z-index:20}.top-menu button{width:100%;justify-content:flex-start;background:#fff;color:#344054;padding:9px;border-radius:5px}.top-menu button:hover{background:#fff0f1;color:#b51118;transform:none}.container{padding:28px;max-width:1240px}.hero,.program-hero{padding:22px 24px;border:1px solid var(--line);border-left:4px solid #d71920;border-radius:8px;background:#fff;color:var(--ink);box-shadow:var(--shadow)}.hero h1,.program-hero h1{font-size:27px;line-height:1.25;letter-spacing:0;margin:4px 0}.hero p,.program-hero p{color:var(--muted);margin:4px 0}.kicker{font-size:10px;letter-spacing:1.3px}.light{background:#d71920;color:#fff}.outline-light{background:#fff;color:#b51118;border:1px solid #e4a3a6}.stats{gap:12px;margin:16px 0 30px}.stats article,.panel,.table-card{border-radius:8px;box-shadow:var(--shadow);padding:18px}.stats strong{font-size:28px;margin-top:4px}.section-head,.page-head{margin:22px 0 16px}.page-head h1,.section-head h1{font-size:25px;letter-spacing:0;margin:3px 0}.section-head h2{font-size:20px;margin:3px 0}.program{border-radius:7px;padding:14px;box-shadow:none}.program:hover{transform:none;box-shadow:var(--shadow)}.year{border-radius:5px}.form-grid{max-width:900px;border-radius:8px}.form-section{grid-column:1/-1;padding-bottom:8px;border-bottom:1px solid var(--line)}.form-section h2{font-size:17px;margin:0 0 3px}.form-section p{margin:0;color:var(--muted);font-weight:400}input,select{padding:10px 11px;border-radius:6px}.button,button{padding:10px 15px;border-radius:6px;font-size:14px;font-weight:600}.button:hover,button:hover{transform:none}.table-card{border-radius:7px}th,td{padding:12px 15px}th{font-size:10px}.role-badge,.status{border-radius:4px;padding:4px 7px}.login-wrap{display:block;min-height:auto}.login-copy{display:none}.login-card{width:min(420px,100%);margin:auto;padding:30px;border-radius:8px;box-shadow:0 10px 35px rgba(16,24,40,.09)}.login-brand{text-align:center;margin-bottom:24px}.login-emblem{position:relative;display:block;width:54px;height:54px;margin:0 auto 14px;border:1px solid #f0d5d6;border-radius:7px;background:#fff}.login-emblem:before,.login-emblem:after{content:'';position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);background:#d71920}.login-emblem:before{width:28px;height:9px}.login-emblem:after{width:9px;height:28px}.login-brand h1{font-size:22px;margin:0}.login-brand p{color:var(--muted);margin:6px 0}.guest{max-width:none}.cards{font-family:Inter,Arial,sans-serif}@media(max-width:850px){.sidebar{width:auto}.side-nav{display:grid}.nav-section{margin-top:10px}.topbar{padding:0 14px}.topbar-title small{display:none}.container{padding:18px 14px}.hero h1,.program-hero h1{font-size:23px}.top-user small{display:none}}
