/* ==== Outils : éditeur, mentions, notifications, temps passé, pilotage ==========================
   Couleurs dérivées de la palette MudBlazor (--mud-palette-*) : lisibles en clair comme en sombre. */

/* ---- Éditeur WYSIWYG (TOAST UI) ------------------------------------------------------------- */
.isy-editor { position: relative; min-width: 0; }
.isy-editor__host { min-width: 0; }
.isy-editor__loading {
    display: flex; flex-direction: column; gap: 6px; min-height: calc(var(--isy-editor-min, 140px) + 42px); padding: 12px 14px;
    border: 1px solid var(--mud-palette-lines-inputs); border-radius: 8px; background: var(--mud-palette-surface);
}
.isy-editor__loadingbar { height: 26px; margin: -4px -6px 8px; border-radius: 6px; background: var(--mud-palette-background-gray); }
.isy-editor.is-disabled .isy-editor__host { pointer-events: none; opacity: .6; }

.isy-editor .toastui-editor-defaultUI {
    font-family: inherit; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 8px;
    background: var(--mud-palette-surface); transition: border-color .15s, box-shadow .15s;
}
.isy-editor .toastui-editor-defaultUI:hover { border-color: var(--mud-palette-text-secondary); }
.isy-editor .toastui-editor-defaultUI:focus-within {
    border-color: var(--mud-palette-primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--mud-palette-primary) 16%, transparent);
}
.isy-editor .toastui-editor-defaultUI-toolbar {
    padding: 0 6px; height: 40px; border-bottom: 1px solid var(--mud-palette-lines-default); border-radius: 8px 8px 0 0;
    background: color-mix(in srgb, var(--mud-palette-background-gray) 60%, var(--mud-palette-surface));
}
.isy-editor .toastui-editor-toolbar-group { align-items: center; }
.isy-editor .toastui-editor-toolbar-divider { height: 18px; margin: 0 6px; background-color: var(--mud-palette-lines-default); }
.isy-editor .toastui-editor-toolbar-icons { border-radius: 6px; margin: 0 1px; width: 30px; height: 30px; }
.isy-editor .toastui-editor-toolbar-icons:not(:disabled):hover { background-color: var(--mud-palette-action-default-hover); border-color: transparent; }
.isy-editor .toastui-editor-toolbar-icons.active { background-color: color-mix(in srgb, var(--mud-palette-primary) 14%, transparent); border-color: transparent; }
.isy-editor .toastui-editor-main,
.isy-editor .toastui-editor-md-container,
.isy-editor .toastui-editor-ww-container { background: transparent; }
.isy-editor .toastui-editor-main .toastui-editor-md-splitter { background-color: var(--mud-palette-lines-default); }
.isy-editor .toastui-editor-md-tab-container {
    background: color-mix(in srgb, var(--mud-palette-background-gray) 60%, var(--mud-palette-surface));
    border-bottom-color: var(--mud-palette-lines-default);
}
.isy-editor .toastui-editor-md-tab-container .tab-item { color: var(--mud-palette-text-secondary); background: transparent; border-color: var(--mud-palette-lines-default); }
.isy-editor .toastui-editor-md-tab-container .tab-item.active { color: var(--mud-palette-text-primary); background: var(--mud-palette-surface); }

