:root{--navy:#102a56;--navy-2:#173d77;--blue:#2d72d9;--blue-soft:#eaf2ff;--ink:#16233a;--muted:#71809a;--line:#e6ebf2;--bg:#f5f7fb;--white:#fff;--green:#2e9b6f;--green-soft:#eaf8f2;--orange:#d88a2b;--orange-soft:#fff4e7;--red:#d9535f;--red-soft:#fff0f1;--shadow:0 10px 30px rgba(26,48,82,.07);--radius:16px}*{box-sizing:border-box}html,body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}body{min-height:100vh}.app-shell{display:flex;min-height:100vh}.sidebar{width:260px;background:var(--navy);color:#d9e5fb;padding:22px 16px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 22px;color:white}.brand-mark{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#4d8ef0,#235db9);display:grid;place-items:center;color:white;font-weight:800;font-size:20px;box-shadow:0 8px 20px rgba(0,0,0,.15)}.brand strong{display:block;font-size:17px;letter-spacing:.03em}.brand small{display:block;color:#9fb4d5;font-size:11px;margin-top:2px}.workspace{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:11px 12px;font-size:12px;margin-bottom:22px}.workspace-dot{width:8px;height:8px;border-radius:50%;background:#4fd094}.chev{margin-left:auto;color:#8ea7ce}.nav-label{font-size:10px;letter-spacing:.14em;color:#7892ba;font-weight:800;padding:13px 11px 8px}.nav-item{display:flex;align-items:center;gap:11px;color:#c9d8ef;text-decoration:none;padding:11px 12px;border-radius:11px;font-size:13px;margin:3px 0}.nav-item:hover{background:rgba(255,255,255,.06);color:white}.nav-item.active{background:#fff;color:var(--navy);box-shadow:0 7px 18px rgba(0,0,0,.12);font-weight:700}.icon{display:inline-grid;place-items:center;width:18px;min-width:18px;font-size:16px}.sidebar-bottom{margin-top:auto}.help-link{display:flex;align-items:center;gap:10px;color:#b8cae4;text-decoration:none;padding:10px 11px;font-size:12px}.security-mini{display:flex;gap:10px;align-items:center;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.07);padding:12px;border-radius:12px;margin-top:10px}.security-mini strong,.security-mini small{display:block}.security-mini strong{font-size:11px;color:#dce8fb}.security-mini small{font-size:10px;color:#8fa7ca;margin-top:2px}.main{margin-left:260px;width:calc(100% - 260px)}.topbar{height:72px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 34px;position:sticky;top:0;z-index:10}.top-search{width:420px;display:flex;align-items:center;gap:8px;color:#91a0b8}.top-search input{border:0;outline:0;background:transparent;width:100%;font-size:13px;color:var(--ink)}.top-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.icon-btn,.logout{border:0;background:transparent;color:#77859d;text-decoration:none;font-size:16px}.avatar{width:36px;height:36px;border-radius:50%;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;text-decoration:none;font-weight:800;font-size:12px}.user-meta strong,.user-meta small{display:block}.user-meta strong{font-size:12px}.user-meta small{font-size:10px;color:var(--muted);margin-top:2px}.mobile-menu{display:none}.content{padding:28px 34px 50px;max-width:1500px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:22px}.eyebrow{font-size:10px;letter-spacing:.16em;color:#7d8ca5;font-weight:800;margin-bottom:6px}.page-head h1{font-size:25px;margin:0;letter-spacing:-.02em}.page-head-actions{display:flex;gap:8px}.grid{display:grid;gap:18px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card + .card{margin-top:18px}.card h2{margin:0 0 14px;font-size:16px}.muted{color:var(--muted)}.kpi{padding:18px}.kpi-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px;font-weight:700}.kpi-value{font-size:28px;font-weight:800;margin-top:10px;letter-spacing:-.03em}.kpi-note{font-size:10px;color:var(--green);margin-top:5px}.kpi-icon{width:36px;height:36px;border-radius:10px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center}.btn,button{font:inherit}.btn,button[type=submit],button:not(.icon-btn):not(.mobile-menu){border:0;border-radius:10px;background:var(--blue);color:white;padding:10px 15px;font-weight:700;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none}.btn.alt,button.alt{background:#eef2f7;color:#51617a}.btn.ghost{background:transparent;color:var(--blue);border:1px solid #d8e3f4}.btn.danger{background:var(--red)}label{display:block;font-size:11px;font-weight:700;color:#50617a;margin:12px 0 6px}input,select,textarea{width:100%;border:1px solid #dce3ec;border-radius:10px;background:#fff;padding:10px 12px;color:var(--ink);outline:0;font:inherit;font-size:12px}input:focus,select:focus,textarea:focus{border-color:#82aef0;box-shadow:0 0 0 3px #eaf2ff}textarea{resize:vertical;min-height:130px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px}.form-grid .full{grid-column:1/-1}.check{display:flex;align-items:center;gap:8px;padding:8px 0;font-weight:600}.check input{width:auto}.actions{display:flex;gap:8px;align-items:center;margin-top:16px;flex-wrap:wrap}.alert{padding:12px 14px;border-radius:11px;margin-bottom:16px;font-size:12px;display:flex;gap:9px;align-items:center}.alert.success{background:var(--green-soft);color:#247a58}.alert.danger{background:var(--red-soft);color:#a83a46}.alert.info{background:var(--blue-soft);color:#275cae}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;color:#8290a7;font-size:10px;letter-spacing:.05em;text-transform:uppercase;padding:11px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:13px 11px;border-bottom:1px solid #edf0f4;vertical-align:middle}tr:hover td{background:#fbfcfe}.badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800}.badge.green{background:var(--green-soft);color:#27835f}.badge.blue{background:var(--blue-soft);color:#2b64b8}.badge.orange{background:var(--orange-soft);color:#a86720}.badge.red{background:var(--red-soft);color:#ad3f49}.mail-layout{display:grid;grid-template-columns:220px 360px minmax(0,1fr);min-height:650px}.mail-folders{border-right:1px solid var(--line);padding-right:15px}.folder{display:flex;justify-content:space-between;align-items:center;text-decoration:none;color:#5f6f87;padding:10px 11px;border-radius:10px;font-size:12px;margin:3px 0}.folder.active,.folder:hover{background:var(--blue-soft);color:var(--blue);font-weight:700}.mail-list{border-right:1px solid var(--line);padding:0 15px;overflow:auto}.mail-row{display:block;text-decoration:none;color:inherit;padding:14px 8px;border-bottom:1px solid #edf0f4}.mail-row:hover{background:#f9fbff}.mail-row.unread{font-weight:800}.mail-row .row-top{display:flex;justify-content:space-between;gap:10px;font-size:11px}.mail-row .subject{margin-top:5px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mail-row small{display:block;color:var(--muted);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mail-view{padding:4px 24px}.mail-view-head{border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:18px}.mail-view-head h2{font-size:20px;margin:7px 0}.mail-body{font-size:13px;line-height:1.75;white-space:pre-wrap;word-break:break-word}.empty{display:grid;place-items:center;min-height:320px;color:#8997ac;text-align:center}.metric-row{display:flex;gap:7px;align-items:center}.bar{height:7px;background:#edf2f8;border-radius:999px;overflow:hidden}.bar>span{display:block;height:100%;background:var(--blue);border-radius:999px}.profile-card{display:flex;align-items:center;gap:14px}.profile-large{width:60px;height:60px;border-radius:18px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-size:18px;font-weight:800}.stat-chart{height:180px;display:flex;align-items:flex-end;gap:10px;padding:20px 5px 0}.stat-chart span{flex:1;background:linear-gradient(#6e9ce8,#2d72d9);border-radius:8px 8px 2px 2px;min-height:12px;position:relative}.stat-chart span small{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-size:9px;color:var(--muted)}.auth-body{background:linear-gradient(135deg,#0d2854 0%,#173f7c 55%,#eaf2ff 55%,#f5f7fb 100%);display:grid;place-items:center;min-height:100vh}.auth-wrap{width:min(430px,calc(100% - 32px))}.auth-brand{display:flex;align-items:center;gap:12px;color:white;margin-bottom:22px}.auth-card{background:white;border-radius:20px;box-shadow:0 24px 60px rgba(7,31,66,.22);padding:30px}.auth-card h1{font-size:22px;margin:0 0 7px}.auth-card p{font-size:12px;color:var(--muted);line-height:1.6}.auth-card .btn{width:100%;margin-top:14px}.code-input{text-align:center;font-size:26px;letter-spacing:.28em;font-weight:800}.secret-box{background:#f4f7fb;border:1px dashed #cfd9e7;border-radius:12px;padding:14px;font-family:ui-monospace,monospace;font-size:12px;word-break:break-all}.recovery{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0}.recovery code{background:#f5f7fb;border-radius:8px;padding:9px;text-align:center;font-size:12px}.pagination{display:flex;justify-content:flex-end;gap:6px;margin-top:14px}.small{font-size:11px}.danger-text{color:var(--red)}.section-title{font-size:12px;font-weight:800;color:#63728a;margin:20px 0 8px;text-transform:uppercase;letter-spacing:.08em}.modal-note{background:#fbfcfe;border:1px solid var(--line);padding:12px;border-radius:10px;font-size:11px}.compose-toolbar{display:flex;gap:5px;padding:9px;border:1px solid var(--line);border-bottom:0;border-radius:10px 10px 0 0;background:#fafbfd}.compose-toolbar button{background:white;color:#64748a;border:1px solid var(--line);padding:7px 9px}.compose-body{border-radius:0 0 10px 10px}.search-results{position:absolute;top:54px;left:0;right:0;background:white;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;display:none;z-index:30;max-height:360px;overflow:auto}.search-wrap{position:relative}.search-item{display:block;padding:10px 12px;text-decoration:none;color:inherit;border-bottom:1px solid #edf0f4;font-size:11px}.search-item:hover{background:#f8fbff}@media(max-width:1050px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.mail-layout{grid-template-columns:180px 320px minmax(0,1fr)}}@media(max-width:820px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}.main{margin-left:0;width:100%}.mobile-menu{display:inline-grid;border:0;background:transparent;color:#5e6d85;margin-right:12px}.top-search{width:260px}.user-meta{display:none}.content{padding:22px 16px}.mail-layout{grid-template-columns:1fr;min-height:0}.mail-folders,.mail-list{border-right:0;border-bottom:1px solid var(--line);padding:10px}.mail-folders{display:flex;gap:5px;overflow:auto}.folder{white-space:nowrap}.mail-list{max-height:350px}.mail-view{padding:20px 10px}.grid-3,.grid-2,.form-grid{grid-template-columns:1fr}.page-head{align-items:flex-start}.topbar{padding:0 16px}}@media(max-width:560px){.top-search{display:none}.grid-4{grid-template-columns:1fr}.content{padding:18px 12px}.card{padding:15px}.page-head h1{font-size:21px}.auth-body{background:#f5f7fb}.auth-wrap{width:calc(100% - 24px)}.auth-brand{color:var(--navy)}}

/* EMSS — Administration finale : navigation sans scroll */
.sidebar{
    overflow:visible !important;
    min-height:100vh;
}
.sidebar-nav{
    overflow:visible !important;
    height:auto !important;
    max-height:none !important;
    flex:0 0 auto !important;
    min-height:0 !important;
}
.sidebar-bottom{margin-top:auto !important}

.admin-menu-trigger{
    width:100%;
    display:flex;
    align-items:center;
    gap:10px;
    padding:11px 12px;
    margin:2px 0 8px;
    border:0;
    border-radius:12px;
    background:rgba(255,255,255,.07);
    color:inherit;
    font:inherit;
    font-weight:700;
    text-align:left;
    cursor:pointer;
}
.admin-menu-trigger:hover{background:rgba(255,255,255,.13)}
.admin-menu-trigger-icon{display:inline-flex;align-items:center;justify-content:center}
.admin-menu-chevron{margin-left:auto;transition:transform .18s ease}
.admin-menu-trigger[aria-expanded="true"] .admin-menu-chevron{transform:rotate(90deg)}

.admin-menu-panel{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin:0 0 12px;
    padding:2px;
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
}
.admin-menu-panel[hidden]{display:none !important}

.admin-tile{
    min-height:76px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:7px;
    padding:9px 6px;
    border:1px solid rgba(255,255,255,.10);
    border-radius:12px;
    background:rgba(255,255,255,.045);
    color:inherit;
    text-decoration:none;
    text-align:center;
    font-size:11px;
    line-height:1.15;
    transition:background .15s ease,transform .15s ease,border-color .15s ease;
}
.admin-tile .icon{font-size:20px;line-height:1}
.admin-tile:hover{
    background:rgba(255,255,255,.13);
    border-color:rgba(255,255,255,.22);
    transform:translateY(-1px);
}

/* EMSS — correctif clic menu administration */
.admin-menu-trigger,
.admin-tile { position:relative; z-index:20; pointer-events:auto; }
.admin-menu-trigger { appearance:none; -webkit-appearance:none; }
.admin-menu-panel { position:relative; z-index:19; }

/* EMSS — Admin native details: no JS dependency */
.admin-menu-details{display:block!important;width:100%;margin:2px 0 10px}
.admin-menu-details>summary{list-style:none;-webkit-user-select:none;user-select:none}
.admin-menu-details>summary::-webkit-details-marker{display:none}
.admin-menu-details[open] .admin-menu-chevron{transform:rotate(90deg)}
.admin-menu-details .admin-menu-panel{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;height:auto!important;max-height:none!important;overflow:visible!important;margin-top:8px}
.admin-menu-details .admin-tile{position:relative;z-index:30;pointer-events:auto!important}
