:root {
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    color:#172033;
    background:#f6f7fb;
    --ink:#172033;
    --muted:#6f7787;
    --line:#e8ebf1;
    --surface:#fff;
    --surface-soft:#f9fafc;
    --primary:#25335f;
    --primary-strong:#192443;
    --danger:#c63b4a;
    --shadow:0 12px 34px rgba(28,39,66,.08);
    --radius:18px;
    --radius-sm:11px
}
* {
    box-sizing:border-box
}
html {
    background:#f6f7fb
}
body {
    margin:0;
    background:linear-gradient(180deg,#f8f9fc 0,#f5f6fa 260px,#f6f7fb 100%);
    min-height:100vh
}
a {
    color:var(--primary);
    text-decoration:none
}
button,input,select,textarea {
    font:inherit
}
button,a {
    -webkit-tap-highlight-color:transparent
}
button {
    border:0;
    cursor:pointer
}
.topbar {
    height:68px;
    background:rgba(255,255,255,.86);
    backdrop-filter:blur(18px);
    border-bottom:1px solid rgba(226,230,238,.9);
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 max(20px,env(safe-area-inset-left));
    position:sticky;
    top:0;
    z-index:900
}
.brand {
    display:flex;
    align-items:center;
    gap:11px;
    color:var(--ink)
}
.brand-mark {
    width:38px;
    height:38px;
    border-radius:11px;
    background:linear-gradient(145deg,#2d3e73,#1b2749);
    color:#fff;
    display:grid;
    place-items:center;
    font-size:13px;
    font-weight:800;
    box-shadow:0 6px 16px rgba(37,51,95,.24)
}
.brand-copy {
    display:flex;
    flex-direction:column;
    line-height:1.05
}
.brand-copy strong {
    font-size:16px;
    letter-spacing:-.01em
}
.brand-copy small {
    margin-top:4px;
    color:var(--muted);
    font-size:11px
}
.topbar-nav {
    display:flex;
    align-items:center;
    gap:8px
}
.topbar-link,.quiet-link {
    padding:9px 12px;
    border-radius:10px;
    color:#4c566b;
    font-size:13px;
    font-weight:650
}
.topbar-link:hover,.quiet-link:hover {
    background:#f1f3f7;
    color:var(--ink)
}
.user-chip {
    padding:8px 11px;
    background:#f2f4f8;
    border:1px solid #e8ebf1;
    border-radius:999px;
    font-size:12px;
    font-weight:650;
    color:#4c566b
}
.topbar-icon {
    position:relative;
    width:38px;
    height:38px;
    border-radius:11px;
    background:transparent;
    color:#4b5568;
    display:grid;
    place-items:center
}
.topbar-icon:hover {
    background:#f1f3f7;
    color:var(--primary)
}
.topbar-icon svg {
    width:19px;
    height:19px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round
}
.badge {
    position:absolute;
    top:3px;
    right:3px;
    min-width:17px;
    height:17px;
    padding:0 4px;
    border:2px solid #fff;
    background:#e14352;
    color:#fff;
    border-radius:999px;
    font-size:9px;
    font-weight:800;
    display:grid;
    place-items:center
}
.app-main {
    max-width:1600px;
    margin:0 auto;
    padding:22px 22px 40px
}
.calendar-shell {
    display:flex;
    flex-direction:column;
    gap:12px
}
.calendar-commandbar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px
}
.command-primary,.command-secondary {
    display:flex;
    align-items:center;
    gap:12px
}
.primary-action {
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:10px 15px;
    border-radius:11px;
    background:var(--primary);
    color:#fff;
    font-weight:700;
    box-shadow:0 7px 18px rgba(37,51,95,.18)
}
.primary-action:hover {
    background:var(--primary-strong)
}
.primary-action span {
    font-size:18px;
    line-height:1
}
.calendar-context {
    display:flex;
    flex-direction:column;
    line-height:1.15
}
.calendar-context strong {
    font-size:15px
}
.calendar-context span {
    font-size:11px;
    color:var(--muted);
    margin-top:3px
}
.quiet-action {
    padding:9px 12px;
    border-radius:10px;
    background:#eef1f6;
    color:#4e5870;
    font-size:12px;
    font-weight:700
}
.quiet-action:hover {
    background:#e6eaf1
}
.quiet-action:disabled {
    opacity:.55;
    cursor:default
}
.legend-strip {
    display:flex;
    align-items:center;
    gap:12px;
    min-height:42px;
    padding:7px 10px;
    background:rgba(255,255,255,.72);
    border:1px solid var(--line);
    border-radius:13px;
    overflow-x:auto;
    scrollbar-width:none
}
.legend-strip::-webkit-scrollbar {
    display:none
}
.legend-group {
    display:flex;
    align-items:center;
    gap:7px;
    flex:0 0 auto
}
.legend-label {
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:#8a92a1;
    margin-right:2px
}
.legend-chip {
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:5px 8px;
    border-radius:999px;
    background:#fff;
    border:1px solid #eceef3;
    font-size:11px;
    font-weight:650;
    color:#596275;
    white-space:nowrap
}
.legend-chip i {
    width:8px;
    height:8px;
    border-radius:50%;
    background:var(--chip-color);
    box-shadow:0 0 0 2px color-mix(in srgb,var(--chip-color) 16%,transparent)
}
.legend-divider {
    width:1px;
    height:22px;
    background:#e5e8ef;
    flex:0 0 auto
}
.calendar-card,.card {
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    padding:16px;
    overflow:hidden
}
.mobile-view-switcher {
    display:none
}
.fc {
    --fc-border-color:#edf0f4;
    --fc-page-bg-color:#fff;
    --fc-neutral-bg-color:#f8f9fb;
    --fc-today-bg-color:#f6f8ff;
    --fc-button-bg-color:#fff;
    --fc-button-border-color:#e1e5ec;
    --fc-button-text-color:#4e5870;
    --fc-button-hover-bg-color:#f2f4f8;
    --fc-button-hover-border-color:#dce1e9;
    --fc-button-active-bg-color:#25335f;
    --fc-button-active-border-color:#25335f;
    --fc-event-border-color:transparent;
    font-size:13px
}
.fc .fc-toolbar {
    margin-bottom:15px
}
.fc .fc-toolbar-title {
    font-size:20px;
    font-weight:760;
    letter-spacing:-.025em;
    color:#1c2639
}
.fc .fc-button {
    border-radius:9px!important;
    padding:.48em .78em;
    font-weight:680;
    box-shadow:none!important;
    text-transform:none
}
.fc .fc-button-group {
    gap:4px
}
.fc .fc-button-group>.fc-button {
    border-radius:9px!important
}
.fc .fc-col-header-cell {
    background:#fafbfc;
    border-color:#edf0f4
}
.fc .fc-col-header-cell-cushion {
    padding:10px 6px;
    color:#7a8292;
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.08em
}
.fc .fc-daygrid-day {
    transition:background-color .15s ease
}
.fc .fc-daygrid-day:hover {
    background:#fbfcfe
}
.fc .fc-daygrid-day-number {
    margin:5px 6px 0 0;
    width:28px;
    height:28px;
    display:grid;
    place-items:center;
    border-radius:9px;
    color:#596275;
    font-size:11px;
    font-weight:750
}
.fc .fc-day-today .fc-daygrid-day-number {
    background:var(--primary);
    color:#fff
}
.fc .fc-day-other .fc-daygrid-day-number {
    color:#b0b6c2
}
.fc .fc-daygrid-day-frame {
    min-height:108px
}
.fc .fc-daygrid-event {
    border:0!important;
    border-radius:7px!important;
    margin:2px 4px!important;
    padding:2px 5px!important;
    box-shadow:0 1px 3px rgba(20,30,55,.12);
    overflow:hidden
}
.fc .fc-timegrid-event {
    border:0!important;
    border-radius:8px!important;
    box-shadow:0 2px 7px rgba(20,30,55,.14)
}
.fc .fc-event-main {
    padding:0!important
}
.event-content {
    display:flex;
    align-items:center;
    gap:5px;
    min-width:0;
    width:100%;
    line-height:1.45
}
.event-time {
    font-size:10px;
    font-weight:800;
    opacity:.78;
    flex:0 0 auto
}
.category-dot {
    width:7px;
    height:7px;
    border-radius:50%;
    display:inline-block;
    flex:0 0 auto;
    box-shadow:0 0 0 1px rgba(255,255,255,.7)
}
.category-marker {
    width:16px;
    height:16px;
    border-radius:5px;
    display:grid;
    place-items:center;
    font-size:9px;
    font-weight:800;
    flex:0 0 auto;
    background:rgba(255,255,255,.2)
}
.event-title-text {
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:11px;
    font-weight:720
}
.fc .fc-list {
    border:0
}
.fc .fc-list-day-cushion {
    background:#f7f8fb
}
.fc .fc-list-day-text,.fc .fc-list-day-side-text {
    font-size:12px;
    color:#4e5870
}
.fc .fc-list-event:hover td {
    background:#f8f9fc
}
.fc .fc-timegrid-slot-label-cushion {
    color:#9299a6;
    font-size:10px
}
.fc .fc-timegrid-axis-cushion {
    font-size:10px;
    color:#9299a6
}
.fc .fc-scrollgrid {
    border-radius:12px;
    overflow:hidden;
    border-color:#edf0f4
}
.notif-panel {
    position:fixed;
    right:18px;
    top:76px;
    width:min(390px,calc(100vw - 36px));
    max-height:72vh;
    overflow:auto;
    background:#fff;
    border:1px solid #e6e9ef;
    border-radius:16px;
    box-shadow:0 20px 50px rgba(21,30,50,.18);
    z-index:950;
    padding:14px
}
.panel-head {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    border-bottom:1px solid #eef0f4;
    padding:2px 2px 10px
}
.panel-head>div {
    display:flex;
    flex-direction:column
}
.panel-head small {
    font-size:10px;
    color:var(--muted);
    margin-top:2px
}
.text-button {
    background:transparent;
    color:var(--primary);
    padding:5px;
    font-size:11px;
    font-weight:700
}
.notif-item {
    padding:11px 3px;
    border-bottom:1px solid #f0f2f5
}
.notif-item small {
    color:var(--muted)
}
.modal-overlay {
    display:none;
    position:fixed;
    inset:0;
    background:rgba(17,24,39,.45);
    backdrop-filter:blur(3px);
    z-index:1000;
    align-items:center;
    justify-content:center;
    padding:18px
}
.modal-overlay.open {
    display:flex
}
.event-modal {
    background:#fff;
    width:min(680px,100%);
    max-height:min(92vh,850px);
    overflow:hidden;
    border-radius:20px;
    box-shadow:0 28px 70px rgba(18,27,48,.25);
    display:flex;
    flex-direction:column
}
.modal-head {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    padding:20px 22px 14px;
    border-bottom:1px solid #eef0f4
}
.modal-kicker {
    display:block;
    color:#8b93a2;
    font-size:9px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.12em;
    margin-bottom:4px
}
.event-modal h2 {
    margin:0;
    font-size:20px;
    letter-spacing:-.02em
}
.modal-x {
    width:34px;
    height:34px;
    border-radius:10px;
    background:#f2f4f7;
    color:#657084;
    font-size:22px;
    line-height:1
}
.modal-x:hover {
    background:#e9edf3;
    color:#28334a
}
.modal-body {
    padding:16px 22px 20px;
    overflow:auto
}
.field-block {
    margin-bottom:10px
}
.event-modal label {
    display:block;
    font-weight:700;
    font-size:11px;
    color:#596275;
    margin:0 0 5px
}
.event-modal input:not([type=checkbox]),.event-modal select,.event-modal textarea,.card input,.card select {
    width:100%;
    padding:10px 11px;
    border:1px solid #dfe3ea;
    border-radius:10px;
    background:#fff;
    color:#253044;
    outline:none;
    transition:border-color .15s,box-shadow .15s
}
.event-modal input:focus,.event-modal select:focus,.event-modal textarea:focus,.card input:focus,.card select:focus {
    border-color:#9aa7cc;
    box-shadow:0 0 0 3px rgba(72,91,150,.10)
}
.event-modal textarea {
    min-height:95px;
    resize:vertical
}
.grid2 {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 12px
}
.span2 {
    grid-column:1/-1
}
.check {
    padding:4px 0 10px
}
.check label {
    display:inline-flex;
    align-items:center;
    gap:7px;
    font-weight:600
}
.check input {
    accent-color:var(--primary)
}
.inline-field {
    display:flex;
    align-items:center;
    gap:8px
}
.inline-field input {
    max-width:90px
}
.inline-field span {
    font-size:11px;
    color:var(--muted)
}
.modal-actions {
    display:flex;
    justify-content:space-between;
    gap:10px;
    padding:14px 22px calc(14px + env(safe-area-inset-bottom));
    border-top:1px solid #eef0f4;
    background:#fafbfc
}
.modal-actions-right {
    display:flex;
    gap:8px;
    margin-left:auto
}
.modal-actions button {
    padding:9px 13px;
    border-radius:10px;
    background:var(--primary);
    color:#fff;
    font-weight:700
}
.modal-actions .secondary {
    background:#edf0f5;
    color:#4d586d
}
.modal-actions .danger {
    background:#fff0f1;
    color:#b52c3b
}
.compact {
    margin:0 0 12px
}
.notice {
    background:#eef7f2;
    color:#276049;
    padding:9px 11px;
    border-radius:10px;
    font-size:11px
}
.event-modal [disabled] {
    background:#f8f9fb;
    color:#4f596b;
    opacity:1;
    cursor:default;
    border-color:#eceff3
}
.event-modal textarea[disabled] {
    resize:none
}
.login-wrap,.narrow {
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:20px
}
.login-card,.narrow .card {
    width:min(430px,100%)
}
.card label {
    display:block;
    font-weight:650;
    margin:12px 0 5px
}
.card button {
    margin-top:15px;
    width:100%
}
.error {
    color:#b91c1c
}
.admin-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px
}
.table-wrap {
    overflow:auto
}
table {
    border-collapse:collapse;
    width:100%
}
th,td {
    text-align:left;
    padding:9px;
    border-bottom:1px solid #eee;
    white-space:nowrap
}
.color-swatch {
    display:inline-block;
    width:14px;
    height:14px;
    border-radius:50%;
    vertical-align:-2px;
    margin-right:5px
}
@media(max-width:760px) {
    body {
        background:#f7f8fb
    }
    .topbar {
        height:58px;
        padding:0 10px 0 max(10px,env(safe-area-inset-left))
    }
    .brand {
        gap:8px
    }
    .brand-mark {
        width:32px;
        height:32px;
        border-radius:9px;
        font-size:11px
    }
    .brand-copy strong {
        font-size:14px
    }
    .brand-copy small,.topbar-link,.user-chip {
        display:none
    }
    .topbar-nav {
        gap:3px
    }
    .topbar-icon {
        width:36px;
        height:36px
    }
    .app-main {
        padding:10px 7px 24px
    }
    .calendar-shell {
        gap:8px
    }
    .calendar-commandbar {
        padding:2px 2px 0
    }
    .calendar-context {
        display:none
    }
    .command-primary,.command-secondary {
        gap:7px
    }
    .primary-action {
        padding:9px 12px;
        border-radius:10px;
        font-size:12px
    }
    .quiet-action {
        padding:8px 9px;
        font-size:10px
    }
    .quiet-link {
        font-size:10px;
        padding:7px
    }
    .legend-strip {
        min-height:38px;
        border-radius:11px;
        padding:5px 7px;
        gap:8px
    }
    .legend-chip {
        padding:4px 7px;
        font-size:10px
    }
    .legend-label {
        font-size:8px
    }
    .legend-divider {
        height:18px
    }
    .mobile-view-switcher {
        display:grid;
        grid-template-columns:repeat(4,1fr);
        gap:3px;
        padding:3px;
        background:#eceff4;
        border-radius:11px
    }
    .mobile-view-switcher button {
        padding:7px 4px;
        border-radius:8px;
        background:transparent;
        color:#687184;
        font-size:10px;
        font-weight:750
    }
    .mobile-view-switcher button.active {
        background:#fff;
        color:var(--primary);
        box-shadow:0 1px 4px rgba(28,39,66,.10)
    }
    .calendar-card {
        padding:8px 6px;
        border-radius:14px;
        box-shadow:0 5px 18px rgba(28,39,66,.06)
    }
    .fc .fc-toolbar {
        margin-bottom:8px;
        padding:0 2px
    }
    .fc .fc-toolbar-title {
        font-size:15px
    }
    .fc .fc-button {
        padding:.38em .55em;
        font-size:10px;
        border-radius:8px!important
    }
    .fc .fc-daygrid-day-frame {
        min-height:67px
    }
    .fc .fc-col-header-cell-cushion {
        padding:7px 2px;
        font-size:8px
    }
    .fc .fc-daygrid-day-number {
        width:23px;
        height:23px;
        margin:3px 3px 0 0;
        font-size:9px;
        border-radius:7px
    }
    .fc .fc-daygrid-event {
        margin:1px 2px!important;
        padding:1px 3px!important;
        border-radius:5px!important
    }
    .event-content {
        gap:3px
    }
    .event-time {
        display:none
    }
    .category-dot {
        width:5px;
        height:5px
    }
    .category-marker {
        width:13px;
        height:13px;
        border-radius:4px;
        font-size:7px
    }
    .event-title-text {
        font-size:8.5px
    }
    .fc .fc-daygrid-more-link {
        font-size:8px;
        font-weight:750;
        color:var(--primary)
    }
    .fc .fc-list-event-time,.fc .fc-list-event-title {
        font-size:11px
    }
    .fc .fc-timegrid-slot-label-cushion {
        font-size:8px
    }
    .notif-panel {
        top:64px;
        right:8px;
        width:calc(100vw - 16px);
        max-height:75vh;
        border-radius:14px
    }
    .modal-overlay {
        align-items:flex-end;
        padding:0
    }
    .event-modal {
        width:100%;
        max-height:94vh;
        border-radius:20px 20px 0 0
    }
    .modal-head {
        padding:16px 15px 12px
    }
    .modal-body {
        padding:13px 15px 16px
    }
    .modal-actions {
        padding:10px 12px calc(10px + env(safe-area-inset-bottom));
        position:sticky;
        bottom:0
    }
    .modal-actions-right {
        gap:6px
    }
    .modal-actions button {
        padding:9px 10px;
        font-size:11px
    }
    .grid2,.admin-grid {
        grid-template-columns:1fr
    }
    .span2 {
        grid-column:auto
    }
    .event-modal h2 {
        font-size:18px
    }
    .field-block {
        margin-bottom:8px
    }
    .event-modal input:not([type=checkbox]),.event-modal select,.event-modal textarea {
        padding:10px;
        font-size:14px
    }
    .event-modal label {
        font-size:10px
    }
    .topbar-logout {
        display:grid
    }
}
@media(min-width:761px) and (max-width:1100px) {
    .app-main {
        padding:18px 14px
    }
    .calendar-context span {
        display:none
    }
    .legend-strip {
        overflow-x:auto
    }
    .fc .fc-daygrid-day-frame {
        min-height:92px
    }
}
@media(prefers-reduced-motion:reduce) {
    *,*::before,*::after {
        scroll-behavior:auto!important;
        transition:none!important
    }
}
/* Compatibilité des écrans d'administration utilisant la même feuille de style */
body:not(.agenda-page)>main {
    max-width:1450px;
    margin:18px auto;
    padding:0 14px
}
.topbar>strong {
    font-size:15px;
    color:var(--ink)
}
.topbar>nav {
    display:flex;
    align-items:center;
    gap:8px
}
.topbar>nav a {
    padding:8px 10px;
    border-radius:9px;
    color:#586276;
    font-size:12px;
    font-weight:700
}
.topbar>nav a:hover {
    background:#f1f3f7;
    color:var(--primary)
}
.card button,dialog button {
    background:var(--primary);
    color:#fff;
    padding:9px 12px;
    border-radius:9px;
    font-weight:700
}
.card button.secondary,dialog button.secondary {
    background:#edf0f5;
    color:#4d586d
}
.card button.danger,dialog button.danger {
    background:#fff0f1;
    color:#b52c3b
}
.card input[type=color] {
    height:42px;
    padding:4px
}
.card h2 {
    font-size:17px;
    letter-spacing:-.015em;
    margin-top:0
}
dialog {
    border:0;
    border-radius:16px;
    box-shadow:0 22px 60px rgba(18,27,48,.22);
    max-width:min(520px,calc(100vw - 24px));
    padding:18px
}
dialog::backdrop {
    background:rgba(17,24,39,.42);
    backdrop-filter:blur(2px)
}
@media(max-width:760px) {
    body:not(.agenda-page)>main {
        margin:10px auto;
        padding:0 7px
    }
    .topbar>nav {
        gap:2px
    }
    .topbar>nav a {
        padding:7px 6px;
        font-size:10px
    }
    .topbar>strong {
        font-size:13px
    }
    .card {
        padding:12px;
        border-radius:14px
    }
    .table-wrap {
        font-size:11px
    }
    th,td {
        padding:7px
    }
}
/* V2.8 - menu mobile et administration modernisée */
.desktop-nav {
    display:flex;
    align-items:center;
    gap:8px
}
.mobile-menu {
    display:none;
    position:relative
}
.mobile-menu summary {
    list-style:none;
    width:38px;
    height:38px;
    border-radius:11px;
    display:grid;
    place-content:center;
    gap:4px;
    cursor:pointer
}
.mobile-menu summary::-webkit-details-marker {
    display:none
}
.mobile-menu summary span {
    display:block;
    width:18px;
    height:2px;
    background:#4d586d;
    border-radius:2px
}
.mobile-menu[open] summary {
    background:#eef1f6
}
.mobile-menu-panel {
    position:absolute;
    right:0;
    top:46px;
    width:220px;
    padding:8px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:0 18px 45px rgba(20,30,55,.18);
    z-index:1000
}
.mobile-menu-panel a {
    display:flex;
    padding:11px 12px;
    border-radius:9px;
    color:#3f4a60;
    font-size:13px;
    font-weight:700
}
.mobile-menu-panel a:hover {
    background:#f4f6f9
}
.mobile-menu-user {
    padding:9px 12px 11px;
    border-bottom:1px solid #edf0f4;
    margin-bottom:4px;
    display:flex;
    flex-direction:column
}
.mobile-menu-user strong {
    font-size:13px
}
.mobile-menu-user small {
    color:var(--muted);
    font-size:10px;
    margin-top:2px
}
.admin-page {
    background:linear-gradient(180deg,#f8f9fc 0,#f4f6fa 360px,#f6f7fb 100%)
}
.admin-main {
    max-width:1500px;
    margin:0 auto;
    padding:26px 22px 48px
}
.admin-heading {
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:24px;
    margin-bottom:18px
}
.admin-heading h1 {
    margin:2px 0 5px;
    font-size:28px;
    letter-spacing:-.035em;
    color:#1b263b
}
.admin-heading p {
    margin:0;
    color:var(--muted);
    font-size:13px
}
.admin-eyebrow,.card-kicker {
    display:block;
    font-size:9px;
    font-weight:850;
    text-transform:uppercase;
    letter-spacing:.12em;
    color:#8a92a1
}
.admin-stats {
    display:flex;
    gap:8px;
    flex-wrap:wrap
}
.stat-card {
    min-width:92px;
    padding:10px 13px;
    background:rgba(255,255,255,.8);
    border:1px solid var(--line);
    border-radius:13px;
    display:flex;
    flex-direction:column;
    box-shadow:0 5px 16px rgba(28,39,66,.04)
}
.stat-card strong {
    font-size:18px;
    line-height:1;
    color:#243153
}
.stat-card span {
    font-size:9px;
    color:var(--muted);
    margin-top:5px;
    font-weight:750;
    text-transform:uppercase;
    letter-spacing:.05em
}
.admin-notice,.admin-error {
    margin:0 0 16px;
    border:1px solid #dcefe4
}
.admin-error {
    background:#fff0f1;
    color:#a8323e;
    padding:10px 12px;
    border-radius:10px;
    border-color:#f3d8db
}
.admin-create-grid {
    align-items:start
}
.admin-card {
    padding:18px
}
.admin-section {
    margin-top:16px
}
.card-heading {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin-bottom:14px
}
.card-heading h2 {
    margin:3px 0 0;
    font-size:18px;
    letter-spacing:-.02em
}
.count-pill {
    min-width:29px;
    height:29px;
    padding:0 9px;
    border-radius:999px;
    background:#eef1f6;
    color:#4e5870;
    display:grid;
    place-items:center;
    font-size:11px;
    font-weight:800
}
.admin-form label,.admin-dialog label {
    display:block;
    font-size:10px;
    font-weight:750;
    color:#687184;
    margin:0 0 5px
}
.form-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:11px 12px
}
.form-span {
    grid-column:1/-1
}
.permission-box {
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    padding:10px 11px;
    margin-top:11px;
    background:#f7f8fb;
    border:1px solid #eceff4;
    border-radius:11px
}
.permission-box label {
    display:inline-flex;
    align-items:center;
    gap:6px;
    margin:0;
    font-size:10px;
    font-weight:650
}
.permission-box input {
    accent-color:var(--primary)
}
.form-actions,.dialog-actions {
    display:flex;
    justify-content:flex-end;
    gap:8px;
    margin-top:14px
}
.admin-card button {
    width:auto;
    margin:0
}
.admin-table {
    font-size:12px
}
.admin-table thead th {
    padding:9px 11px;
    background:#fafbfc;
    color:#8a92a1;
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.07em;
    font-weight:850;
    border-bottom:1px solid #e9edf3
}
.admin-table td {
    padding:11px;
    border-bottom:1px solid #eef1f5;
    color:#4b5568;
    vertical-align:middle
}
.admin-table tbody tr:hover {
    background:#fbfcfe
}
.table-primary {
    display:flex;
    flex-direction:column;
    min-width:0
}
.table-primary strong {
    color:#263249
}
.table-primary small {
    margin-top:3px;
    color:#9299a6;
    font-size:10px;
    max-width:420px;
    overflow:hidden;
    text-overflow:ellipsis
}
.color-chip,.icon-chip,.status-badge {
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:5px 8px;
    border-radius:999px;
    font-size:10px;
    font-weight:750;
    white-space:nowrap
}
.color-chip {
    background:#f7f8fb;
    border:1px solid #eceff3
}
.color-chip i {
    width:10px;
    height:10px;
    border-radius:50%
}
.icon-chip {
    background:#f0f3f8;
    color:#546079
}
.status-badge.success {
    background:#eaf7f0;
    color:#26714d
}
.status-badge.muted {
    background:#f1f2f5;
    color:#8a92a1
}
.status-badge.neutral {
    background:#eef1f6;
    color:#586276
}
.status-badge.danger-badge {
    background:#fff0f1;
    color:#b52c3b
}
.rights-list {
    display:flex;
    gap:5px;
    flex-wrap:wrap
}
.rights-list span {
    padding:4px 6px;
    border-radius:7px;
    background:#f3f5f8;
    font-size:9px;
    color:#667085
}
.row-actions {
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:wrap
}
.row-actions form {
    margin:0
}
.row-actions button,.compact-btn {
    padding:7px 9px!important;
    font-size:10px
}
.admin-dialog {
    width:min(560px,calc(100vw - 24px));
    padding:18px!important
}
.admin-dialog form {
    padding:0!important
}
.dialog-head {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    margin-bottom:15px
}
.dialog-head h2 {
    margin:3px 0 0
}
.dialog-close {
    width:32px!important;
    height:32px;
    padding:0!important;
    border-radius:9px!important;
    background:#eef1f6!important;
    color:#596275!important;
    font-size:20px!important
}
.admin-lower-grid {
    margin-top:16px;
    align-items:start
}
.admin-lower-grid .admin-section {
    margin-top:0
}
.compact-table {
    font-size:11px
}
.empty-state {
    text-align:center!important;
    color:#9aa1ad!important;
    padding:26px!important
}
.icon-action {
    width:30px!important;
    height:30px;
    padding:0!important;
    border-radius:9px!important;
    font-size:16px!important
}
.admin-help {
    font-size:11px;
    margin:-4px 0 14px
}
.diagnostic-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-bottom:12px
}
.diagnostic-grid>div {
    padding:11px;
    background:#f7f8fb;
    border:1px solid #eceff4;
    border-radius:10px;
    display:flex;
    flex-direction:column
}
.diagnostic-grid span {
    font-size:9px;
    text-transform:uppercase;
    color:#9299a6;
    font-weight:800;
    letter-spacing:.06em
}
.diagnostic-grid strong {
    font-size:12px;
    margin-top:3px
}
.push-response {
    white-space:pre-wrap;
    overflow-wrap:anywhere;
    background:#192238;
    color:#e7ecf6;
    padding:12px;
    border-radius:11px;
    font-size:10px;
    max-height:220px;
    overflow:auto
}
.ua-text {
    max-width:360px!important
}
@media(max-width:760px) {
    .desktop-nav {
        display:none
    }
    .mobile-menu {
        display:block
    }
    .topbar-nav {
        gap:2px
    }
    .admin-main {
        padding:14px 8px 32px
    }
    .admin-heading {
        align-items:flex-start;
        flex-direction:column;
        gap:12px
    }
    .admin-heading h1 {
        font-size:23px
    }
    .admin-stats {
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        width:100%
    }
    .stat-card {
        min-width:0
    }
    .admin-card {
        padding:13px
    }
    .admin-create-grid,.admin-lower-grid {
        grid-template-columns:1fr
    }
    .form-grid {
        grid-template-columns:1fr
    }
    .form-span {
        grid-column:auto
    }
    .card-heading h2 {
        font-size:16px
    }
    .admin-table {
        min-width:680px
    }
    .compact-table {
        min-width:560px
    }
    .admin-dialog {
        width:calc(100vw - 14px);
        max-height:92vh;
        overflow:auto;
        padding:15px!important
    }
    .permission-box {
        flex-direction:column
    }
    .diagnostic-grid {
        grid-template-columns:1fr
    }
    .mobile-menu-panel {
        right:-2px
    }
    .admin-topbar .brand-copy small {
        display:block
    }
    .admin-topbar .brand-copy strong {
        font-size:13px
    }
}
/* V3 */
.admin-toolbar-actions {
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin:0 0 16px
}
.search-input {
    min-width:220px
}
.inline-form {
    display:inline-flex;
    margin:0
}
.inline-check {
    white-space:nowrap
}
.participant-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    padding:9px;
    background:#f7f8fb;
    border:1px solid #eceff4;
    border-radius:10px
}
.participant-grid label {
    display:flex!important;
    align-items:center;
    gap:6px;
    margin:0!important
}
.participant-grid span:before {
    content:'';
    display:inline-block;
    width:8px;
    height:8px;
    border-radius:50%;
    background:var(--participant-color);
    margin-right:5px
}
.command-primary {
    flex-wrap:wrap
}
.command-primary select,.command-primary input {
    max-width:240px
}
.quiet-action {
    cursor:pointer
}
@media(max-width:760px) {
    .participant-grid {
        grid-template-columns:1fr
    }
    .search-input {
        min-width:0;
        width:100%
    }
    .command-primary select,.command-primary input {
        max-width:none;
        width:100%
    }
    .admin-toolbar-actions>* {
        flex:1 1 auto
    }
}
.participant-statuses {
    display:flex;
    gap:6px;
    flex-wrap:wrap;
    align-items:center;
    margin:6px 0
}
.participant-statuses>strong {
    width:100%;
    font-size:10px;
    color:#687184
}
.participant-statuses span {
    padding:5px 7px;
    border-radius:999px;
    background:#f1f3f7;
    font-size:10px;
    color:#556074
}
.remember-login {
    display:flex!important;
    align-items:center;
    gap:8px;
    margin:10px 0 14px!important;
    font-size:12px!important
}
.remember-login input {
    width:auto!important;
    margin:0
}
.icon-picker {
    display:grid;
    gap:10px
}
.icon-picker-tools {
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap
}
.icon-search {
    flex:1 1 220px
}
.icon-picker-style {
    display:inline-flex;
    align-items:center;
    min-height:38px;
    padding:0 12px;
    border:1px solid #e4e7ec;
    border-radius:10px;
    background:#f8f9fb;
    color:#556074;
    font-size:12px;
    font-weight:600
}
.icon-style-form {
    display:flex;
    align-items:center;
    gap:8px
}
.icon-style-form label {
    margin:0;
    font-size:12px;
    color:#687184;
    white-space:nowrap
}
.icon-style-form select {
    min-width:120px
}
.icon-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(46px,1fr));
    gap:7px;
    max-height:310px;
    overflow:auto;
    padding:3px
}
.icon-choice {
    width:46px!important;
    height:46px!important;
    padding:0!important;
    margin:0!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    background:#fff!important;
    color:#1f2937!important;
    border:1px solid #e4e7ec!important;
    border-radius:11px!important;
    font-size:23px!important
}
.icon-choice:hover,.icon-choice.selected {
    border-color:#405cf5!important;
    box-shadow:0 0 0 2px rgba(64,92,245,.13)!important;
    background:#f7f8ff!important;
    color:#3348d3!important
}
.icon-only {
    font-size:21px;
    min-width:38px;
    justify-content:center
}
.category-icon {
    display:inline-flex;
    align-items:center;
    font-size:13px;
    line-height:1;
    margin-right:2px
}
@media(max-width:760px) {
    .icon-grid {
        grid-template-columns:repeat(6,46px)
    }
    .icon-style-form {
        width:100%;
        justify-content:space-between
    }
}
}

.preference-group {
    margin:16px 0;
    padding:16px;
    border:1px solid #e6e9ef;
    border-radius:14px;
    background:#fff
}
.preference-row {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px
}
.preference-row p {
    margin:4px 0 0
}
.switch {
    position:relative;
    display:inline-flex;
    flex:0 0 auto;
    width:48px;
    height:28px;
    cursor:pointer
}
.switch input {
    position:absolute;
    opacity:0;
    pointer-events:none
}
.switch-slider {
    position:absolute;
    inset:0;
    border-radius:999px;
    background:#cbd1da;
    transition:.2s ease
}
.switch-slider:before {
    content:'';
    position:absolute;
    width:22px;
    height:22px;
    left:3px;
    top:3px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 1px 4px rgba(0,0,0,.2);
    transition:.2s ease
}
.switch input:checked + .switch-slider {
    background:#2563eb
}
.switch input:checked + .switch-slider:before {
    transform:translateX(20px)
}
.switch input:disabled + .switch-slider {
    opacity:.5;
    cursor:not-allowed
}
.ics-import-form {
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap
}
.ics-import-form input[type=file] {
    max-width:240px
}