/* Zone de saisie : même typographie que le rendu Markdown (.markdown-body). */
.isy-editor .toastui-editor-contents,
.isy-editor .toastui-editor-md-container .ProseMirror {
    font-family: Inter, "Segoe UI", Roboto, sans-serif; font-size: .875rem; line-height: 1.6; color: var(--mud-palette-text-primary);
}
.isy-editor .toastui-editor-contents { padding: 12px 16px; }
.isy-editor .toastui-editor-md-container .toastui-editor { padding: 12px 16px; }
.isy-editor .toastui-editor-contents :is(p, li, td, th, blockquote, h1, h2, h3, h4, h5, h6) { color: var(--mud-palette-text-primary); }
.isy-editor .toastui-editor-contents p { margin: 0 0 .5em; }
.isy-editor .toastui-editor-contents :is(h1, h2) { border-bottom: 0; padding-bottom: 0; }
.isy-editor .toastui-editor-contents h1 { font-size: 1.25rem; line-height: 1.35; margin: .8em 0 .4em; }
.isy-editor .toastui-editor-contents h2 { font-size: 1.1rem; line-height: 1.35; margin: .8em 0 .4em; }
.isy-editor .toastui-editor-contents :is(h3, h4, h5, h6) { font-size: .95rem; margin: .8em 0 .4em; }
.isy-editor .toastui-editor-contents a { color: var(--mud-palette-primary); }
.isy-editor .toastui-editor-contents blockquote { border-left: 3px solid var(--mud-palette-lines-inputs); }
.isy-editor .toastui-editor-contents blockquote p { color: var(--mud-palette-text-secondary); }
.isy-editor .toastui-editor-contents code {
    font-family: "JetBrains Mono", ui-monospace, Consolas, monospace; font-size: .85em; color: inherit;
    background: color-mix(in srgb, var(--mud-palette-text-primary) 7%, transparent);
}
.isy-editor .toastui-editor-contents pre { background: color-mix(in srgb, var(--mud-palette-text-primary) 5%, transparent); border-radius: 8px; }
.isy-editor .toastui-editor-contents pre code { background: none; }
.isy-editor .toastui-editor-contents .placeholder,
.isy-editor .toastui-editor-md-container .placeholder { color: var(--mud-palette-text-secondary); opacity: .75; }
.isy-editor .toastui-editor-contents ul > li::before { background-color: var(--mud-palette-text-secondary); }
.isy-editor .toastui-editor-contents .task-list-item::before { border-color: var(--mud-palette-lines-inputs); }
.isy-editor .toastui-editor-mode-switch {
    height: 30px; border-top: 1px solid var(--mud-palette-lines-default); border-radius: 0 0 8px 8px;
    background: color-mix(in srgb, var(--mud-palette-background-gray) 60%, var(--mud-palette-surface));
}
.isy-editor .toastui-editor-mode-switch .tab-item {
    height: 24px; margin-top: -1px; font-size: .72rem; font-weight: 600; color: var(--mud-palette-text-secondary);
    background: transparent; border-color: var(--mud-palette-lines-default);
}
.isy-editor .toastui-editor-mode-switch .tab-item.active { color: var(--mud-palette-text-primary); background: var(--mud-palette-surface); }

/* Fenêtres de l'éditeur (lien, titres...) */
.isy-editor .toastui-editor-popup {
    font-family: inherit; border-radius: 10px; border-color: var(--mud-palette-lines-default);
    background: var(--mud-palette-surface); box-shadow: 0 10px 30px rgba(15, 23, 42, .16);
}
.isy-editor .toastui-editor-popup-body label { color: var(--mud-palette-text-secondary); }
.isy-editor .toastui-editor-popup-body input[type="text"] {
    border-radius: 6px; border-color: var(--mud-palette-lines-inputs); background: var(--mud-palette-surface); color: var(--mud-palette-text-primary);
}
.isy-editor .toastui-editor-popup-body input[type="text"]:focus { outline: 2px solid var(--mud-palette-primary); outline-offset: -1px; }
.isy-editor .toastui-editor-popup-body .toastui-editor-ok-button { background-color: var(--mud-palette-primary); border-radius: 6px; }
.isy-editor .toastui-editor-popup-body .toastui-editor-close-button { border-radius: 6px; }
.isy-editor .toastui-editor-popup-add-heading ul li:hover { background-color: var(--mud-palette-action-default-hover); }
.isy-editor .toastui-editor-tooltip { border-radius: 6px; }

/* Mention dans l'éditeur (lien mention:) */
.isy-editor .toastui-editor-contents a[href^="mention:"] {
    display: inline-block; padding: 0 6px; border-radius: 999px; line-height: 1.5; font-weight: 600; text-decoration: none;
    color: var(--mud-palette-primary); background: color-mix(in srgb, var(--mud-palette-primary) 12%, transparent);
    cursor: default;
}

/* ---- Pièces jointes dans l'éditeur (images collées, « Joindre un fichier ») -------------------- */
.isy-editor .toastui-editor-contents a[href^="attachment:"] {
    display: inline-block; padding: 0 8px; border-radius: 6px; line-height: 1.6; font-weight: 600; text-decoration: none;
    color: var(--mud-palette-text-primary); background: var(--mud-palette-background-gray); cursor: default;
}
.isy-editor img.isy-editor-attachment { max-width: 100%; border-radius: 6px; }
.isy-editor img.isy-editor-attachment.is-loading {
    width: 160px; height: 100px; background: var(--mud-palette-background-gray); animation: isy-attachment-pulse 1.2s ease-in-out infinite;
}
.isy-editor img.isy-editor-attachment.is-missing {
    width: 160px; height: 60px; background: var(--mud-palette-background-gray); outline: 1px dashed var(--mud-palette-lines-inputs);
}
.isy-editor__files { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-top: 6px; font-size: .8rem; }
.isy-editor__attach {
    position: relative; display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px 3px 6px; border-radius: 6px;
    font-weight: 600; color: var(--mud-palette-text-secondary); cursor: pointer; transition: background-color .15s, color .15s;
}
.isy-editor__attach:hover { color: var(--mud-palette-primary); background: var(--mud-palette-action-default-hover); }
.isy-editor__attach:focus-within { outline: 2px solid color-mix(in srgb, var(--mud-palette-primary) 45%, transparent); outline-offset: 1px; }
.isy-editor__attach.is-disabled { pointer-events: none; opacity: .5; }
.isy-editor__attachinput { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; pointer-events: none; }
.isy-editor__upload { display: inline-flex; align-items: center; gap: 6px; color: var(--mud-palette-text-secondary); }
.isy-editor__uploadspinner { width: 14px !important; height: 14px !important; }

