:root {
    --line: #7f9db9;
    --line-soft: #a9bfd8;
    --title-1: #d9e6f6;
    --title-2: #90afd3;
    --tab-1: #edf5ff;
    --tab-2: #c7daf2;
    --ribbon-1: #eff5fd;
    --ribbon-2: #d9e7f7;
    --ribbon-3: #bfd3ec;
    --page-bg: #c8dbf1;
    --paper: #fdfefe;
    --text: #1f2d3d;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    min-height: 100vh;
    background: linear-gradient(#d5e4f5, #9ab8d8 35%, #86a9d0);
    font-family: "Segoe UI", Tahoma, Arial, sans-serif;
    color: var(--text);
    display: flex;
    flex-direction: column;
}

.office-window {
    margin: 0;
    width: 100%;
    border: none;
    box-shadow: none;
    background: var(--page-bg);
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 100vh;
}

/* ─── Titlebar ─── */
.titlebar {
    height: 42px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 10px;
    border-bottom: 1px solid #6788ab;
    background: linear-gradient(var(--title-1), var(--title-2));
    flex-wrap: wrap;
}

.apptitle {
    margin: 0;
    font-weight: 600;
    color: #0f304f;
    white-space: nowrap;
}

.titlebar-user {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: #1a3c5e;
    font-weight: 600;
    white-space: nowrap;
}

.user-icon {
    font-size: 14px;
}

.btn-logout {
    padding: 4px 10px;
    font-size: 11px;
    font-weight: 600;
    border: 1px solid #7a9bbc;
    border-radius: 3px;
    color: #1a3c5e;
    text-decoration: none;
    background: linear-gradient(#fff9e7, #ffd882);
    cursor: pointer;
}

.btn-logout:hover {
    background: linear-gradient(#fff3c8, #ffc440);
    border-color: #3d6890;
}

.window-actions {
    margin-left: auto;
    display: flex;
    gap: 8px;
    color: #1e3d5c;
    font-size: 12px;
    user-select: none;
}

/* ─── Tabs row ─── */
.tabs-row {
    padding: 0 10px;
    border-bottom: 1px solid var(--line);
    background: linear-gradient(var(--tab-1), var(--tab-2));
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.ribbon__tabs {
    display: flex;
    gap: 2px;
    min-height: 30px;
    align-items: flex-end;
    white-space: nowrap;
}

.tab {
    border: 1px solid transparent;
    border-bottom: 0;
    padding: 6px 12px;
    border-radius: 4px 4px 0 0;
    font-size: 13px;
    background: transparent;
    cursor: pointer;
    color: #133757;
    flex-shrink: 0;
    transition: background .15s, border-color .15s;
}

.tab:hover,
.tab--active {
    border-color: var(--line);
    background: linear-gradient(#ffffff, #e6effb);
}

/* ─── Ribbon ─── */
.ribbon {
    display: flex;
    border-bottom: 1px solid var(--line);
    background: linear-gradient(var(--ribbon-1), var(--ribbon-2) 45%, var(--ribbon-3));
}

.ribbon-panel {
    display: flex;
    gap: 8px;
    padding: 8px 10px 6px;
    min-height: 104px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    width: 100%;
}

.ribbon-panel[hidden] { display: none; }

.ribbon-group {
    display: flex;
    align-items: stretch;
    gap: 6px;
    padding: 2px 8px 20px;
    position: relative;
    border-right: 1px solid var(--line-soft);
}

.group-title {
    position: absolute;
    bottom: 2px;
    left: 8px;
    right: 8px;
    text-align: center;
    font-size: 11px;
    color: #284967;
    margin: 0;
}

.cmd {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    width: 92px;
    min-height: 72px;
    border: 1px solid #99b2ce;
    border-radius: 3px;
    font-size: 12px;
    color: #1d3f60;
    cursor: pointer;
    background: linear-gradient(#ffffff, #e6f0fc);
}

.cmd:hover {
    border-color: #6c90b5;
    background: linear-gradient(#fffce9, #ffe3a8);
}

.cmd:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    background: linear-gradient(#f0f0f0, #e0e0e0);
    border-color: #c0c0c0;
    color: #888;
}

.cmd:disabled:hover {
    background: linear-gradient(#f0f0f0, #e0e0e0);
    border-color: #c0c0c0;
}

.cmd--large {
    width: 110px;
}

.icon {
    font-size: 18px;
    line-height: 1;
}

.workspace {
    padding: 12px;
    flex: 1;
}

.workspace-toolbar {
    height: 26px;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 10px;
    font-size: 12px;
    color: #274868;
    border: 1px solid #9fb8d2;
    background: linear-gradient(#f7fbff, #dde9f7);
}

.sep {
    color: #6d89a7;
}

.document-surface {
    margin-top: 10px;
    border: 1px solid #8faeca;
    background: var(--paper);
    box-shadow: inset 0 1px 0 #fff;
    padding: 16px;
    min-height: 540px;
}

.panel {
    border: 1px solid #aec2d8;
    background: linear-gradient(#ffffff, #f6faff);
    padding: 16px;
}

.panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
}

.panel-head h1 {
    margin: 0;
    font-size: 22px;
    color: #1f3f60;
}

.btn-primary {
    border: 1px solid #6d8eb1;
    border-radius: 3px;
    padding: 8px 12px;
    font-weight: 600;
    color: #183b5e;
    cursor: pointer;
    background: linear-gradient(#fff9e7, #ffd882);
}

.cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
}

.card {
    border: 1px solid #adc3dc;
    border-radius: 2px;
    padding: 12px;
    background: linear-gradient(#ffffff, #edf5ff);
}

.stat .kpi {
    font-size: 30px;
    margin: 0;
    color: #214a74;
    font-weight: 700;
}

.card h2,
.card h3 {
    margin: 8px 0;
    color: #224668;
}

.grid-2 {
    margin-top: 12px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.action-list {
    margin: 8px 0 0;
    padding-left: 18px;
}

.action-list li {
    margin-bottom: 8px;
}

.activity-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 8px;
}

.activity-table th,
.activity-table td {
    text-align: left;
    padding: 7px 8px;
    border-bottom: 1px solid #d2e0ef;
    font-size: 13px;
}

.activity-table th {
    background: #e9f1fb;
    color: #264a6f;
}

.statusbar {
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 0 10px;
    border-top: 1px solid #7e9dbd;
    font-size: 12px;
    color: #214464;
    background: linear-gradient(#eaf2fc, #c8dbf1);
}

@media (max-width: 980px) {
    .ribbon-panel {
        overflow-x: auto;
    }

    .grid-2 {
        grid-template-columns: 1fr;
    }

    .cmd { width: 78px; min-height: 64px; font-size: 11px; }
    .cmd--large { width: 92px; }
}

@media (max-width: 680px) {
    .titlebar {
        height: auto;
        min-height: 42px;
        flex-wrap: wrap;
        padding: 6px 10px;
        gap: 6px;
    }

    .apptitle { font-size: 13px; }

    .titlebar-user {
        font-size: 11px;
        gap: 4px;
    }

    .tabs-row { padding: 0 4px; }
    .tab { padding: 5px 8px; font-size: 12px; }

    .ribbon-panel {
        min-height: 80px;
        padding: 6px 6px 4px;
        gap: 4px;
    }

    .ribbon-group { padding: 2px 4px 18px; gap: 4px; }
    .cmd { width: 64px; min-height: 56px; font-size: 10px; gap: 3px; }
    .cmd--large { width: 72px; }
    .icon { font-size: 15px; }
    .group-title { font-size: 10px; }

    .workspace { padding: 8px; }
    .document-surface { padding: 10px; min-height: 320px; }
    .panel { padding: 10px; }
    .panel-head h1 { font-size: 17px; }

    .activity-table th, .activity-table td { padding: 5px 4px; font-size: 11px; }

    .search-bar { flex-direction: column; }
    .search-bar .office-input { width: 100%; }
}

/* ─── Tab pages ─── */
.tab-page[hidden] { display: none; }

/* ─── Search bar ─── */
.search-bar {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.search-bar .office-input {
    flex: 1;
    min-width: 200px;
    padding: 7px 10px;
    border: 1px solid #9fb8d2;
    border-radius: 3px;
    font-size: 13px;
    background: linear-gradient(#fff, #f4f9ff);
}

.search-bar .office-input:focus {
    outline: none;
    border-color: #4a7aaf;
    box-shadow: 0 0 0 2px rgba(74, 122, 175, 0.25);
}

/* ─── Status badges ─── */
.status-active { color: #1a7a2e; font-weight: 600; }
.status-disabled { color: #b33a3a; font-weight: 600; }

/* ─── Badge compteur ─── */
.badge {
    display: inline-block;
    padding: 2px 10px;
    font-size: 12px;
    font-weight: 700;
    border-radius: 10px;
    background: linear-gradient(#e0eef9, #c2d8ee);
    color: #1a3e5e;
    border: 1px solid #90b0cc;
    margin-left: 10px;
    vertical-align: middle;
}

/* ─── Messages d'état dans les onglets ─── */
.tab-message {
    padding: 8px 14px;
    border-radius: 3px;
    font-size: 12px;
    font-weight: 600;
    margin-top: 10px;
}
.tab-message.info    { background: #e8f0fa; border: 1px solid #8ab4da; color: #1a4068; }
.tab-message.success { background: #e6f7e9; border: 1px solid #8fd4a0; color: #1a6b2a; }
.tab-message.error   { background: #fde8e8; border: 1px solid #e5a0a0; color: #8b2020; }
.tab-message.loading { background: #fef9e7; border: 1px solid #d4c56a; color: #6a5c10; }

/* ─── Select Office ─── */
.office-select {
    padding: 7px 10px;
    border: 1px solid #9fb8d2;
    border-radius: 3px;
    font-size: 13px;
    background: linear-gradient(#fff, #f4f9ff);
    color: #1a3050;
    font-family: "Segoe UI", Tahoma, Arial, sans-serif;
    cursor: pointer;
}
.office-select:focus {
    outline: none;
    border-color: #4a7aaf;
    box-shadow: 0 0 0 2px rgba(74, 122, 175, 0.25);
}

/* ─── Table scrollable ─── */
.table-scroll {
    max-height: 60vh;
    overflow-y: auto;
    border: 1px solid #c6d8e8;
    border-radius: 3px;
    margin-top: 8px;
}
.table-scroll .activity-table { margin-top: 0 !important; border: none; }
.table-scroll thead th { position: sticky; top: 0; z-index: 2; background: linear-gradient(#e8f0f8, #d0dfee); }

/* ─── Colonnes triables ─── */
.sortable { cursor: pointer; user-select: none; white-space: nowrap; }
.sortable:hover { background: linear-gradient(#d0e4f6, #b8d0e8) !important; }
.sortable.sort-asc::after  { content: ' ▲'; font-size: 10px; }
.sortable.sort-desc::after { content: ' ▼'; font-size: 10px; }

/* ─── Ligne vide / placeholder ─── */
.empty-row { text-align: center; color: #6a8ca8; font-style: italic; padding: 24px 12px !important; }

/* ─── Highlight recherche ─── */
tr.highlight td { background: #fffde0 !important; }

/* ─── Ligne sélectionnée ─── */
tr.selected td { 
    background: #cde4f7 !important; 
    border-bottom-color: #a0c4e8 !important;
}
tr.selected:hover td {
    background: #b8d8f4 !important;
}

/* ─── Ligne cliquable ─── */
.activity-table tbody tr:not(.empty-row) {
    cursor: pointer;
}
.activity-table tbody tr:not(.empty-row):hover td {
    background: #f0f6fc;
}

/* ─── Bouton secondaire ─── */
.btn-secondary {
    padding: 6px 14px;
    font-size: 13px;
    font-weight: 600;
    border: 1px solid #9fb8d2;
    border-radius: 3px;
    cursor: pointer;
    background: linear-gradient(#f8fbff, #e4edf6);
    color: #1a3050;
}
.btn-secondary:hover { background: linear-gradient(#eef4fb, #d4e2f0); border-color: #6a8caa; }

/* ══════════════════════════════════════════
   FENÊTRES FLOTTANTES STYLE WINDOWS / OFFICE
   ══════════════════════════════════════════ */

.win-window {
    position: fixed;
    top: 120px;
    left: calc(50% - 230px);
    width: 460px;
    min-width: 340px;
    min-height: 200px;
    border: 1px solid #4e6e8e;
    border-radius: 8px 8px 0 0;
    box-shadow: 0 6px 30px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.6);
    background: #f0f4fa;
    z-index: 9000;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.win-window[hidden] { display: none; }

/* ── Titlebar ── */
.win-titlebar {
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 6px 0 10px;
    background: linear-gradient(180deg, #3d7ab5 0%, #245d99 45%, #1b4a7e 100%);
    border-bottom: 1px solid #173f6a;
    cursor: move;
    user-select: none;
    border-radius: 7px 7px 0 0;
}

.win-title {
    font-size: 13px;
    font-weight: 600;
    color: #fff;
    text-shadow: 0 1px 2px rgba(0,0,0,.4);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Boutons fenêtre ── */
.win-controls {
    display: flex;
    gap: 2px;
    flex-shrink: 0;
}

.win-btn {
    width: 28px;
    height: 22px;
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 3px;
    font-size: 12px;
    line-height: 1;
    color: #fff;
    cursor: pointer;
    background: linear-gradient(rgba(255,255,255,.18), rgba(255,255,255,.05));
    display: flex;
    align-items: center;
    justify-content: center;
}

.win-btn:hover {
    background: linear-gradient(rgba(255,255,255,.35), rgba(255,255,255,.12));
}

.win-close:hover {
    background: linear-gradient(#e04343, #b02a2a);
    border-color: #8a1f1f;
}

/* ── Body ── */
.win-body {
    flex: 1;
    padding: 18px 20px;
    overflow-y: auto;
    background: linear-gradient(#f8fafd, #eef3fa);
}

/* ── Resize handle ── */
.win-resize {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 16px;
    height: 16px;
    cursor: nwse-resize;
    background: linear-gradient(135deg, transparent 50%, #8aa4bf 50%, transparent 55%,
                                        transparent 65%, #8aa4bf 65%, transparent 70%,
                                        transparent 80%, #8aa4bf 80%, transparent 85%);
}

/* ── Maximized state ── */
.win-window.win-maximized {
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    border-radius: 0;
}

.win-window.win-maximized .win-titlebar { border-radius: 0; }
.win-window.win-maximized .win-resize { display: none; }

/* ── Minimized (hidden body) ── */
.win-window.win-minimized .win-body,
.win-window.win-minimized .win-resize { display: none; }
.win-window.win-minimized { min-height: auto; height: auto; }

/* ── Formulaire dans la fenêtre ── */
.win-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.win-field {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.win-field label {
    font-size: 13px;
    font-weight: 600;
    color: #1d3d5e;
}

.win-field .office-input {
    padding: 8px 10px;
    border: 1px solid #9fb8d2;
    border-radius: 3px;
    font-size: 13px;
    background: linear-gradient(#fff, #f7faff);
}

.win-field .office-input:focus {
    outline: none;
    border-color: #3d7ab5;
    box-shadow: 0 0 0 2px rgba(61, 122, 181, .25);
}

.win-hint {
    margin: 0;
    font-size: 11px;
    color: #5a7a9a;
}

.win-info {
    margin: 0;
    padding: 8px 10px;
    font-size: 12px;
    color: #1d3d5e;
    background: #e6effa;
    border: 1px solid #b5cde5;
    border-radius: 3px;
}

.win-separator {
    border: 0;
    border-top: 1px solid #c4d5e8;
    margin: 4px 0;
}

.win-actions {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    padding-top: 6px;
}

.btn-secondary {
    border: 1px solid #9fb8d2;
    border-radius: 3px;
    padding: 8px 14px;
    font-weight: 600;
    font-size: 12px;
    color: #1d3d5e;
    cursor: pointer;
    background: linear-gradient(#fff, #e6effb);
}

.btn-secondary:hover {
    background: linear-gradient(#f0f5ff, #d6e3f5);
    border-color: #7a9bbc;
}

/* ── Résultat du test ── */
.win-result {
    padding: 12px 16px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    margin-top: 10px;
    line-height: 1.6;
}

.win-result.success {
    background: linear-gradient(to bottom, #e8f8eb, #d4f0da);
    border: 2px solid #5cb85c;
    color: #1a6b2a;
    box-shadow: 0 2px 8px rgba(92, 184, 92, 0.3);
}

.win-result.success strong,
.win-result.success b {
    color: #145214;
}

/* Style spécial pour le mot de passe affiché */
.win-result .password-display {
    display: block;
    margin-top: 8px;
    padding: 10px 14px;
    background: #fffef0;
    border: 2px dashed #d4a520;
    border-radius: 4px;
    font-family: 'Consolas', 'Courier New', monospace;
    font-size: 16px;
    font-weight: bold;
    color: #333;
    letter-spacing: 1px;
    user-select: all;
    cursor: text;
}

.win-result.error {
    background: linear-gradient(to bottom, #fdeaea, #f8d4d4);
    border: 2px solid #d9534f;
    color: #8b2020;
    box-shadow: 0 2px 8px rgba(217, 83, 79, 0.3);
}

/* ── Template cards (création utilisateur) ── */
.tpl-card {
    border: 2px solid #c0c8d0;
    border-radius: 6px;
    padding: 18px 14px;
    text-align: center;
    cursor: pointer;
    background: #fafbfc;
    transition: border-color .15s, box-shadow .15s, transform .1s;
    min-width: 120px;
}
.tpl-card:hover {
    border-color: #4a7ebb;
    box-shadow: 0 2px 8px rgba(74, 126, 187, .25);
    transform: translateY(-1px);
}
.tpl-card .tpl-icon {
    font-size: 28px;
    display: block;
    margin-bottom: 6px;
}
.tpl-card .tpl-name {
    font-weight: 600;
    font-size: 13px;
    color: #333;
}

/* ── Template list items (config sysadmin) ── */
.tpl-list-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 10px;
    border: 1px solid #d0d8e0;
    border-radius: 4px;
    background: #fafbfc;
    cursor: pointer;
    transition: background .15s;
}
.tpl-list-item:hover {
    background: #e8f0f8;
}

/* ── Bandeau info (utilisé dans le dashboard admin) ── */
.login-info {
    padding: 8px 12px;
    border: 1px solid #80a8d0;
    border-radius: 3px;
    background: linear-gradient(#f0f7ff, #dce9f8);
    font-size: 12px;
    color: #1a4068;
}

/* ── Overlay pour popup modale ── */
.win-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 20, 50, .45);
    z-index: 9500;
    display: flex;
    align-items: center;
    justify-content: center;
}

.win-overlay[hidden] { display: none; }

.win-popup {
    position: relative;
    top: auto;
    left: auto;
    width: 380px;
    min-height: auto;
}

/* ═══════ HOVER SUR LIGNES TABLEAU ═══════ */
.activity-table tbody tr { transition: background .1s; cursor: pointer; }
.activity-table tbody tr:hover { background: linear-gradient(#dce8f8, #c8daf0) !important; }
.activity-table tbody tr.row-selected { background: #3d7ab5 !important; }
.activity-table tbody tr.row-selected td { color: #fff !important; }
.activity-table tbody tr .empty-row { cursor: default; }
.activity-table tbody tr:has(.empty-row) { cursor: default; }
.activity-table tbody tr:has(.empty-row):hover { background: transparent !important; }

/* ═══════ FENÊTRE ADUC ═══════ */
.win-aduc { width: 620px; min-height: 580px; top: 40px; left: calc(50% - 310px); }

/* ── Onglets internes ── */
.aduc-tabs {
    display: flex;
    gap: 0;
    padding: 0 8px;
    background: linear-gradient(#e8eff8, #d4dfee);
    border-bottom: 1px solid #8aa4bf;
    overflow: hidden;
    flex-shrink: 0;
}
.aduc-tab {
    padding: 6px 11px;
    font-size: 12px;
    font-weight: 600;
    border: 1px solid transparent;
    border-bottom: 0;
    border-radius: 3px 3px 0 0;
    background: transparent;
    color: #2a4a6a;
    cursor: pointer;
    white-space: nowrap;
    margin-bottom: -1px;
}
.aduc-tab:hover { background: rgba(255,255,255,.5); }
.aduc-tab.aduc-tab--active {
    background: #f0f4fa;
    border-color: #8aa4bf;
    border-bottom-color: #f0f4fa;
    color: #0f2e4e;
}

/* ── Body ADUC ── */
.aduc-body { padding: 14px 18px; min-height: 420px; position: relative; overflow-y: auto; }
.aduc-page[hidden] { display: none; }

/* ── Pages de configuration ── */
.cfg-page { display: block; }
.cfg-page[hidden] { display: none !important; }

/* ── Header utilisateur ── */
.aduc-header {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid #c4d5e8;
}
.aduc-avatar {
    width: 52px; height: 52px;
    font-size: 30px;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(#e0ecf8, #c0d4ec);
    border: 1px solid #8aa4bf;
    border-radius: 4px;
}
.aduc-name { display: flex; flex-direction: column; gap: 2px; }
.aduc-name strong { font-size: 16px; color: #0f2e4e; }
.aduc-desc { font-size: 12px; color: #5a7a9a; font-style: italic; }

/* ── Champs propriété ── */
.aduc-fields { display: flex; flex-direction: column; gap: 0; }
.aduc-row {
    display: flex;
    align-items: baseline;
    padding: 5px 0;
    border-bottom: 1px solid #e8eff6;
    gap: 8px;
}
.aduc-row label {
    width: 190px;
    flex-shrink: 0;
    font-size: 12px;
    font-weight: 600;
    color: #2a4a6a;
}
.aduc-row span {
    flex: 1;
    font-size: 12px;
    color: #1a3050;
    word-break: break-word;
}
.aduc-row--tall span { white-space: pre-line; }

/* ── Notes ── */
.aduc-notes { margin-top: 14px; }
.aduc-notes label { font-size: 12px; font-weight: 600; color: #2a4a6a; display: block; margin-bottom: 4px; }
.aduc-notes-box {
    min-height: 60px;
    padding: 8px;
    border: 1px solid #b0c4da;
    border-radius: 3px;
    font-size: 12px;
    color: #1a3050;
    background: #fff;
    white-space: pre-wrap;
}

/* ── Liste groupes / subordonnés ── */
.aduc-list-section { margin-top: 14px; }
.aduc-list-section > label { font-size: 12px; font-weight: 600; color: #2a4a6a; display: block; margin-bottom: 6px; }
.aduc-list {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 1px solid #b0c4da;
    border-radius: 3px;
    background: #fff;
    max-height: 220px;
    overflow-y: auto;
}
.aduc-list li {
    padding: 4px 10px;
    font-size: 12px;
    color: #1a3050;
    border-bottom: 1px solid #e8eff6;
}
.aduc-list li:last-child { border-bottom: none; }
.aduc-list li:hover { background: #e6f0fa; }
.aduc-list--groups li::before { content: '👥 '; }
.aduc-list-empty { color: #8a9fb8; font-style: italic; }
.aduc-list-empty::before { content: '' !important; }

/* ── DN ── */
.aduc-dn {
    font-family: 'Consolas', 'Courier New', monospace;
    font-size: 11px !important;
    color: #5a7a9a !important;
    word-break: break-all;
}

/* ── Footer ADUC ── */
.aduc-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    padding: 8px 18px 12px;
    border-top: 1px solid #c4d5e8;
    background: linear-gradient(#eef3fa, #dde5f0);
}
.aduc-footer-left {
    display: flex;
    gap: 6px;
}
.aduc-footer-right {
    display: flex;
    gap: 8px;
}
/* ── Boutons d'action (petits, icônes + texte) ── */
.btn-action {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    font-size: 11px;
    font-weight: 600;
    color: #1a3050;
    background: linear-gradient(#fff, #e8eef5);
    border: 1px solid #a0b4c8;
    border-radius: 3px;
    cursor: pointer;
    transition: background .15s, border-color .15s;
}
.btn-action:hover {
    background: linear-gradient(#fff, #d8e4f0);
    border-color: #7090b0;
}
.btn-action:active {
    background: linear-gradient(#d8e4f0, #fff);
}
.btn-action:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* ── Toast / Notification popup ── */
.toast-container {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 99999;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.toast {
    min-width: 280px;
    max-width: 400px;
    padding: 12px 16px;
    border-radius: 6px;
    box-shadow: 0 4px 20px rgba(0,0,0,.25);
    font-size: 13px;
    font-weight: 500;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    animation: toastSlideIn .3s ease;
}
.toast.success {
    background: linear-gradient(#e8f7ea, #d4edd8);
    border: 1px solid #8fd4a0;
    color: #1a6b2a;
}
.toast.error {
    background: linear-gradient(#fde8e8, #f8d4d4);
    border: 1px solid #e5a0a0;
    color: #8b2020;
}
.toast.info {
    background: linear-gradient(#e8f0fa, #d4e2f5);
    border: 1px solid #8ab4da;
    color: #1a4068;
}
.toast.warning {
    background: linear-gradient(#fef9e7, #fcefc4);
    border: 1px solid #d4c56a;
    color: #6a5c10;
}
.toast-icon {
    font-size: 18px;
    flex-shrink: 0;
}
.toast-content {
    flex: 1;
}
.toast-close {
    background: none;
    border: none;
    font-size: 16px;
    cursor: pointer;
    opacity: 0.6;
    padding: 0;
    line-height: 1;
}
.toast-close:hover {
    opacity: 1;
}
@keyframes toastSlideIn {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

/* ══════════════════════════════════════════════════ */
/* ═══ FENÊTRES MODALES (Confirmation / Résultat) ═══ */
/* ══════════════════════════════════════════════════ */
.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 30, 60, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 99999;
    animation: modalFadeIn .2s ease;
}
.modal-overlay[hidden] { display: none; }

@keyframes modalFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.modal-dialog {
    background: linear-gradient(#f8fafd, #eef3fa);
    border: 1px solid #4e6e8e;
    border-radius: 8px;
    box-shadow: 0 8px 40px rgba(0,0,0,.4);
    min-width: 320px;
    max-width: 420px;
    animation: modalSlideIn .25s ease;
}

@keyframes modalSlideIn {
    from { transform: scale(0.9) translateY(-20px); opacity: 0; }
    to { transform: scale(1) translateY(0); opacity: 1; }
}

.modal-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    background: linear-gradient(180deg, #3d7ab5 0%, #245d99 45%, #1b4a7e 100%);
    border-radius: 7px 7px 0 0;
    border-bottom: 1px solid #173f6a;
}

.modal-header .modal-icon {
    font-size: 24px;
}

.modal-header .modal-title {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    color: #fff;
    text-shadow: 0 1px 2px rgba(0,0,0,.4);
}

.modal-body {
    padding: 20px 18px;
    max-height: 70vh;
    overflow-y: auto;
}

.modal-message {
    margin: 0;
    font-size: 14px;
    color: #1a3050;
    line-height: 1.5;
}

.modal-footer {
    display: flex;
    justify-content: center;
    gap: 12px;
    padding: 12px 18px 16px;
    border-top: 1px solid #c4d5e8;
    background: linear-gradient(#eef3fa, #dde5f0);
    border-radius: 0 0 7px 7px;
}

/* Résultat success */
.modal-result.success .modal-header {
    background: linear-gradient(180deg, #4a9f5a 0%, #3a8a4a 45%, #2a7a3a 100%);
    border-bottom-color: #1a5a2a;
}

/* Résultat error */
.modal-result.error .modal-header {
    background: linear-gradient(180deg, #c04040 0%, #a03030 45%, #802020 100%);
    border-bottom-color: #601010;
}

/* ── Loading spinner sur la fenêtre ── */
.aduc-loading {
    display: flex; align-items: center; justify-content: center;
    min-height: 200px; font-size: 14px; color: #5a7a9a;
    position: absolute; inset: 0; background: rgba(255,255,255,.9); z-index: 10;
}
.aduc-loading[hidden] { display: none; }

/* ── Champs éditables ADUC ── */
.aduc-input {
    flex: 1;
    padding: 5px 8px;
    border: 1px solid #b0c4da;
    border-radius: 3px;
    font-size: 12px;
    font-family: inherit;
    color: #1a3050;
    background: #fff;
    transition: border-color .15s, box-shadow .15s;
}
.aduc-input:focus {
    outline: none;
    border-color: #3d7ab5;
    box-shadow: 0 0 0 2px rgba(61, 122, 181, .2);
}
.aduc-input:read-only {
    background: #f0f4f8;
    color: #5a7a9a;
    cursor: default;
}
.aduc-input--large {
    font-size: 15px;
    font-weight: 600;
    padding: 6px 10px;
    color: #0f2e4e;
}
.aduc-input--desc {
    font-size: 12px;
    font-style: italic;
    color: #5a7a9a;
    margin-top: 4px;
}
.aduc-input--short {
    max-width: 100px;
}
.aduc-textarea {
    resize: vertical;
    min-height: 60px;
}
.aduc-readonly {
    flex: 1;
    font-size: 12px;
    color: #1a3050;
    word-break: break-word;
    padding: 5px 0;
}

/* ── Message de sauvegarde ── */
.aduc-save-result {
    padding: 8px 12px;
    margin: 0 0 10px;
    border-radius: 3px;
    font-size: 12px;
    font-weight: 600;
}
.aduc-save-result[hidden] { display: none; }
.aduc-save-result.success {
    background: #e6f7e9;
    border: 1px solid #8fd4a0;
    color: #1a6b2a;
}
.aduc-save-result.error {
    background: #fde8e8;
    border: 1px solid #e5a0a0;
    color: #8b2020;
}

/* ── Header ADUC avec champs éditables ── */
.aduc-header .aduc-name {
    display: flex;
    flex-direction: column;
    flex: 1;
}

/* ── Responsive fenêtres ── */
@media (max-width: 520px) {
    .win-window {
        left: 5px !important;
        width: calc(100vw - 10px) !important;
        min-width: auto;
    }
    .win-popup {
        width: calc(100vw - 20px);
    }
    .win-aduc { width: calc(100vw - 10px) !important; left: 5px !important; }
    .aduc-row label { width: 130px; }
}


/* ══════════════════════════════════════════════════════════════
   THÈME VDOC CLASSIC — body.theme-vdoc
   Style inspiré de VDoc Manager Web (Windows XP, années 2000-2010)
   ══════════════════════════════════════════════════════════════ */

/* ── Base ── */
body.theme-vdoc {
    background: #d4d0c8;
    font-family: Arial, sans-serif;
    font-size: 12px;
    color: #000;
}
body.theme-vdoc .office-window {
    background: #d4d0c8;
}

/* ── Barre de titre ── */
body.theme-vdoc .titlebar {
    background: #ffffff;
    border-bottom: 1px solid #999;
    height: 38px;
}
body.theme-vdoc .apptitle {
    color: #000;
    font-family: Arial, sans-serif;
    font-size: 12px;
}
body.theme-vdoc .titlebar-user {
    color: #333;
    font-size: 11px;
}
body.theme-vdoc .btn-logout {
    background: #e8e4de;
    border: 1px solid #999;
    border-radius: 2px;
    color: #333;
    font-size: 11px;
}
body.theme-vdoc .btn-logout:hover { background: #d8d4ce; }

/* ── Onglets principaux ── */
body.theme-vdoc .tabs-row {
    background: #e8e4de;
    border-bottom: 1px solid #999;
    padding: 0 6px;
}
body.theme-vdoc .ribbon__tabs { min-height: 26px; }
body.theme-vdoc .tab {
    border-radius: 2px 2px 0 0;
    font-size: 11px;
    font-weight: normal;
    color: #333;
    background: #d0ccc4;
    border: 1px solid #bbb;
    border-bottom: none;
    padding: 3px 12px;
    transition: none;
}
body.theme-vdoc .tab:hover { background: #c8c4bc; border-color: #aaa; }
body.theme-vdoc .tab--active {
    background: #ffffff;
    color: #cc0000;
    font-weight: bold;
    border-color: #999;
    border-bottom-color: #ffffff;
}

/* ── Ruban ── */
body.theme-vdoc .ribbon {
    background: #f5f1eb;
    border-bottom: 1px solid #999;
}
body.theme-vdoc .ribbon-group { border-right: 1px solid #ccc; }
body.theme-vdoc .group-title { color: #555; font-size: 10px; }
body.theme-vdoc .cmd {
    background: #e8e4de;
    border: 1px solid #bbb;
    border-radius: 2px;
    color: #333;
    font-size: 11px;
    transition: none;
}
body.theme-vdoc .cmd:hover { background: #fff8dc; border-color: #cc0000; }
body.theme-vdoc .cmd:disabled { background: #e0dcd8; color: #888; border-color: #ccc; }
body.theme-vdoc .cmd:disabled:hover { background: #e0dcd8; border-color: #ccc; }

/* ── Barre d'adresse ── */
body.theme-vdoc .workspace-toolbar {
    background: #f0ece4;
    border: 1px solid #999;
    border-left: none;
    border-right: none;
    font-size: 11px;
    color: #333;
    height: 22px;
}
body.theme-vdoc .sep { color: #888; }

/* ── Surface document ── */
body.theme-vdoc .workspace { padding: 6px 8px; }
body.theme-vdoc .document-surface {
    background: #ffffff;
    border: 1px solid #999;
    box-shadow: none;
    padding: 10px;
    margin-top: 4px;
    min-height: 520px;
}

/* ── Panneaux ── */
body.theme-vdoc .panel {
    background: #ffffff;
    border: 1px solid #999;
    border-top: 3px solid #cc0000;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
}
body.theme-vdoc .panel-head {
    background: #f0ece4;
    border-bottom: 1px solid #ccc;
    padding: 5px 10px;
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}
body.theme-vdoc .panel-head h1 {
    font-size: 13px;
    font-weight: bold;
    color: #000;
}
body.theme-vdoc .panel-head::before {
    content: '';
    display: inline-block;
    width: 16px;
    height: 16px;
    background: #cc0000;
    border-radius: 2px;
    flex-shrink: 0;
}
body.theme-vdoc .panel > *:not(.panel-head) { padding: 0 10px 10px; }

/* ── Tableau ── */
body.theme-vdoc .activity-table th,
body.theme-vdoc .activity-table td {
    font-size: 11px;
    padding: 3px 6px;
    border: 1px solid #ddd;
}
body.theme-vdoc .activity-table th {
    background: #d8d4cc;
    color: #333;
    font-weight: bold;
    border-color: #bbb;
}
body.theme-vdoc .activity-table tbody tr:nth-child(even) td { background: #f5f3ee; }
body.theme-vdoc .activity-table tbody tr:nth-child(odd)  td { background: #ffffff; }
body.theme-vdoc .activity-table tbody tr:not(.empty-row):hover td { background: #fff8dc !important; }
body.theme-vdoc tr.selected td       { background: #ffd700 !important; }
body.theme-vdoc tr.selected:hover td { background: #ffd700 !important; }
body.theme-vdoc .table-scroll { border-color: #bbb; border-radius: 0; }
body.theme-vdoc .table-scroll thead th { background: #d8d4cc; border-bottom: 1px solid #bbb; }
body.theme-vdoc .empty-row { color: #666; font-style: normal; }

/* ── Boutons ── */
body.theme-vdoc .btn-primary {
    background: #cc0000;
    color: #ffffff;
    border: 1px solid #880000;
    border-radius: 2px;
    font-size: 11px;
    padding: 2px 10px;
    font-weight: normal;
    box-shadow: none;
}
body.theme-vdoc .btn-primary:hover { background: #aa0000; }
body.theme-vdoc .btn-secondary {
    background: #e8e4de;
    color: #333;
    border: 1px solid #999;
    border-radius: 2px;
    font-size: 11px;
    padding: 2px 10px;
    font-weight: normal;
    box-shadow: none;
}
body.theme-vdoc .btn-secondary:hover { background: #d8d4ce; }
body.theme-vdoc .btn-action {
    background: #e8e4de;
    color: #333;
    border: 1px solid #999;
    border-radius: 2px;
    font-size: 11px;
    padding: 2px 8px;
}
body.theme-vdoc .btn-action:hover { background: #d8d4ce; border-color: #888; }

/* ── Champs de formulaire ── */
body.theme-vdoc .office-input,
body.theme-vdoc input[type="text"],
body.theme-vdoc input[type="password"],
body.theme-vdoc input[type="email"],
body.theme-vdoc input[type="number"],
body.theme-vdoc textarea {
    background: #ffffc0;
    border: 1px inset #999;
    border-radius: 0;
    font-size: 11px;
    font-family: Arial, sans-serif;
    color: #000;
    box-shadow: none;
}
body.theme-vdoc .office-input:focus,
body.theme-vdoc input[type="text"]:focus,
body.theme-vdoc input[type="password"]:focus {
    border-color: #666;
    box-shadow: none;
    outline: none;
}
body.theme-vdoc .office-select,
body.theme-vdoc select {
    background: #ffffc0;
    border: 1px inset #999;
    border-radius: 0;
    font-size: 11px;
    font-family: Arial, sans-serif;
    color: #000;
    box-shadow: none;
}
body.theme-vdoc .office-select:focus,
body.theme-vdoc select:focus { box-shadow: none; outline: none; }
body.theme-vdoc .search-bar .office-input {
    background: #ffffc0;
    border-color: #999;
    box-shadow: none;
    font-size: 11px;
}

/* ── Badge compteur ── */
body.theme-vdoc .badge {
    background: #cc0000;
    color: #ffffff;
    border: none;
    border-radius: 2px;
    font-size: 9px;
    padding: 1px 5px;
}

/* ── Barre de statut ── */
body.theme-vdoc .statusbar {
    background: #c8c4bc;
    border-top: 1px solid #999;
    font-size: 10px;
    color: #444;
    height: 22px;
}

/* ── Fenêtres flottantes ── */
body.theme-vdoc .win-window {
    border-radius: 0;
    border: 1px solid #888;
    box-shadow: 2px 2px 8px rgba(0,0,0,.35);
    background: #f5f1eb;
}
body.theme-vdoc .win-titlebar {
    background: linear-gradient(180deg, #cc0000 0%, #aa0000 100%);
    border-radius: 0;
    border-bottom: 1px solid #880000;
}
body.theme-vdoc .win-body { background: #f5f1eb; }
body.theme-vdoc .win-field label { color: #333; font-size: 11px; font-weight: normal; }
body.theme-vdoc .win-field .office-input {
    background: #ffffc0;
    border: 1px inset #999;
    border-radius: 0;
    font-size: 11px;
}
body.theme-vdoc .win-hint { color: #666; font-size: 10px; }
body.theme-vdoc .win-info {
    background: #fff8dc;
    border: 1px solid #e0c060;
    border-left: 4px solid #e0a000;
    border-radius: 0;
    font-size: 11px;
    color: #333;
}
body.theme-vdoc .win-separator { border-top-color: #bbb; }

/* ── Onglets internes (config, création) ── */
body.theme-vdoc .aduc-tabs {
    background: #e8e4de;
    border-bottom: 1px solid #999;
}
body.theme-vdoc .aduc-tab {
    font-size: 11px;
    font-weight: normal;
    border-radius: 2px 2px 0 0;
    background: #d0ccc4;
    border: 1px solid #bbb;
    border-bottom: none;
    color: #444;
    padding: 3px 10px;
    transition: none;
}
body.theme-vdoc .aduc-tab:hover { background: #c8c4bc; }
body.theme-vdoc .aduc-tab.aduc-tab--active {
    background: #ffffff;
    color: #cc0000;
    font-weight: bold;
    border-color: #999;
    border-bottom-color: #ffffff;
}

/* ── Résultats / alertes ── */
body.theme-vdoc .win-result { border-radius: 0; font-size: 11px; }
body.theme-vdoc .win-result.success {
    background: #d4edda;
    border: 1px solid #5a9a6a;
    color: #2d6a4a;
    box-shadow: none;
}
body.theme-vdoc .win-result.error {
    background: #fff0f0;
    border: 1px solid #cc0000;
    border-left: 4px solid #880000;
    color: #7a1a1a;
    box-shadow: none;
}
body.theme-vdoc .tab-message { border-radius: 0; font-size: 11px; }

/* ── Toast notifications ── */
body.theme-vdoc .toast {
    border-radius: 2px;
    box-shadow: 2px 2px 6px rgba(0,0,0,.3);
    font-size: 11px;
}
body.theme-vdoc .toast.success { background: #d4edda; border-color: #5a9a6a; color: #2d6a4a; }
body.theme-vdoc .toast.error   { background: #fff0f0; border-color: #cc0000; color: #7a1a1a; }
body.theme-vdoc .toast.info    { background: #fff8dc; border-color: #e0c060; color: #5a4a00; }
body.theme-vdoc .toast.warning { background: #fff3cd; border-color: #c0a020; color: #7a5a00; }

/* ── Modale de confirmation ── */
body.theme-vdoc .modal-dialog {
    background: #f5f1eb;
    border: 1px solid #999;
    border-radius: 0;
    box-shadow: 3px 3px 10px rgba(0,0,0,.4);
}
body.theme-vdoc .modal-header {
    background: linear-gradient(180deg, #cc0000 0%, #aa0000 100%);
    border-radius: 0;
    border-bottom: 1px solid #880000;
}
body.theme-vdoc .modal-body  { font-size: 12px; color: #000; }
body.theme-vdoc .modal-footer {
    background: #e8e4de;
    border-top: 1px solid #ccc;
    border-radius: 0;
}

/* ── Propriétés utilisateur (ADUC) ── */
body.theme-vdoc .aduc-header  { border-bottom-color: #ccc; }
body.theme-vdoc .aduc-avatar  { background: #e8e4de; border: 1px solid #999; border-radius: 2px; }
body.theme-vdoc .aduc-name strong { color: #000; }
body.theme-vdoc .aduc-row     { border-bottom-color: #e0dcd8; }
body.theme-vdoc .aduc-row label { color: #444; font-size: 11px; }
body.theme-vdoc .aduc-row span  { color: #000; font-size: 11px; }
body.theme-vdoc .aduc-footer { background: #e8e4de; border-top: 1px solid #ccc; }
body.theme-vdoc .aduc-list   { border-color: #999; border-radius: 0; }
body.theme-vdoc .aduc-list li { border-bottom-color: #e0dcd8; font-size: 11px; color: #000; }
body.theme-vdoc .aduc-list li:hover { background: #fff8dc; }
body.theme-vdoc .aduc-notes-box {
    border: 1px inset #999;
    border-radius: 0;
    background: #ffffc0;
    font-size: 11px;
}

/* ── Création utilisateur ── */
body.theme-vdoc .create-tab-page fieldset { border-color: #999; border-radius: 0; }
body.theme-vdoc .create-tab-page legend   { font-size: 11px; }

/* ── Sélecteur de thèmes ── */
body.theme-vdoc [data-theme-card] { border-radius: 0 !important; }
body.theme-vdoc tr.highlight td   { background: #fffbcc !important; }

/* ── Page de login ── */
body.theme-vdoc.login-bg {
    background: #d4d0c8;
}
body.theme-vdoc .login-box {
    background: #f5f1eb;
    border: 1px solid #888;
    border-top: 3px solid #cc0000;
    border-radius: 0;
    box-shadow: 2px 2px 8px rgba(0,0,0,.35);
}
body.theme-vdoc .login-logo {
    background: linear-gradient(180deg, #cc0000 0%, #aa0000 100%);
    border-bottom: 1px solid #880000;
}
body.theme-vdoc .login-product  { color: #fff; }
body.theme-vdoc .login-subtitle { color: rgba(255,255,255,.75); }
body.theme-vdoc .orb--lg {
    background: radial-gradient(circle at 35% 30%, #ff6666 0%, #880000 68%);
    border-color: #cc0000;
    box-shadow: inset 0 2px 0 rgba(255,255,255,0.3), 0 3px 8px rgba(0,0,0,0.4);
}
body.theme-vdoc .login-info {
    background: #fff8dc;
    border: 1px solid #e0c060;
    border-left: 4px solid #e0a000;
    color: #5a4a00;
    border-radius: 0;
}
body.theme-vdoc .login-error {
    background: #fff0f0;
    border: 1px solid #cc0000;
    border-left: 4px solid #880000;
    color: #7a1a1a;
    border-radius: 0;
}
body.theme-vdoc .field-row label { color: #333; font-size: 11px; }
body.theme-vdoc .input-wrap {
    background: #ffffc0;
    border: 1px inset #999;
    border-radius: 0;
    box-shadow: none;
}
body.theme-vdoc .input-wrap:focus-within {
    border-color: #666;
    box-shadow: none;
}
body.theme-vdoc .input-icon { color: #666; }
body.theme-vdoc .input-wrap .office-input { background: transparent; color: #000; font-size: 12px; }
body.theme-vdoc .field-hint { color: #666; font-style: normal; }
body.theme-vdoc .btn-login {
    background: #cc0000;
    color: #fff;
    border: 1px solid #880000;
    border-radius: 2px;
    box-shadow: none;
    font-size: 12px;
    font-weight: bold;
}
body.theme-vdoc .btn-login:hover { background: #aa0000; border-color: #660000; }
body.theme-vdoc .login-footer {
    background: #e8e4de;
    border-top: 1px solid #bbb;
    color: #555;
}

/* ── Cartes de statistiques (dashboard) ── */
body.theme-vdoc .card {
    background: #f5f1eb;
    border: 1px solid #bbb;
    border-top: 3px solid #cc0000;
    border-radius: 0;
    box-shadow: none;
}
body.theme-vdoc .card h2,
body.theme-vdoc .card h3 { color: #333; font-size: 11px; }
body.theme-vdoc .stat .kpi { color: #cc0000; }
body.theme-vdoc .stat .kpi-label { color: #555; }
body.theme-vdoc .card-icon { color: #cc0000; opacity: .7; }
body.theme-vdoc .stats-grid .card { border-top-color: #cc0000; }

/* ── Bandeau info (login, dashboard) ── */
body.theme-vdoc .login-info,
body.theme-vdoc .tab-message.info {
    background: #fff8dc;
    border: 1px solid #e0c060;
    border-left: 4px solid #e0a000;
    color: #5a4a00;
    border-radius: 0;
}
body.theme-vdoc .tab-message.success {
    background: #d4edda;
    border-left-color: #5a9a6a;
    color: #2d6a4a;
}
body.theme-vdoc .tab-message.error {
    background: #fff0f0;
    border-left-color: #880000;
    color: #7a1a1a;
}
body.theme-vdoc .tab-message.warning {
    background: #fff3cd;
    border-left-color: #c0a020;
    color: #7a5a00;
}

/* ── Sélection de ligne (row-selected) ── */
body.theme-vdoc .activity-table tbody tr.row-selected td { background: #ffd700 !important; color: #000 !important; }
body.theme-vdoc .activity-table tbody tr.row-selected:hover td { background: #ffcc00 !important; }

/* ── Colonne triable ── */
body.theme-vdoc .sortable:hover { background: #e8e4de !important; color: #333 !important; }
body.theme-vdoc .sortable.sorted-asc,
body.theme-vdoc .sortable.sorted-desc { background: #d8d4cc !important; color: #000 !important; }

/* ── Champs ADUC (propriétés utilisateur) ── */
body.theme-vdoc .aduc-input {
    background: #ffffc0;
    border: 1px inset #999;
    border-radius: 0;
    color: #000;
    font-size: 11px;
    font-family: Arial, sans-serif;
}
body.theme-vdoc .aduc-input:focus {
    border-color: #666;
    box-shadow: none;
    outline: none;
}
body.theme-vdoc .aduc-input:read-only { background: #f5f1eb; color: #444; }
body.theme-vdoc .aduc-input--large    { color: #000; font-weight: bold; font-size: 13px; }
body.theme-vdoc .aduc-input--desc     { color: #555; font-style: normal; }
body.theme-vdoc .aduc-readonly { color: #000; }
body.theme-vdoc .aduc-loading { color: #666; }
body.theme-vdoc .aduc-desc    { color: #555; font-style: normal; }
body.theme-vdoc .aduc-dn      { color: #666 !important; font-size: 10px !important; }

/* ── Labels de sections ADUC ── */
body.theme-vdoc .aduc-notes > label,
body.theme-vdoc .aduc-list-section > label { color: #333; font-weight: bold; font-size: 11px; }

/* ── Modale — texte corps ── */
body.theme-vdoc .modal-message { color: #000; font-size: 12px; }

/* ── Contrôles de fenêtre ── */
body.theme-vdoc .window-actions { color: #fff; }

/* ── Template picker ── */
body.theme-vdoc .tpl-card:hover {
    border-color: #cc0000;
    box-shadow: 0 0 0 2px rgba(204,0,0,.2);
}
body.theme-vdoc .tpl-list-item:hover { background: #fff8dc; }
