/* Agenda : calendrier, formulaires et barre d’outils. */
.agenda-toolbar {
    display:flex;
    gap:.75rem;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    margin-bottom:1rem
}
.agenda-search {
    margin-bottom:1rem
}
.agenda-today {
    margin-bottom:1rem;
    padding:1rem;
    border:2px solid var(--primary);
    border-radius:1rem;
    background:linear-gradient(135deg,#eff6ff,#fff);
    box-shadow:var(--shadow-lg)
}
.agenda-today-head {
    display:flex;
    justify-content:space-between;
    gap:1rem;
    align-items:flex-start;
    flex-wrap:wrap;
    margin-bottom:.75rem
}
.agenda-today-title {
    font-size:clamp(1.45rem,3vw,2.2rem);
    font-weight:900;
    color:var(--text)
}
.agenda-today-date {
    color:var(--primary);
    font-weight:800;
    text-transform:capitalize
}
.agenda-today-events {
    display:grid;
    gap:.5rem
}
.agenda-today-empty {
    color:var(--text-secondary);
    font-weight:700
}
.agenda-past-toggle {
    margin:.75rem 0 1rem;
    display:flex;
    justify-content:center
}
.agenda-reminder-list {
    display:flex;
    flex-direction:column;
    gap:.5rem
}
.agenda-reminder-row {
    display:flex;
    gap:.5rem;
    align-items:center
}
.agenda-reminder-row .form-input {
    max-width:160px
}
.agenda-reminder-remove {
    width:2rem;
    height:2rem;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0;
    font-size:1.15rem;
    line-height:1
}
.agenda-grid {
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:.5rem
}
.agenda-day-spacer {
    visibility:hidden;
    pointer-events:none
}
.agenda-day,.agenda-head {
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:.75rem;
    min-height:110px;
    padding:.65rem;
    box-shadow:var(--shadow)
}
.agenda-day {
    cursor:pointer
}
.agenda-head {
    min-height:auto;
    text-align:center;
    font-weight:700;
    color:var(--text-secondary)
}
.agenda-day.is-muted {
    opacity:.45
}
.agenda-day.is-today {
    border-color:var(--primary);
    box-shadow:0 0 0 2px rgba(37,99,235,.12)
}
.agenda-date {
    font-weight:700;
    margin-bottom:.4rem
}
.agenda-event {
    display:block;
    width:100%;
    border:0;
    border-radius:.45rem;
    background:#eff6ff;
    color:#1d4ed8;
    text-align:left;
    padding:.35rem .45rem;
    margin:.25rem 0;
    font-size:.82rem;
    cursor:pointer
}
.agenda-event:hover {
    background:#dbeafe
}
.agenda-event-open {
    display:block;
    width:100%;
    padding:0;
    border:0;
    background:transparent;
    color:inherit;
    font:inherit;
    text-align:left;
    cursor:pointer
}
.agenda-empty {
    color:var(--text-secondary);
    font-size:.9rem;
    padding:1rem;
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:.75rem
}
.agenda-results {
    display:flex;
    flex-direction:column;
    gap:.5rem
}
.agenda-result {
    width:100%;
    text-align:left;
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:.75rem;
    padding:.75rem;
    box-shadow:var(--shadow);
    cursor:pointer
}
.agenda-result:hover {
    border-color:var(--primary)
}
.agenda-result-title {
    font-weight:700
}
.agenda-result-meta {
    color:var(--text-secondary);
    font-size:.9rem;
    margin-top:.25rem
}
.agenda-event,.agenda-result {
    position:relative
}
.agenda-event:has(>.agenda-event-delete),.agenda-result:has(>.agenda-event-delete) {
    padding-right:2rem
}
.agenda-event-delete {
    position:absolute;
    top:2px;
    right:2px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:24px;
    height:24px;
    padding:0;
    border:0;
    border-radius:.35rem;
    background:transparent;
    color:var(--danger,#dc2626);
    font:inherit;
    font-size:1.2rem;
    line-height:1;
    cursor:pointer
}
.agenda-event-delete:hover {
    background:#fee2e2
}
.agenda-event-delete:focus-visible {
    outline:2px solid var(--danger,#dc2626);
    outline-offset:-2px
}
@media(max-width:768px),(pointer:coarse) {
    .agenda-event-delete {
        width:44px;
        height:44px
    }
    .agenda-event:has(>.agenda-event-delete),.agenda-result:has(>.agenda-event-delete) {
        padding-right:50px;
        min-height:52px
    }
}
.agenda-prospect-list {
    display:flex;
    flex-wrap:wrap;
    gap:.35rem;
    margin-top:.35rem
}
.agenda-prospect-pill {
    background:#eef2ff;
    color:#1e40af;
    border-radius:999px;
    padding:.2rem .55rem;
    font-size:.78rem;
    font-weight:700
}
.agenda-prospect-link {
    border:0;
    border-radius:.35rem;
    background:#eef2ff;
    color:#1e40af;
    padding:.2rem .4rem;
    font:inherit;
    font-size:.78rem;
    text-align:left;
    text-decoration:underline;
    text-underline-offset:2px;
    cursor:pointer;
    overflow-wrap:anywhere
}
.agenda-prospect-link:hover {
    background:#dbeafe
}
.agenda-prospect-link:focus-visible,.agenda-event-open:focus-visible {
    outline:2px solid var(--primary);
    outline-offset:2px
}
.agenda-prospect-pill .agenda-prospect-link {
    background:transparent;
    padding:0
}
.agenda-prospect-list-compact {
    gap:.2rem
}
@media(max-width:768px),(pointer:coarse) {
    .agenda-prospect-link,.agenda-event-open,.agenda-prospect-pill>button {
        min-height:44px
    }
    .agenda-prospect-pill {
        display:inline-flex;
        align-items:center
    }
}
.agenda-email-warning {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    padding:.85rem 1rem;
    margin-bottom:1rem;
    border:1px solid #f59e0b;
    border-radius:.85rem;
    background:#fffbeb;
    color:#92400e
}
.agenda-email-warning div {
    display:grid;
    gap:.2rem
}
.agenda-email-warning span {
    font-size:.9rem
}
.agenda-account-short {
    font-weight:700
}
.agenda-account-picker {
    margin:1rem 0;
    padding:1rem;
    border:1px solid var(--border);
    border-radius:.85rem
}
.agenda-account-picker legend {
    padding:0 .35rem;
    font-weight:800
}
.agenda-account-picker>p {
    margin:0 0 .75rem;
    color:var(--text-secondary);
    font-size:.9rem
}
.agenda-account-option {
    display:flex;
    align-items:center;
    gap:.65rem;
    min-height:44px;
    padding:.55rem .65rem;
    border-radius:.65rem;
    background:var(--background);
    cursor:pointer
}
.agenda-account-option+.agenda-account-option {
    margin-top:.4rem
}
.agenda-account-option input {
    width:1.1rem;
    height:1.1rem
}
.agenda-account-option span {
    display:grid
}
.agenda-account-option small {
    color:var(--text-secondary)
}
.agenda-account-list {
    display:flex;
    flex-wrap:wrap;
    gap:.35rem;
    margin-top:.65rem
}
.agenda-account-pill {
    background:#ecfeff;
    color:#155e75;
    border-radius:999px;
    padding:.25rem .6rem;
    font-size:.8rem;
    font-weight:700
}
.agenda-readonly {
    display:grid;
    gap:1rem
}
.agenda-readonly-notice {
    padding:.75rem;
    border-radius:.75rem;
    background:#eff6ff;
    color:#1e40af;
    font-weight:700
}
.agenda-readonly-note {
    padding:.75rem;
    border:1px solid var(--border);
    border-radius:.75rem;
    line-height:1.5
}
@media(max-width:768px) {
    .agenda-grid {
        grid-template-columns:1fr
    }
    .agenda-head,.agenda-day-spacer {
        display:none
    }
    .agenda-day {
        min-height:auto
    }
    .agenda-today {
        padding:.85rem
    }
    .agenda-today-head .btn {
        width:100%
    }
    .agenda-email-warning {
        align-items:stretch;
        flex-direction:column
    }
    .agenda-email-warning .btn {
        width:100%
    }
}
/* Les réglages restent accessibles sans occuper la première vue du calendrier. */
#view-agenda .agenda-view-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: .5rem;
    margin-bottom: .75rem;
}
#view-agenda .agenda-view-header h1 { margin: 0; }
#view-agenda .agenda-view-header > .btn,
#view-agenda .agenda-tools > .btn,
.agenda-toolbar .btn,
.agenda-today-head .btn,
.agenda-email-warning .btn,
.agenda-load-status .btn { min-height: 44px; }
.agenda-tools { min-width: 0; }
.agenda-tools-menu {
    position: fixed;
    z-index: 2000;
    display: grid;
    gap: .25rem;
    width: min(288px, calc(100vw - 16px));
    padding: .4rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 1px solid var(--border);
    border-radius: .75rem;
    background: var(--surface);
    box-shadow: var(--shadow-lg);
    box-sizing: border-box;
}
.agenda-tools-menu[hidden],
.agenda-tools-menu [hidden],
.agenda-load-status[hidden] { display: none; }
.agenda-tools-menu [role="menuitem"] {
    min-height: 44px;
    width: 100%;
    padding: .6rem .75rem;
    border: 0;
    border-radius: .4rem;
    background: transparent;
    color: var(--text);
    font: inherit;
    text-align: left;
    cursor: pointer;
}
.agenda-tools-menu [role="menuitem"]:hover { background: var(--background); }
.agenda-tools-menu [role="menuitem"]:focus-visible { outline: 2px solid var(--primary); outline-offset: -2px; background: var(--background); }
.agenda-month-navigation {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    gap: .5rem;
    align-items: center;
    min-width: 0;
}
#agenda-title { min-width: 0; text-align: center; overflow-wrap: normal; }
.agenda-load-status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .75rem;
    color: var(--text-secondary);
    font-size: .9rem;
}
.agenda-email-warning {
    flex-direction: row;
    align-items: center;
    gap: .5rem;
    padding: .3rem .65rem;
    margin-bottom: .75rem;
}
.agenda-email-warning .btn { flex-shrink: 0; width: auto; }
.agenda-today { padding: .75rem; box-shadow: var(--shadow); }
.agenda-today-head {
    flex-wrap: nowrap;
    align-items: center;
    gap: .5rem;
    margin-bottom: .5rem;
}
.agenda-today-head .btn { flex-shrink: 0; width: auto; }
.agenda-today-title { margin: 0 0 .15rem; font-size: 1.15rem; font-weight: 800; }
.agenda-today-date { font-size: .8rem; font-weight: 600; }
@media (max-width: 768px) {
    #view-agenda .agenda-view-header { margin-bottom: .6rem; padding: .4rem .5rem; }
    #view-agenda .agenda-view-header h1 { font-size: 1.35rem; }
    #view-agenda .agenda-view-header > .btn,
    #view-agenda .agenda-tools > .btn { padding: .5rem .65rem; font-size: .85rem; white-space: nowrap; }
    .agenda-toolbar {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: .4rem;
        margin-bottom: .6rem;
    }
    .agenda-month-navigation { gap: .25rem; }
    #agenda-title { font-size: .85rem; }
    .agenda-search { margin-bottom: .65rem; }
    .agenda-search .form-input { min-height: 44px; }
    .agenda-email-warning { margin-bottom: .6rem; }
    .agenda-email-warning span { font-size: .8rem; }
    .agenda-today { margin-bottom: .65rem; padding: .65rem; }
    .agenda-today-title { font-size: 1rem; }
    .agenda-today-head .btn { padding: .4rem .55rem; font-size: .78rem; }
    .agenda-today-empty { font-size: .85rem; font-weight: 500; }
    .agenda-past-toggle { margin: .4rem 0 .65rem; }
    .agenda-past-toggle .btn { min-height: 44px; }
}
@media (max-width: 359px) {
    #view-agenda .agenda-view-header { grid-template-columns: 1fr auto; }
    #view-agenda .agenda-view-header h1 { grid-column: 1 / -1; }
    .agenda-toolbar { grid-template-columns: 1fr; }
    .agenda-toolbar > .btn { justify-self: end; }
}