/* ---- Pièces jointes : rendu (MarkdownRenderer + preview.js) ---------------------------------- */
.markdown-body img.isy-inline-attachment { display: block; max-width: 100%; margin: .25em 0; cursor: zoom-in; border: 1px solid var(--mud-palette-lines-default); }
.markdown-body img.isy-inline-attachment:not([src]), .markdown-body img.isy-inline-attachment.is-loading {
    width: 220px; height: 130px; border-color: transparent; background: var(--mud-palette-background-gray);
    animation: isy-attachment-pulse 1.2s ease-in-out infinite; font-size: 0; color: transparent;
}
.markdown-body a.isy-file-chip {
    display: inline-flex; align-items: center; gap: 4px; max-width: 100%; padding: 1px 10px; border-radius: 6px; line-height: 1.6;
    font-weight: 600; text-decoration: none; color: var(--mud-palette-text-primary);
    border: 1px solid var(--mud-palette-lines-default); background: var(--mud-palette-background-gray);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom;
}
.markdown-body a.isy-file-chip:hover { color: var(--mud-palette-primary); border-color: color-mix(in srgb, var(--mud-palette-primary) 45%, transparent); }
.markdown-body a.isy-file-chip.is-missing, .isy-attachment-missing {
    display: inline-flex; align-items: center; padding: 1px 10px; border-radius: 6px; font-size: .8rem; font-style: italic; font-weight: 400;
    color: var(--mud-palette-text-secondary); background: transparent; border: 1px dashed var(--mud-palette-lines-inputs); cursor: default;
}
@keyframes isy-attachment-pulse { 50% { opacity: .55; } }
@media (prefers-reduced-motion: reduce) {
    .markdown-body img.isy-inline-attachment, .isy-editor img.isy-editor-attachment { animation: none !important; }
}

/* Formulaire de création : fichiers préparés, progression de l'envoi */
.isy-staged__name { font-size: .875rem; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.isy-formprogress { display: flex; flex-direction: column; gap: 6px; margin: 12px 0 0; font-size: .8rem; color: var(--mud-palette-text-secondary); }
.isy-internal-tag.isy-internal-tag--inline { margin-left: 0; align-self: flex-start; }

/* ---- Mentions : rendu (MarkdownRenderer) ----------------------------------------------------- */
.isy-mention {
    display: inline-block; padding: 0 6px; border-radius: 999px; line-height: 1.5; font-weight: 600; white-space: nowrap;
    color: var(--mud-palette-primary); background: color-mix(in srgb, var(--mud-palette-primary) 12%, transparent);
}

/* Liste de suggestions @ (ajoutée au <body>, position fixe sous le curseur) */
.isy-mention-menu {
    position: fixed; z-index: 2100; width: 280px; max-height: 300px; overflow-y: auto; padding: 6px;
    border-radius: 10px; border: 1px solid var(--mud-palette-lines-default); background: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary); box-shadow: 0 12px 32px rgba(15, 23, 42, .18); font-family: Inter, "Segoe UI", Roboto, sans-serif;
}
.isy-dark .isy-mention-menu { box-shadow: 0 12px 32px rgba(0, 0, 0, .5); }
.isy-mention-menu__title {
    padding: 4px 8px 6px; font-size: .68rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
    color: var(--mud-palette-text-secondary);
}
.isy-mention-menu__item { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 8px; cursor: pointer; }
.isy-mention-menu__item.is-active { background: color-mix(in srgb, var(--mud-palette-primary) 12%, transparent); }
.isy-mention-menu__avatar {
    display: inline-flex; align-items: center; justify-content: center; flex: none; width: 26px; height: 26px; border-radius: 50%;
    color: #fff; font-size: .66rem; font-weight: 700; letter-spacing: .02em;
}
.isy-mention-menu__who { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.isy-mention-menu__name { font-size: .85rem; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.isy-mention-menu__email { font-size: .72rem; color: var(--mud-palette-text-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---- Cloche des notifications -------------------------------------------------------------- */
.isy-bell {
    position: relative; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px;
    padding: 0; border: 0; border-radius: 50%; background: transparent; color: inherit; cursor: pointer;
    transition: background-color .12s;
}
.isy-bell:hover { background: var(--mud-palette-action-default-hover); }
.isy-bell:focus-visible { outline: 2px solid var(--mud-palette-primary); outline-offset: 1px; }
.isy-bell.has-unread .mud-icon-root { color: var(--mud-palette-primary); }
.isy-bell__badge {
    position: absolute; top: 4px; right: 3px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px;
    display: inline-flex; align-items: center; justify-content: center; font-size: .66rem; font-weight: 700; line-height: 1;
    color: #fff; background: var(--mud-palette-error); box-shadow: 0 0 0 2px var(--mud-palette-appbar-background);
}
.isy-bell__popover { width: 380px; max-width: calc(100vw - 16px); }
.isy-bell__popover .mud-list { padding: 0; }
.isy-bell__panel { display: flex; flex-direction: column; max-height: min(520px, 75vh); }
.isy-bell__head {
    display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 12px 16px;
    border-bottom: 1px solid var(--mud-palette-lines-default);
}
.isy-bell__title { display: flex; align-items: center; gap: 8px; font-size: .95rem; font-weight: 600; }
.isy-bell__count { color: var(--mud-palette-primary); background: color-mix(in srgb, var(--mud-palette-primary) 12%, transparent); }
.isy-bell__readall {
    display: inline-flex; align-items: center; gap: 4px; padding: 4px 8px; border: 0; border-radius: 6px; background: transparent;
    font: inherit; font-size: .78rem; font-weight: 600; color: var(--mud-palette-primary); cursor: pointer;
}
.isy-bell__readall:hover { background: color-mix(in srgb, var(--mud-palette-primary) 8%, transparent); }
.isy-bell__list { overflow-y: auto; padding: 6px; }
.isy-notif {
    position: relative; display: flex; align-items: flex-start; gap: 12px; width: 100%; padding: 10px 28px 10px 10px; margin: 0;
    border: 0; border-radius: 8px; background: transparent; color: var(--mud-palette-text-primary); font: inherit; text-align: left; cursor: pointer;
}
.isy-notif + .isy-notif { margin-top: 2px; }
.isy-notif:hover { background: var(--mud-palette-action-default-hover); }
.isy-notif:focus-visible { outline: 2px solid var(--mud-palette-primary); outline-offset: -2px; }
.isy-notif.is-unread { background: color-mix(in srgb, var(--mud-palette-primary) 6%, transparent); }
.isy-notif.is-unread:hover { background: color-mix(in srgb, var(--mud-palette-primary) 11%, transparent); }
.isy-notif__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.isy-notif__text { font-size: .82rem; line-height: 1.4; color: var(--mud-palette-text-secondary); }
.isy-notif__text strong { color: var(--mud-palette-text-primary); font-weight: 600; }
.isy-notif__key { font-family: "JetBrains Mono", ui-monospace, Consolas, monospace; font-size: .75rem; font-weight: 600; color: var(--mud-palette-text-primary); }
.isy-notif__title { font-size: .85rem; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.isy-notif.is-unread .isy-notif__title { color: var(--mud-palette-text-primary); }
.isy-notif__excerpt {
    font-size: .78rem; color: var(--mud-palette-text-secondary); overflow: hidden; display: -webkit-box;
    -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-clamp: 2;
}
.isy-notif__time { font-size: .72rem; color: var(--mud-palette-text-secondary); }
.isy-notif.is-unread .isy-notif__time { color: var(--mud-palette-primary); font-weight: 600; }
.isy-notif__dot { position: absolute; top: 16px; right: 12px; width: 8px; height: 8px; border-radius: 50%; background: var(--mud-palette-primary); }

/* ---- Jauge commune (temps / estimation, enveloppes) ---------------------------------------- */
.isy-meter {
    --meter: var(--mud-palette-primary);
    position: relative; height: 8px; border-radius: 999px; overflow: hidden;
    background: color-mix(in srgb, var(--mud-palette-text-primary) 8%, transparent);
}
.isy-meter--sm { height: 6px; }
.isy-meter--lg { height: 10px; }
.isy-meter__fill { display: block; height: 100%; border-radius: inherit; background: var(--meter); transition: width .3s ease; }
.isy-meter.is-warn { --meter: var(--mud-palette-warning); }
.isy-meter.is-over { --meter: var(--mud-palette-error); }

/* ---- Temps passé (fiche ticket) -------------------------------------------------------------- */
.isy-time { display: flex; flex-direction: column; gap: 12px; container-type: inline-size; }
.isy-time__summary { display: flex; flex-direction: column; gap: 6px; }
.isy-time__totals { display: flex; align-items: baseline; flex-wrap: wrap; gap: 2px; font-size: .9rem; }
.isy-time__spent { font-size: 1.35rem; font-weight: 700; letter-spacing: -.02em; font-variant-numeric: tabular-nums; margin-right: 4px; }
.isy-time__noestimate { font-size: .8rem; margin-left: 6px; }
.isy-time__ratio { display: inline-flex; align-items: center; gap: 4px; font-size: .75rem; color: var(--mud-palette-text-secondary); }
.isy-time__ratio.is-warn { color: color-mix(in srgb, var(--mud-palette-warning) 85%, var(--mud-palette-text-primary)); font-weight: 600; }
.isy-time__ratio.is-over { color: var(--mud-palette-error); font-weight: 600; }
.isy-time__add {
    display: flex; flex-direction: column; gap: 10px;
    padding: 12px; border-radius: 10px; background: color-mix(in srgb, var(--mud-palette-background-gray) 55%, transparent);
    border: 1px solid var(--mud-palette-lines-default);
}
.isy-time__add .mud-input-control { margin: 0 !important; }
.isy-time__add .mud-input-control .mud-input { background: var(--mud-palette-surface); }
.isy-time__row { display: flex; gap: 8px; align-items: center; min-width: 0; }
.isy-time__duration { flex: 1 1 0; min-width: 0; }
.isy-time__date { flex: 0 0 146px; width: 146px; }
.isy-time__note { flex: 1 1 0; min-width: 0; }
.isy-time__submit { flex: none; height: 40px; margin-top: 0; }
.isy-time__submit.mud-button-disabled { background: var(--mud-palette-surface) !important; color: var(--mud-palette-text-disabled) !important; box-shadow: inset 0 0 0 1px var(--mud-palette-lines-default); }
.isy-time__quick { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.isy-time__chip {
    height: 26px; padding: 0 10px; border-radius: 999px; cursor: pointer; font: inherit; font-size: .75rem; font-weight: 500;
    color: var(--mud-palette-text-primary); background: var(--mud-palette-surface); border: 1px solid var(--mud-palette-lines-inputs);
    transition: background-color .12s ease, border-color .12s ease, color .12s ease;
}
.isy-time__chip:hover { border-color: var(--mud-palette-primary); color: var(--mud-palette-primary); }
.isy-time__chip:focus-visible { outline: 2px solid var(--mud-palette-primary); outline-offset: 1px; }
.isy-time__chip.is-active { background: var(--mud-palette-primary); border-color: var(--mud-palette-primary); color: var(--mud-palette-primary-text); }
.isy-time__hint { margin-left: auto; font-size: .72rem; color: var(--mud-palette-text-secondary); font-variant-numeric: tabular-nums; white-space: nowrap; }
.isy-time__hint.is-error { color: var(--mud-palette-error); }
.isy-time__empty { display: flex; align-items: center; gap: 6px; font-size: .82rem; padding: 4px 2px; }
.isy-time__list { list-style: none; margin: 0; padding: 0; }
.isy-time__entry { gap: 10px; padding: 8px 2px; }
.isy-time__entrydate { flex: none; width: 76px; font-size: .78rem; font-variant-numeric: tabular-nums; color: var(--mud-palette-text-secondary); }
.isy-time__entrymain { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.35; }
.isy-time__who { font-size: .85rem; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.isy-time__entrynote { font-size: .75rem; color: var(--mud-palette-text-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.isy-time__entryduration { flex: none; font-weight: 600; font-size: .85rem; font-variant-numeric: tabular-nums; }
.isy-time__spacer { flex: none; width: 28px; }
/* Panneau étroit : la note passe sous la ligne, le bouton prend toute la largeur. */
@container (max-width: 340px) {
    .isy-time__row:last-child { flex-wrap: wrap; }
    .isy-time__row:last-child .isy-time__note { flex-basis: 100%; }
    .isy-time__submit { flex: 1 1 100%; }
    .isy-time__hint { margin-left: 0; flex-basis: 100%; }
}

/* ---- Pilotage ------------------------------------------------------------------------------ */
.isy-periodbar { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding: 10px 14px; margin-bottom: 16px; }
.isy-periodbar__dates { display: flex; align-items: center; gap: 8px; }
.isy-periodbar__date { width: 150px; }
.isy-periodbar .mud-input-control { margin: 0 !important; }

.isy-segmented { display: inline-flex; gap: 2px; padding: 3px; border-radius: 10px; background: var(--mud-palette-background-gray); }
.isy-segmented__item {
    padding: 5px 12px; border: 0; border-radius: 8px; background: transparent; cursor: pointer; white-space: nowrap;
    font: inherit; font-size: .8rem; font-weight: 600; color: var(--mud-palette-text-secondary);
}
.isy-segmented__item:hover { color: var(--mud-palette-text-primary); }
.isy-segmented__item:focus-visible { outline: 2px solid var(--mud-palette-primary); outline-offset: -2px; }
.isy-segmented__item.is-active { background: var(--mud-palette-surface); color: var(--mud-palette-primary); box-shadow: 0 1px 2px rgba(15, 23, 42, .08); }
.isy-segmented--sm .isy-segmented__item { padding: 3px 10px; font-size: .75rem; }

.isy-kpis.is-loading, .isy-pilotage__grid.is-loading { opacity: .6; transition: opacity .2s; }

.isy-budgets__body { padding: 16px; }
.isy-budgets { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 440px), 1fr)); gap: 16px; margin-bottom: 16px; }
.isy-budgets__body .isy-budgets { margin-bottom: 0; }
.isy-budget { display: flex; flex-direction: column; gap: 10px; padding: 16px 18px; min-width: 0; }
.isy-budgets__body .isy-budget { box-shadow: none; }
.isy-budget__head { display: flex; align-items: flex-start; gap: 10px; }
.isy-budget__icon {
    display: inline-flex; align-items: center; justify-content: center; flex: none; width: 32px; height: 32px; border-radius: 8px;
    color: var(--mud-palette-primary); background: color-mix(in srgb, var(--mud-palette-primary) 12%, transparent);
}
.isy-budget.is-warn .isy-budget__icon { color: var(--mud-palette-warning); background: color-mix(in srgb, var(--mud-palette-warning) 14%, transparent); }
.isy-budget.is-over .isy-budget__icon { color: var(--mud-palette-error); background: color-mix(in srgb, var(--mud-palette-error) 12%, transparent); }
.isy-budget__titles { flex: 1; min-width: 0; }
.isy-budget__name { margin: 0; font-size: 1rem; font-weight: 700; letter-spacing: -.01em; overflow-wrap: anywhere; }
.isy-budget__meta { display: flex; align-items: center; flex-wrap: wrap; font-size: .75rem; color: var(--mud-palette-text-secondary); }
.isy-budget__actions { display: flex; gap: 2px; margin: -4px -6px 0 0; }
.isy-budget__figures { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.isy-budget__consumed { display: flex; align-items: baseline; gap: 6px; }
.isy-budget__big { font-size: 1.9rem; font-weight: 700; line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.isy-budget__of { font-size: .85rem; color: var(--mud-palette-text-secondary); }
.isy-budget__remaining { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.25; }
.isy-budget__label { font-size: .7rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--mud-palette-text-secondary); }
.isy-budget__value { font-size: 1.05rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.isy-budget__status { display: inline-flex; align-items: center; gap: 4px; font-size: .85rem; font-weight: 700; }
.isy-budget__status.is-over { color: var(--mud-palette-error); }
.isy-budget__pct { display: flex; justify-content: space-between; gap: 8px; margin-top: -4px; font-size: .75rem; }
.isy-budget__pctvalue { font-weight: 700; font-variant-numeric: tabular-nums; }
.isy-budget__pctvalue.is-warn { color: color-mix(in srgb, var(--mud-palette-warning) 85%, var(--mud-palette-text-primary)); }
.isy-budget__pctvalue.is-over { color: var(--mud-palette-error); }
.isy-budget__facts { list-style: none; margin: 0; padding: 10px 12px; border-radius: 8px; background: var(--mud-palette-background-gray); }
.isy-budget__facts li { display: flex; align-items: flex-start; gap: 8px; padding: 2px 0; font-size: .8rem; color: var(--mud-palette-text-secondary); }
.isy-budget__facts li .mud-icon-root { flex: none; margin-top: 2px; }
.isy-budget__facts li strong { color: var(--mud-palette-text-primary); }
.isy-budget__facts li.is-warning { color: color-mix(in srgb, var(--mud-palette-warning) 80%, var(--mud-palette-text-primary)); }
.isy-budget__facts li.is-warning .mud-icon-root { color: var(--mud-palette-warning); }

/* Graphiques SVG */
.isy-chart { margin: 0; min-width: 0; }
.isy-chart svg { display: block; width: 100%; height: auto; overflow: visible; font-family: Inter, "Segoe UI", Roboto, sans-serif; }
.isy-chart__grid { stroke: var(--mud-palette-lines-default); stroke-width: 1; }
.isy-chart__grid.is-base { stroke: var(--mud-palette-lines-inputs); }
.isy-chart__vtick { stroke: var(--mud-palette-lines-inputs); stroke-width: 1; }
.isy-chart__tick { font-size: 10px; fill: var(--mud-palette-text-secondary); font-variant-numeric: tabular-nums; }
.isy-chart__unit { font-size: 9px; fill: var(--mud-palette-text-secondary); opacity: .8; }
.isy-chart__value { font-size: 10px; font-weight: 600; fill: var(--mud-palette-text-primary); font-variant-numeric: tabular-nums; }
.isy-chart__hit { fill: transparent; }
.isy-chart__pt .isy-chart__dot { opacity: 0; transition: opacity .1s; }
.isy-chart__pt:hover .isy-chart__dot { opacity: 1; }
.isy-chart__dot { fill: var(--mud-palette-primary); stroke: var(--mud-palette-surface); stroke-width: 2; }
.isy-chart__dot.is-warn { fill: var(--mud-palette-warning); }
.isy-chart__dot.is-over { fill: var(--mud-palette-error); }
.isy-chart__barfill { fill: var(--mud-palette-primary); transition: opacity .12s; }
.isy-chart__bar:hover .isy-chart__barfill { opacity: .8; }
.isy-chart__bar:hover .isy-chart__hit { fill: color-mix(in srgb, var(--mud-palette-text-primary) 4%, transparent); }
.isy-chart__legend { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 6px; font-size: .72rem; color: var(--mud-palette-text-secondary); }

.isy-burn__period { fill: color-mix(in srgb, var(--mud-palette-primary) 4%, transparent); }
.isy-burn__cap { stroke: var(--mud-palette-text-secondary); stroke-width: 1; stroke-dasharray: 2 3; opacity: .7; }
.isy-burn__ideal { stroke: var(--mud-palette-text-secondary); stroke-width: 1.5; stroke-dasharray: 5 4; }
.isy-burn__today { stroke: var(--mud-palette-text-secondary); stroke-width: 1; opacity: .5; }
.isy-burn__todaylabel { font-size: 9px; fill: var(--mud-palette-text-secondary); }
.isy-burn__actual { fill: none; stroke: var(--mud-palette-primary); stroke-width: 2; stroke-linejoin: round; }
.isy-burn__area { fill: color-mix(in srgb, var(--mud-palette-primary) 12%, transparent); stroke: none; }
.isy-burn__actual.is-warn { stroke: var(--mud-palette-warning); }
.isy-burn__area.is-warn { fill: color-mix(in srgb, var(--mud-palette-warning) 14%, transparent); }
.isy-burn__actual.is-over { stroke: var(--mud-palette-error); }
.isy-burn__area.is-over { fill: color-mix(in srgb, var(--mud-palette-error) 12%, transparent); }
.isy-burn__projection { stroke: var(--mud-palette-text-secondary); stroke-width: 1.5; stroke-dasharray: 1 3; stroke-linecap: round; }
.isy-burn__exhaust { fill: var(--mud-palette-surface); stroke: var(--mud-palette-text-secondary); stroke-width: 2; }
.isy-burn__exhaust.is-early { stroke: var(--mud-palette-warning); }

.isy-legend { display: inline-flex; align-items: center; gap: 6px; }
.isy-legend__swatch { display: inline-block; width: 16px; height: 0; border-top: 2px solid var(--mud-palette-primary); }
.isy-legend__swatch--actual.is-warn { border-top-color: var(--mud-palette-warning); }
.isy-legend__swatch--actual.is-over { border-top-color: var(--mud-palette-error); }
.isy-legend__swatch--ideal { border-top: 2px dashed var(--mud-palette-text-secondary); }
.isy-legend__swatch--cap { border-top: 1px dashed var(--mud-palette-text-secondary); }
.isy-legend__swatch--projection { border-top: 2px dotted var(--mud-palette-text-secondary); }
.isy-legend__dot { display: inline-block; flex: none; width: 10px; height: 10px; border-radius: 3px; }

.isy-pilotage__heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 28px 0 12px; }
.isy-pilotage__heading .isy-grouptitle { margin: 0; }
.isy-pilotage__period { text-transform: none; letter-spacing: 0; font-weight: 500; margin-left: 4px; }
.isy-pilotage__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.isy-pilotage__wide { grid-column: 1 / -1; }
.isy-pilotage__stats { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; margin-top: 16px; align-items: start; }

/* Barres horizontales (par personne) */
.isy-hbars { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.isy-hbars__row { display: grid; grid-template-columns: minmax(0, 170px) minmax(0, 1fr) auto 44px; align-items: center; gap: 10px; }
.isy-hbars__who { min-width: 0; font-size: .82rem; }
.isy-hbars__track { height: 10px; border-radius: 999px; background: color-mix(in srgb, var(--mud-palette-text-primary) 6%, transparent); overflow: hidden; }
.isy-hbars__fill { display: block; height: 100%; border-radius: 999px; background: var(--mud-palette-primary); }
.isy-hbars__row:hover .isy-hbars__fill { opacity: .8; }
.isy-hbars__value { font-size: .82rem; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.isy-hbars__share { font-size: .75rem; color: var(--mud-palette-text-secondary); text-align: right; font-variant-numeric: tabular-nums; }

/* Anneau (par type) */
.isy-donut { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.isy-donut__svg { width: 150px; height: 150px; flex: none; }
.isy-donut__track { fill: none; stroke: color-mix(in srgb, var(--mud-palette-text-primary) 6%, transparent); stroke-width: 16; }
.isy-donut__slice { fill: none; stroke-width: 16; transition: stroke-width .12s; }
.isy-donut__slice:hover { stroke-width: 19; }
.isy-donut__total { font-size: 20px; font-weight: 700; fill: var(--mud-palette-text-primary); font-variant-numeric: tabular-nums; }
.isy-donut__caption { font-size: 9px; fill: var(--mud-palette-text-secondary); letter-spacing: .04em; }
.isy-donut__legend { list-style: none; margin: 0; padding: 0; flex: 1; min-width: 180px; display: flex; flex-direction: column; gap: 8px; }
.isy-donut__legend li { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto 44px; align-items: center; gap: 10px; font-size: .82rem; }
.isy-donut__label { font-weight: 500; }
.isy-donut__value { font-weight: 600; font-variant-numeric: tabular-nums; }
.isy-donut__share { color: var(--mud-palette-text-secondary); text-align: right; font-size: .75rem; font-variant-numeric: tabular-nums; }

/* Tableaux de statistiques */
.isy-statstable .isy-table th.is-num, .isy-statstable .isy-table td.is-num { text-align: right; font-variant-numeric: tabular-nums; }
.isy-statstable .isy-table th.is-num .isy-sort { flex-direction: row-reverse; }
.isy-statstable__key { font-weight: 600; }
.isy-statstable__ratiohead { min-width: 130px; }
.isy-statstable__ratio { display: flex; align-items: center; gap: 8px; min-width: 130px; }
.isy-statstable__ratio .isy-meter { flex: 1; }
.isy-statstable__pct { width: 40px; text-align: right; font-size: .75rem; color: var(--mud-palette-text-secondary); font-variant-numeric: tabular-nums; }
.isy-sort {
    display: inline-flex; align-items: center; gap: 4px; padding: 0; border: 0; background: none; cursor: pointer;
    font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; white-space: nowrap;
}
.isy-sort:hover, .isy-sort.is-active { color: var(--mud-palette-text-primary); }
.isy-sort__icon { font-size: .9rem !important; opacity: 0; transition: opacity .12s; }
.isy-sort:hover .isy-sort__icon { opacity: .5; }
.isy-sort.is-active .isy-sort__icon { opacity: 1; }

/* Fenêtre d'enveloppe */
.isy-dialogtitle { display: flex; align-items: center; gap: 10px; font-size: 1.05rem; font-weight: 600; }
.isy-budgetform { gap: 16px; }
.isy-budgetform .mud-input-control { margin: 0 !important; }
.isy-budgetform__option { display: inline-flex; align-items: center; gap: 6px; }
.isy-budgetform__hint { display: flex; align-items: flex-start; gap: 8px; font-size: .78rem; line-height: 1.45; }
.isy-budgetform__hint .mud-icon-root { flex: none; margin-top: 2px; }

@media (max-width: 1100px) {
    .isy-pilotage__stats { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
    .isy-pilotage__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
    .isy-periodbar__dates { width: 100%; }
    .isy-periodbar__date { flex: 1; width: auto; }
    .isy-segmented { flex-wrap: wrap; }
    .isy-hbars__row { grid-template-columns: minmax(0, 1fr) auto; }
    .isy-hbars__track { grid-column: 1 / -1; grid-row: 2; }
    .isy-hbars__share { display: none; }
}

/* Recette : les dates de la période doivent rester lisibles en entier (jj/mm/aaaa + effacer + calendrier). */
.isy-periodbar__date { min-width: 188px; }

/* Pastille « mises à jour en direct » de la barre du haut (verte : temps réel ; grise : actualisation périodique). */
.isy-live {
    display: inline-block; width: 8px; height: 8px; margin: 0 10px; border-radius: 50%;
    background: var(--mud-palette-text-disabled); opacity: .7; transition: background-color .3s, opacity .3s;
}
.isy-live.is-on { background: var(--mud-palette-success); opacity: 1; box-shadow: 0 0 0 3px color-mix(in srgb, var(--mud-palette-success) 18%, transparent); }

/* Bandeau discret d'une fiche modifiée ailleurs ou supprimée. */
.isy-livebanner { margin-bottom: 12px; }
.isy-livebanner .mud-alert-message { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
