:root {
    --bg: #f4f7f8;
    --surface: #ffffff;
    --surface-soft: #eef4f5;
    --text: #182426;
    --muted: #6f7d80;
    --border: #dfe8ea;
    --brand: #146b72;
    --brand-dark: #0d5056;
    --brand-soft: #dff1f2;
    --accent: #e9a64d;
    --shadow: 0 18px 45px rgba(25, 53, 58, .08);
    --radius-lg: 24px;
    --radius-md: 16px;
    --radius-sm: 12px;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
    background: var(--bg);
    color: var(--text);
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
textarea,
select {
    font: inherit;
}

.app-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
}

.sidebar {
    min-height: 100vh;
    position: sticky;
    top: 0;
    align-self: start;
    display: flex;
    flex-direction: column;
    padding: 28px 20px;
    background: #0c3438;
    color: #ffffff;
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 42px;
    padding: 0 10px;
}

.brand-mark {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    font-weight: 800;
    font-size: 22px;
    background: linear-gradient(135deg, #1c8b94, #e9a64d);
    box-shadow: 0 10px 25px rgba(0, 0, 0, .15);
}

.brand-name {
    font-size: 21px;
    font-weight: 800;
    letter-spacing: -.02em;
}

.brand-subtitle {
    margin-top: 2px;
    font-size: 12px;
    color: rgba(255,255,255,.62);
}

.main-nav {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.nav-item {
    min-height: 46px;
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 11px 14px;
    border-radius: 13px;
    color: rgba(255,255,255,.72);
    font-weight: 600;
    transition: .18s ease;
}

.nav-item:hover {
    color: #fff;
    background: rgba(255,255,255,.08);
}

.nav-item.active {
    color: #fff;
    background: rgba(255,255,255,.12);
}

.nav-icon {
    width: 23px;
    text-align: center;
}

.sidebar-footer {
    margin-top: auto;
    padding-top: 35px;
}

.main-content {
    min-width: 0;
    padding: 0 38px 50px;
}

.topbar {
    min-height: 88px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.mobile-brand {
    display: none;
    font-weight: 800;
    font-size: 22px;
}

.topbar-actions {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 14px;
}

.icon-button {
    width: 44px;
    height: 44px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--surface);
    cursor: pointer;
}

.user-pill {
    display: flex;
    align-items: center;
    gap: 10px;
}

.avatar {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: var(--brand-soft);
    color: var(--brand-dark);
    font-weight: 800;
}

.avatar.small {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    font-size: 13px;
}

.user-info {
    display: flex;
    flex-direction: column;
    font-size: 14px;
}

.user-info span {
    color: var(--muted);
    font-size: 12px;
}

.hero {
    display: grid;
    grid-template-columns: 1.6fr .7fr;
    gap: 24px;
    padding: 42px;
    border-radius: 30px;
    background:
        radial-gradient(circle at 90% 20%, rgba(255,255,255,.18), transparent 25%),
        linear-gradient(135deg, #0f5960, #167b83);
    color: #fff;
    box-shadow: var(--shadow);
}

.eyebrow {
    display: inline-block;
    margin-bottom: 10px;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: rgba(255,255,255,.72);
}

.hero h1 {
    max-width: 760px;
    margin: 0;
    font-size: clamp(2rem, 4vw, 3.6rem);
    line-height: 1.04;
    letter-spacing: -.045em;
}

.hero p {
    max-width: 650px;
    margin: 20px 0 0;
    line-height: 1.7;
    color: rgba(255,255,255,.8);
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.button {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 18px;
    border-radius: 13px;
    font-weight: 700;
}

.button-primary {
    background: #fff;
    color: var(--brand-dark);
}

.button-secondary {
    border: 1px solid rgba(255,255,255,.25);
    color: #fff;
    background: rgba(255,255,255,.06);
}

.hero-card {
    align-self: end;
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 22px;
    border: 1px solid rgba(255,255,255,.17);
    border-radius: 20px;
    background: rgba(255,255,255,.10);
    backdrop-filter: blur(12px);
}

.hero-card-label {
    font-size: 12px;
    color: rgba(255,255,255,.65);
}

.hero-card span {
    font-size: 13px;
    color: rgba(255,255,255,.65);
}

.dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(300px, .7fr);
    gap: 24px;
    margin-top: 26px;
}

.panel {
    padding: 24px;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--surface);
    box-shadow: 0 8px 25px rgba(20, 48, 52, .035);
}

.panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 18px;
}

.panel-header.compact {
    margin-bottom: 14px;
}

.panel-header h2 {
    margin: 4px 0 0;
    font-size: 20px;
    letter-spacing: -.025em;
}

.panel-header a {
    color: var(--brand);
    font-weight: 700;
    font-size: 13px;
}

.section-label {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--muted);
}

.post {
    display: flex;
    gap: 16px;
    padding: 18px 0;
    border-top: 1px solid var(--border);
}

.post:first-of-type {
    border-top: 0;
}

.post-avatar {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: #dff1f2;
    color: var(--brand-dark);
    font-weight: 800;
}

.post-avatar.secondary {
    background: #f8ead5;
    color: #8a5a16;
}

.post-content {
    min-width: 0;
    flex: 1;
}

.post-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
}

.post-head span {
    color: var(--muted);
    font-size: 12px;
}

.post p {
    margin: 10px 0 14px;
    line-height: 1.65;
    color: #3f5053;
}

.post-meta {
    display: flex;
    gap: 16px;
    font-size: 12px;
    color: var(--muted);
}

.side-column {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.event-item,
.member-row {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 13px 0;
}

.event-item + .event-item,
.member-row + .member-row {
    border-top: 1px solid var(--border);
}

.event-date {
    width: 50px;
    height: 52px;
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: var(--brand-soft);
    color: var(--brand-dark);
}

.event-date strong {
    font-size: 18px;
    line-height: 1;
}

.event-date span {
    margin-top: 4px;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .08em;
}

.event-item > div:last-child,
.member-row > div:last-child {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.event-item span,
.member-row span {
    color: var(--muted);
    font-size: 12px;
}

@media (max-width: 1050px) {
    .app-shell {
        grid-template-columns: 86px minmax(0, 1fr);
    }

    .sidebar {
        padding: 25px 14px;
    }

    .brand {
        justify-content: center;
        padding: 0;
    }

    .brand > div:last-child,
    .nav-item {
        font-size: 0;
    }

    .nav-item {
        justify-content: center;
        padding: 11px;
    }

    .nav-icon {
        font-size: 18px;
    }

    .dashboard-grid {
        grid-template-columns: 1fr;
    }

    .side-column {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 760px) {
    .app-shell {
        display: block;
    }

    .sidebar {
        display: none;
    }

    .main-content {
        padding: 0 18px 30px;
    }

    .topbar {
        min-height: 72px;
    }

    .mobile-brand {
        display: block;
    }

    .user-info {
        display: none;
    }

    .hero {
        grid-template-columns: 1fr;
        padding: 28px 24px;
        border-radius: 24px;
    }

    .hero-card {
        margin-top: 8px;
    }

    .dashboard-grid {
        margin-top: 18px;
    }

    .side-column {
        display: flex;
    }

    .panel {
        padding: 20px;
        border-radius: 20px;
    }

    .post-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }
}

/* Navigation mobile CazLink */
.mobile-nav {
    display: none;
}

@media (max-width: 760px) {
    .mobile-nav {
        display: flex;
        gap: 8px;
        margin: 0 -18px 16px;
        padding: 0 18px 4px;
        overflow-x: auto;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .mobile-nav::-webkit-scrollbar {
        display: none;
    }

    .mobile-nav-item {
        flex: 0 0 auto;
        min-height: 42px;
        display: inline-flex;
        align-items: center;
        gap: 7px;
        padding: 0 13px;
        border: 1px solid var(--border);
        border-radius: 13px;
        background: var(--surface);
        color: var(--muted);
        font-size: 13px;
        font-weight: 700;
        white-space: nowrap;
    }

    .mobile-nav-item span {
        font-size: 14px;
    }

    .mobile-nav-item.active {
        border-color: transparent;
        background: var(--brand);
        color: #fff;
        box-shadow: 0 7px 18px rgba(20, 107, 114, .18);
    }
}

/* =========================================================
   Authentification CazLink
   ========================================================= */

.auth-page {
    min-height: 100vh;
    display: grid;
    grid-template-columns: minmax(360px, .9fr) minmax(500px, 1.1fr);
    background: var(--surface);
}

.auth-brand-panel {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    padding: 42px 52px;
    color: #fff;
    background:
        radial-gradient(
            circle at 85% 15%,
            rgba(233, 166, 77, .18),
            transparent 25%
        ),
        linear-gradient(145deg, #0a3539, #0f6269 65%, #167b83);
}

.auth-brand {
    display: flex;
    align-items: center;
    gap: 13px;
    font-size: 24px;
}

.auth-brand-content {
    max-width: 620px;
    margin: auto 0;
}

.auth-brand-content h1 {
    max-width: 560px;
    margin: 10px 0 22px;
    font-size: clamp(2.7rem, 5vw, 5.2rem);
    line-height: .98;
    letter-spacing: -.055em;
}

.auth-brand-content p {
    max-width: 560px;
    margin: 0;
    font-size: 17px;
    line-height: 1.7;
    color: rgba(255, 255, 255, .76);
}

.auth-brand-footer {
    font-size: 12px;
    color: rgba(255, 255, 255, .52);
}

.auth-form-panel {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 40px;
    background: #f6f8f8;
}

.auth-card {
    width: min(100%, 450px);
    padding: 40px;
    border: 1px solid var(--border);
    border-radius: 26px;
    background: #fff;
    box-shadow: var(--shadow);
}

.auth-card-heading {
    margin-bottom: 30px;
}

.auth-card-heading h2 {
    margin: 0;
    font-size: 30px;
    letter-spacing: -.035em;
}

.auth-card-heading p {
    margin: 8px 0 0;
    color: var(--muted);
}

.auth-mobile-logo {
    display: none;
}

.auth-alert {
    margin-bottom: 22px;
    padding: 13px 15px;
    border-radius: 12px;
    background: #fff0ef;
    color: #9a3029;
    font-size: 14px;
    font-weight: 600;
}

.auth-alert-success {
    background: #edf9f1;
    color: #246a40;
}

.auth-form {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.form-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.form-group label {
    font-size: 13px;
    font-weight: 700;
}

.form-group input {
    width: 100%;
    min-height: 50px;
    padding: 0 15px;
    border: 1px solid #cedadc;
    border-radius: 13px;
    outline: none;
    background: #fff;
    color: var(--text);
    transition: .18s ease;
}

.form-group input:focus {
    border-color: var(--brand);
    box-shadow: 0 0 0 4px rgba(20, 107, 114, .1);
}

.form-label-row {
    display: flex;
    justify-content: space-between;
    gap: 16px;
}

.auth-future-link {
    color: var(--muted);
    font-size: 12px;
}

.auth-submit {
    min-height: 50px;
    margin-top: 4px;
    border: 0;
    border-radius: 13px;
    background: var(--brand);
    color: #fff;
    font-weight: 800;
    cursor: pointer;
    transition: .18s ease;
}

.auth-submit:hover {
    background: var(--brand-dark);
    transform: translateY(-1px);
}

.auth-help {
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid var(--border);
    text-align: center;
    color: var(--muted);
    font-size: 13px;
}

.auth-help span {
    color: var(--brand);
    font-weight: 700;
}

@media (max-width: 860px) {
    .auth-page {
        display: block;
        min-height: 100vh;
        background: #f6f8f8;
    }

    .auth-brand-panel {
        display: none;
    }

    .auth-form-panel {
        min-height: 100vh;
        padding: 24px 18px;
    }

    .auth-card {
        padding: 30px 24px;
    }

    .auth-mobile-logo {
        display: block;
        margin-bottom: 26px;
        color: var(--brand);
        font-size: 23px;
        font-weight: 800;
    }
}

.password-field {
    position: relative;
}

.password-field input {
    padding-right: 52px;
}

.password-toggle {
    position: absolute;
    top: 50%;
    right: 9px;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    transform: translateY(-50%);
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
    transition: .18s ease;
}

.password-toggle:hover {
    background: var(--surface-soft);
    color: var(--brand-dark);
}

.password-toggle:focus-visible {
    outline: 2px solid var(--brand);
    outline-offset: 2px;
}

.auth-card-large {
    width: min(100%, 560px);
}

.auth-name-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.auth-help a {
    color: var(--brand);
    font-weight: 700;
}

.form-error-message,
.form-group ul {
    margin: 4px 0 0;
    padding: 0;
    list-style: none;
    color: #a63b34;
    font-size: 12px;
    line-height: 1.4;
}

@media (max-width: 560px) {
    .auth-name-grid {
        grid-template-columns: 1fr;
    }
}

/* ===== MVP communautaire CazLink ===== */
.org-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr;background:#f4f7f8}.org-sidebar{position:sticky;top:0;height:100vh;padding:26px 18px;display:flex;flex-direction:column;background:#0c3438;color:#fff}.org-brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:800}.org-brand.dark{color:#17383b}.org-current{margin:32px 4px 22px;padding:16px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:rgba(255,255,255,.06)}.org-current small,.org-current strong{display:block}.org-current small{margin-bottom:5px;color:rgba(255,255,255,.55)}.org-nav{display:grid;gap:6px}.org-nav a,.org-sidebar-footer a{padding:11px 12px;border-radius:12px;color:rgba(255,255,255,.76);font-weight:600}.org-nav a:hover,.org-sidebar-footer a:hover{background:rgba(255,255,255,.09);color:#fff}.org-sidebar-footer{margin-top:auto;display:grid;gap:4px}.org-main{min-width:0;padding:0 34px 46px}.org-topbar{height:78px;display:flex;align-items:center;gap:14px}.org-topbar>div:nth-child(2){display:flex;flex-direction:column}.org-topbar span{font-size:12px;color:var(--muted)}.org-user-chip{margin-left:auto;display:flex;align-items:center;gap:8px}.org-mobile-menu{display:none;border:0;background:#fff;border-radius:10px;padding:9px 11px}.org-hero{display:flex;justify-content:space-between;gap:30px;padding:34px;border-radius:26px;background:linear-gradient(135deg,#0f5960,#167b83);color:#fff}.org-hero h1{margin:4px 0 10px;font-size:clamp(2rem,4vw,3.2rem)}.org-hero p{max-width:700px;color:rgba(255,255,255,.8)}.hero-stats{display:flex;gap:12px;align-self:flex-end}.hero-stats div{min-width:120px;padding:18px;border-radius:18px;background:rgba(255,255,255,.1)}.hero-stats strong,.hero-stats span{display:block}.hero-stats strong{font-size:26px}.hero-stats span{font-size:12px;color:rgba(255,255,255,.7)}.org-grid{display:grid;grid-template-columns:1.5fr .7fr;gap:22px;margin-top:22px}.org-side{display:grid;gap:22px}.content-card{padding:22px;border:1px solid var(--border);border-radius:20px;background:#fff;box-shadow:0 7px 22px rgba(20,48,52,.04)}.card-title h2,.quick-links h2{margin:3px 0 14px;font-size:20px}.feed-post.full{margin-bottom:14px}.feed-post .post-body{flex:1}.event-mini{display:flex;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--border)}.event-mini:first-of-type{border-top:0}.event-mini div:last-child{display:grid;gap:3px}.event-mini span{font-size:12px;color:var(--muted)}.quick-links{display:grid;gap:10px}.quick-links a{color:var(--brand);font-weight:700}.page-heading{margin:18px 0 22px}.page-heading h1,.spaces-wrap h1,.simple-card h1{margin:5px 0 8px;font-size:34px;letter-spacing:-.03em}.page-heading p,.spaces-wrap>p,.simple-card>p{color:var(--muted)}.two-col{display:grid;grid-template-columns:1.4fr .7fr;gap:22px}.two-col.group-layout-full{grid-template-columns:1fr}.cards-list{display:grid;gap:12px}.group-card,.document-row,.space-card{display:flex;align-items:center;gap:14px;padding:18px;border:1px solid var(--border);border-radius:18px;background:#fff}.group-card:hover,.document-row:hover,.space-card:hover{border-color:#b7cccf;box-shadow:0 8px 25px rgba(20,48,52,.06)}.group-card div,.document-row div,.space-card div{min-width:0;flex:1}.group-card h3,.group-card p,.space-card strong{margin:0}.group-card p{margin-top:5px;color:#526568}.group-card small,.document-row span,.space-card span{display:block;margin-top:4px;color:var(--muted);font-size:12px}.group-icon,.space-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:var(--brand-soft);color:var(--brand-dark);font-size:19px;font-weight:800}.stack-form{display:grid;gap:15px}.stack-form label{display:grid;gap:7px;font-size:13px;font-weight:700}.stack-form input,.stack-form textarea,.stack-form select,.composer textarea,.comment-form input{width:100%;padding:12px 13px;border:1px solid #cedadc;border-radius:12px;background:#fff}.primary-action,.small-action{border:0;border-radius:12px;background:var(--brand);color:#fff;font-weight:800;cursor:pointer}.primary-action{min-height:46px;padding:0 18px}.small-action{margin-top:10px;padding:8px 12px}.composer{display:grid;gap:10px;margin-bottom:16px;padding:18px;border:1px solid var(--border);border-radius:18px;background:#fff}.composer .primary-action{justify-self:end}.post-comments{display:grid;gap:10px;margin-top:14px}
.post-comment{padding:12px 14px;border-left:3px solid var(--brand-soft);border-radius:0 10px 10px 0;background:#f7fafa}
.post-comment strong{display:block}
.post-comment span{display:block;margin-top:2px;font-size:12px}
.post-comment p{margin:7px 0 0}
.comment-form{display:flex;gap:8px;margin-top:14px}.comment-form button{border:0;border-radius:10px;padding:0 12px;background:var(--surface-soft);color:var(--brand-dark);font-weight:700}.event-card{display:flex;gap:16px;padding:18px;border:1px solid var(--border);border-radius:18px;background:#fff}.event-date.big{width:60px;height:62px}.event-card h3{margin:0 0 6px}.event-card p{color:#526568}.event-card span{font-size:12px;color:var(--muted)}.member-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.member-card{position:relative;display:flex;gap:14px;align-items:center;padding:18px;border:1px solid var(--border);border-radius:18px;background:#fff}.avatar.large{width:52px;height:52px}.member-card h3,.member-card p{margin:0}.member-card p,.member-card span{font-size:12px;color:var(--muted)}.role-badge{position:absolute;right:12px;top:12px;font-size:9px;color:var(--brand);background:var(--brand-soft);padding:5px 7px;border-radius:8px}.spaces-page{min-height:100vh;background:#f4f7f8}.spaces-header{height:82px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--border)}.spaces-wrap{max-width:1050px;margin:0 auto;padding:56px 24px}.spaces-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:26px}.create-space{border-style:dashed}.button-outline{padding:10px 14px;border:1px solid var(--border);border-radius:12px}.simple-page{min-height:100vh;padding:42px 20px;background:#f4f7f8}.simple-page>.back-link{display:block;max-width:650px;margin:0 auto 14px;color:var(--brand);font-weight:700}.simple-card{max-width:650px;margin:auto;padding:34px;border:1px solid var(--border);border-radius:24px;background:#fff}.empty-state{padding:28px;border:1px dashed #bdcdcf;border-radius:18px;background:#fff;color:var(--muted)}.empty-state.compact{padding:16px}.flash{margin:0 0 14px;padding:12px 14px;border-radius:12px;font-weight:600}.flash-success{background:#e5f6ee;color:#226847}.flash-error{background:#fff0ef;color:#92342e}.muted{color:var(--muted)}.success-panel{padding:22px;border-radius:16px;background:#e5f6ee;color:#226847}.form-answer{max-width:760px}
@media(max-width:980px){.org-shell{grid-template-columns:1fr}.org-sidebar{display:none;position:fixed;z-index:20;width:260px;left:0;top:0}.org-menu-open .org-sidebar{display:flex}.org-main{padding:0 20px 36px}.org-mobile-menu{display:block}.org-grid,.two-col{grid-template-columns:1fr}.member-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.org-hero{flex-direction:column}.hero-stats{align-self:stretch}.spaces-grid{grid-template-columns:1fr}}
@media(max-width:620px){.org-main{padding:0 14px 28px}.org-user-chip>span:last-child{display:none}.org-hero{padding:24px}.hero-stats{display:grid;grid-template-columns:1fr 1fr}.member-grid{grid-template-columns:1fr}.spaces-wrap{padding:34px 16px}.simple-card{padding:24px}.comment-form{flex-direction:column}.comment-form button{min-height:42px}}

/* =========================================================
   CazLink - Accueil public
   ========================================================= */

.public-home {
    min-height: 100vh;
    background:
        radial-gradient(circle at 85% 15%, rgba(50, 161, 166, .14), transparent 30%),
        #f4f8f8;
    color: #153d40;
}

.public-header {
    max-width: 1380px;
    margin: 0 auto;
    padding: 24px 36px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.public-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    color: inherit;
    text-decoration: none;
}

.public-brand > span:last-child {
    display: flex;
    flex-direction: column;
}

.public-brand strong {
    font-size: 1.25rem;
}

.public-brand small {
    color: #667b7d;
}

.public-header-actions,
.public-hero-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.button-large {
    min-height: 48px;
    padding: 0 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.public-hero {
    max-width: 1380px;
    margin: 26px auto 0;
    padding: 70px 60px;
    border-radius: 32px;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
    gap: 70px;
    align-items: center;
    background: linear-gradient(135deg, #0e5d60 0%, #157b7f 62%, #3a9da1 100%);
    color: white;
    box-shadow: 0 28px 70px rgba(16, 75, 78, .16);
}

.public-hero h1 {
    max-width: 820px;
    margin: 14px 0 22px;
    font-size: clamp(2.7rem, 5vw, 5rem);
    line-height: .98;
    letter-spacing: -.05em;
}

.public-lead {
    max-width: 720px;
    margin: 0 0 30px;
    font-size: 1.08rem;
    line-height: 1.75;
    color: rgba(255,255,255,.9);
}

.public-hero .button-primary {
    background: white;
    color: #0c5d60;
}

.public-hero .button-secondary {
    border-color: rgba(255,255,255,.38);
    color: white;
    background: rgba(255,255,255,.08);
}

.public-reassurance {
    margin: 22px 0 0;
    font-size: .88rem;
    color: rgba(255,255,255,.72);
}

.public-preview {
    padding: 26px;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 24px;
    background: rgba(255,255,255,.12);
    backdrop-filter: blur(14px);
    box-shadow: 0 20px 45px rgba(0,0,0,.08);
}

.preview-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(255,255,255,.18);
}

.small-mark {
    width: 38px;
    height: 38px;
}

.preview-line {
    display: flex;
    gap: 14px;
    padding: 18px 0;
    border-bottom: 1px solid rgba(255,255,255,.13);
}

.preview-line:last-child {
    border-bottom: 0;
}

.preview-line > div {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.preview-line small {
    color: rgba(255,255,255,.7);
}

.preview-icon,
.feature-symbol {
    font-size: 1.25rem;
}

.public-features {
    max-width: 1380px;
    margin: 90px auto;
    padding: 0 36px;
}

.public-section-heading {
    max-width: 760px;
    margin-bottom: 36px;
}

.public-section-heading h2 {
    margin: 10px 0 14px;
    font-size: clamp(2rem, 3.5vw, 3.25rem);
    line-height: 1.05;
    letter-spacing: -.04em;
}

.public-section-heading p {
    color: #667b7d;
    line-height: 1.7;
}

.public-feature-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.public-feature-card {
    padding: 28px;
    border: 1px solid #dce8e8;
    border-radius: 22px;
    background: white;
    box-shadow: 0 12px 35px rgba(29, 73, 76, .05);
}

.public-feature-card h3 {
    margin: 18px 0 10px;
}

.public-feature-card p {
    margin: 0;
    color: #667b7d;
    line-height: 1.65;
}

.public-cta {
    max-width: 1308px;
    margin: 0 auto 70px;
    padding: 42px 48px;
    border-radius: 26px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    background: #e7f1ef;
}

.public-cta h2 {
    margin: 8px 0;
    font-size: 2rem;
}

.public-cta p {
    margin: 0;
    color: #667b7d;
}

.public-footer {
    max-width: 1380px;
    margin: 0 auto;
    padding: 30px 36px 45px;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    color: #667b7d;
    border-top: 1px solid #dce8e8;
}

@media (max-width: 950px) {
    .public-hero {
        grid-template-columns: 1fr;
        margin: 16px 18px 0;
        padding: 48px 30px;
    }

    .public-feature-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 650px) {
    .public-header {
        padding: 18px;
        align-items: flex-start;
    }

    .public-brand small {
        display: none;
    }

    .public-header-actions {
        justify-content: flex-end;
    }

    .public-header-actions .button {
        padding-left: 12px;
        padding-right: 12px;
        font-size: .83rem;
    }

    .public-hero {
        padding: 38px 22px;
        border-radius: 24px;
    }

    .public-feature-grid {
        grid-template-columns: 1fr;
    }

    .public-features {
        margin: 65px auto;
        padding: 0 18px;
    }

    .public-cta {
        margin: 0 18px 50px;
        padding: 30px 24px;
        align-items: flex-start;
        flex-direction: column;
    }

    .public-footer {
        margin: 0 18px;
        padding-left: 0;
        padding-right: 0;
        flex-direction: column;
    }
}

/* Correction lisibilité bouton connexion accueil public */
.public-header .button-secondary {
    background: #ffffff;
    color: #0e5d60;
    border: 1px solid #c9dddd;
}

.public-header .button-secondary:hover {
    background: #edf6f5;
    color: #0a4d50;
}

/* =========================================================
   CazLink - Mes espaces premium
   ========================================================= */

.spaces-page-premium {
    min-height: 100vh;
    background:
        radial-gradient(circle at 87% 8%, rgba(48, 161, 164, .13), transparent 28%),
        linear-gradient(180deg, #f8fbfb 0%, #eef4f4 100%);
}

.spaces-page-premium .spaces-header {
    height: 88px;
    padding: 0 max(34px, 5vw);
    border-bottom: 1px solid rgba(188, 210, 211, .72);
    background: rgba(255,255,255,.88);
    backdrop-filter: blur(18px);
}

.spaces-page-premium .org-brand.dark > span:last-child {
    display: flex;
    flex-direction: column;
}

.spaces-page-premium .org-brand.dark small {
    margin-top: 2px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 500;
}

.spaces-header-user {
    display: flex;
    align-items: center;
    gap: 18px;
}

.spaces-user {
    display: flex;
    align-items: center;
    gap: 10px;
}

.spaces-user > span:last-child {
    display: flex;
    flex-direction: column;
}

.spaces-user small {
    margin-top: 2px;
    color: var(--muted);
}

.spaces-premium-wrap {
    max-width: 1280px;
    margin: 0 auto;
    padding: 42px 32px 80px;
}

.spaces-welcome {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(270px, .55fr);
    gap: 55px;
    align-items: center;
    padding: 54px 58px;
    border-radius: 30px;
    background:
        radial-gradient(circle at 92% 15%, rgba(255,255,255,.16), transparent 25%),
        linear-gradient(135deg, #0c565b 0%, #14787d 60%, #359ba0 100%);
    color: #fff;
    box-shadow: 0 24px 60px rgba(22, 84, 88, .15);
}

.spaces-welcome h1 {
    max-width: 760px;
    margin: 12px 0 18px;
    font-size: clamp(2.35rem, 4.4vw, 4.15rem);
    line-height: 1;
    letter-spacing: -.045em;
}

.spaces-welcome-copy > p {
    max-width: 690px;
    margin: 0;
    color: rgba(255,255,255,.84);
    line-height: 1.75;
    font-size: 1.02rem;
}

.spaces-welcome-actions {
    margin-top: 27px;
}

.spaces-welcome .button-primary {
    background: #fff;
    color: #0c5b60;
}

.spaces-welcome-card {
    min-height: 275px;
    padding: 28px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.23);
    border-radius: 24px;
    background: rgba(255,255,255,.1);
    backdrop-filter: blur(16px);
}

.spaces-welcome-card-label {
    margin-bottom: 18px;
    color: rgba(255,255,255,.64);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.spaces-account-avatar {
    width: 62px;
    height: 62px;
    margin-bottom: 15px;
    display: grid;
    place-items: center;
    border-radius: 19px;
    background: linear-gradient(135deg, #d6eee8, #e6b557);
    color: #0d575a;
    font-size: 1.2rem;
    font-weight: 900;
}

.spaces-welcome-card > strong {
    font-size: 1.2rem;
}

.spaces-welcome-card > span:not(.spaces-welcome-card-label) {
    margin-top: 5px;
    color: rgba(255,255,255,.68);
    font-size: .88rem;
}

.spaces-account-status {
    margin-top: 23px;
    padding-top: 17px;
    width: 100%;
    display: flex;
    align-items: center;
    gap: 8px;
    border-top: 1px solid rgba(255,255,255,.14);
    color: rgba(255,255,255,.84);
    font-size: .82rem;
}

.status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #9be4b8;
    box-shadow: 0 0 0 4px rgba(155,228,184,.12);
}

.spaces-content-section,
.spaces-tools {
    margin-top: 54px;
}

.spaces-section-heading {
    margin-bottom: 22px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
}

.spaces-section-heading h2 {
    margin: 6px 0 5px;
    font-size: 1.85rem;
    letter-spacing: -.03em;
}

.spaces-section-heading p {
    margin: 0;
    color: var(--muted);
}

.spaces-secondary-link {
    color: var(--brand);
    font-weight: 800;
}

.spaces-grid-premium {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 17px;
}

.space-card-premium {
    min-height: 135px;
    padding: 23px;
    border-radius: 21px;
    box-shadow: 0 8px 30px rgba(24, 65, 68, .045);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.space-card-premium:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 38px rgba(24, 65, 68, .09);
}

.space-icon-large {
    width: 58px;
    height: 58px;
    border-radius: 17px;
    font-size: 1.25rem;
}

.space-card-premium p {
    margin: 8px 0 0;
    color: #65787a;
    font-size: .82rem;
    line-height: 1.5;
}

.space-arrow {
    color: var(--brand);
    font-size: 1.45rem;
    font-weight: 700;
}

.spaces-empty-layout {
    margin-top: 25px;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(310px, .65fr);
    gap: 20px;
}

.spaces-empty-main,
.spaces-start-card {
    border: 1px solid #dce8e8;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 9px 32px rgba(23, 67, 70, .045);
}

.spaces-empty-main {
    padding: 40px;
}

.spaces-empty-icon {
    width: 62px;
    height: 62px;
    margin-bottom: 28px;
    display: grid;
    place-items: center;
    border-radius: 19px;
    background: linear-gradient(135deg, #d9efea, #eef7f5);
    color: #0f666a;
    font-size: 1.7rem;
}

.spaces-empty-main h2 {
    max-width: 550px;
    margin: 8px 0 12px;
    font-size: 2rem;
    letter-spacing: -.035em;
}

.spaces-empty-main > p {
    max-width: 600px;
    margin: 0 0 25px;
    color: var(--muted);
    line-height: 1.7;
}

.spaces-start-card {
    padding: 30px;
}

.spaces-start-card h2 {
    margin: 7px 0 19px;
}

.spaces-start-item {
    display: flex;
    gap: 14px;
    padding: 16px 0;
    border-top: 1px solid #edf2f2;
}

.spaces-start-item > span {
    flex: 0 0 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: var(--brand-soft);
    color: var(--brand);
    font-size: .72rem;
    font-weight: 900;
}

.spaces-start-item strong {
    font-size: .91rem;
}

.spaces-start-item p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: .78rem;
    line-height: 1.5;
}

.spaces-tools-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 15px;
}

.spaces-tools-grid article {
    padding: 23px;
    border: 1px solid #dce8e8;
    border-radius: 20px;
    background: rgba(255,255,255,.82);
}

.spaces-tools-grid article > span {
    width: 42px;
    height: 42px;
    margin-bottom: 17px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: var(--brand-soft);
    color: var(--brand-dark);
    font-weight: 900;
}

.spaces-tools-grid article > strong {
    display: block;
    margin-bottom: 7px;
}

.spaces-tools-grid article p {
    margin: 0;
    color: var(--muted);
    font-size: .8rem;
    line-height: 1.55;
}

@media (max-width: 900px) {
    .spaces-welcome,
    .spaces-empty-layout {
        grid-template-columns: 1fr;
    }

    .spaces-welcome {
        padding: 42px 30px;
    }

    .spaces-welcome-card {
        min-height: auto;
    }

    .spaces-tools-grid,
    .spaces-grid-premium {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .spaces-page-premium .spaces-header {
        height: auto;
        padding: 16px 18px;
    }

    .spaces-user {
        display: none;
    }

    .spaces-premium-wrap {
        padding: 24px 16px 55px;
    }

    .spaces-welcome {
        padding: 34px 22px;
        border-radius: 23px;
    }

    .spaces-welcome h1 {
        font-size: 2.4rem;
    }

    .spaces-empty-main,
    .spaces-start-card {
        padding: 25px;
    }

    .spaces-tools-grid,
    .spaces-grid-premium {
        grid-template-columns: 1fr;
    }

    .spaces-section-heading {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* Finitions page Mes espaces */
.spaces-welcome h1 {
    font-size: clamp(2.15rem, 3.9vw, 3.75rem);
}

.spaces-empty-layout {
    margin-top: 20px;
}

.spaces-welcome .button-primary {
    box-shadow: 0 8px 20px rgba(0, 0, 0, .08);
    border: 1px solid rgba(255,255,255,.55);
}

.spaces-welcome .button-primary:hover {
    background: #eef7f5;
    color: #084f53;
}

/* =========================================================
   CazLink - Dashboard organisation
   ========================================================= */

.org-hero-dashboard {
    position: relative;
    overflow: hidden;
    padding: 42px;
    background:
        radial-gradient(circle at 88% 15%, rgba(255,255,255,.17), transparent 26%),
        linear-gradient(135deg, #0b4e53 0%, #14767b 58%, #38a1a4 100%);
    box-shadow: 0 22px 48px rgba(18, 79, 83, .14);
}

.org-hero-dashboard::after {
    content: "";
    position: absolute;
    width: 220px;
    height: 220px;
    right: -90px;
    bottom: -120px;
    border-radius: 50%;
    background: rgba(255,255,255,.08);
}

.org-hero-copy {
    position: relative;
    z-index: 1;
}

.org-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 24px;
}

.org-hero-action {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 16px;
    border-radius: 13px;
    font-weight: 800;
    transition: transform .18s ease, background .18s ease;
}

.org-hero-action:hover {
    transform: translateY(-1px);
}

.org-hero-action.primary {
    background: #fff;
    color: #0e5b60;
}

.org-hero-action.secondary {
    border: 1px solid rgba(255,255,255,.26);
    background: rgba(255,255,255,.1);
    color: #fff;
}

.hero-stats-dashboard {
    position: relative;
    z-index: 1;
}

.hero-stat-card {
    position: relative;
    overflow: hidden;
    min-width: 145px !important;
    padding: 20px !important;
    border: 1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.13) !important;
    backdrop-filter: blur(10px);
}

.hero-stat-icon {
    margin-bottom: 18px;
    font-size: 1.15rem !important;
    color: #fff !important;
}

.hero-stat-card strong {
    font-size: 2rem;
}

.dashboard-highlight-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 22px;
}

.dashboard-highlight-card {
    position: relative;
    overflow: hidden;
    min-height: 185px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    border-radius: 22px;
    box-shadow: 0 10px 30px rgba(20, 60, 63, .05);
}

.dashboard-highlight-card::after {
    content: "";
    position: absolute;
    width: 110px;
    height: 110px;
    right: -35px;
    bottom: -45px;
    border-radius: 50%;
    opacity: .48;
}

.dashboard-highlight-posts {
    border: 1px solid #cce4df;
    background: linear-gradient(145deg, #edf8f5, #ffffff);
}

.dashboard-highlight-posts::after {
    background: #cceee4;
}

.dashboard-highlight-events {
    border: 1px solid #eadfbe;
    background: linear-gradient(145deg, #fff8e8, #ffffff);
}

.dashboard-highlight-events::after {
    background: #f6e2a9;
}

.dashboard-highlight-docs {
    border: 1px solid #d5dfeb;
    background: linear-gradient(145deg, #eff5fb, #ffffff);
}

.dashboard-highlight-docs::after {
    background: #cfdef0;
}

.dashboard-highlight-card > div,
.dashboard-highlight-card > a {
    position: relative;
    z-index: 1;
}

.dashboard-highlight-icon {
    width: 44px;
    height: 44px;
    margin-bottom: 18px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: rgba(255,255,255,.84);
    color: var(--brand-dark);
    font-size: 1.15rem;
    font-weight: 900;
    box-shadow: 0 7px 18px rgba(24, 75, 78, .08);
}

.dashboard-highlight-card h2 {
    margin: 5px 0 7px;
    font-size: 1.3rem;
}

.dashboard-highlight-card p {
    margin: 0;
    color: #647678;
    font-size: .85rem;
    line-height: 1.55;
}

.dashboard-highlight-card > a {
    margin-top: 18px;
    color: var(--brand-dark);
    font-size: .83rem;
    font-weight: 800;
}

.org-grid-dashboard {
    margin-top: 20px;
}

.content-card-dashboard {
    border: 1px solid #dce8e8;
    border-radius: 23px;
    box-shadow: 0 9px 30px rgba(19, 62, 65, .045);
}

.dashboard-feed-card {
    background:
        linear-gradient(180deg, rgba(245,250,249,.7), transparent 115px),
        #fff;
}

.dashboard-events-card {
    background:
        linear-gradient(180deg, rgba(255,249,232,.72), transparent 115px),
        #fff;
}

.dashboard-card-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.dashboard-card-heading h2 {
    margin-top: 5px;
}

.dashboard-card-link {
    color: var(--brand);
    font-size: .78rem;
    font-weight: 800;
}

.dashboard-feed-post {
    margin-top: 15px;
    padding: 18px;
    border: 1px solid #e2ecec;
    border-radius: 17px;
    background: #fff;
}

.dashboard-empty-state {
    min-height: 150px;
    padding: 24px;
    display: flex;
    align-items: center;
    gap: 18px;
    border: 1px dashed #bcd1d1;
    border-radius: 18px;
    background:
        linear-gradient(135deg, rgba(231,245,242,.7), rgba(255,255,255,.9));
}

.dashboard-empty-state > div:nth-child(2) {
    flex: 1;
}

.dashboard-empty-state strong {
    color: #294a4d;
}

.dashboard-empty-state p {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: .83rem;
    line-height: 1.5;
}

.dashboard-empty-state > a {
    padding: 10px 13px;
    border-radius: 11px;
    background: var(--brand);
    color: #fff;
    font-size: .78rem;
    font-weight: 800;
}

.dashboard-empty-icon {
    flex: 0 0 50px;
    height: 50px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    background: #fff;
    color: var(--brand);
    font-size: 1.3rem;
    box-shadow: 0 6px 18px rgba(20, 65, 68, .07);
}

.dashboard-empty-small {
    min-height: auto;
    padding: 18px;
    align-items: flex-start;
}

.dashboard-empty-small .dashboard-empty-icon {
    flex-basis: 42px;
    height: 42px;
}

.dashboard-event-mini {
    margin-top: 2px;
}

.dashboard-card-cta {
    display: inline-flex;
    margin-top: 17px;
    color: var(--brand);
    font-size: .8rem;
    font-weight: 800;
}

.dashboard-quick-links {
    gap: 8px;
}

.dashboard-quick-links > a {
    padding: 12px;
    display: grid;
    grid-template-columns: 42px 1fr auto;
    gap: 11px;
    align-items: center;
    border: 1px solid #e1ebeb;
    border-radius: 15px;
    background: #fbfdfd;
    color: inherit;
    transition: transform .15s ease, border-color .15s ease, background .15s ease;
}

.dashboard-quick-links > a:hover {
    transform: translateX(2px);
    border-color: #c3d9d9;
    background: #f3f9f8;
}

.quick-link-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: var(--brand-soft);
    color: var(--brand-dark);
    font-size: .95rem;
    font-weight: 900;
}

.dashboard-quick-links > a > span:nth-child(2) {
    display: flex;
    flex-direction: column;
}

.dashboard-quick-links strong {
    color: #27484b;
    font-size: .85rem;
}

.dashboard-quick-links small {
    margin-top: 2px;
    color: var(--muted);
    font-size: .7rem;
}

.dashboard-quick-links b {
    color: var(--brand);
    font-size: 1rem;
}

@media (max-width: 1050px) {
    .dashboard-highlight-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .org-hero-dashboard {
        padding: 28px 22px;
    }

    .org-hero-actions {
        flex-direction: column;
    }

    .org-hero-action {
        justify-content: center;
    }

    .dashboard-empty-state {
        align-items: flex-start;
        flex-direction: column;
    }

    .dashboard-card-heading {
        flex-direction: column;
    }
}

/* Icônes CazLink - famille outline homogène */
.nav-icon,
.inline-icon,
.dashboard-highlight-icon,
.hero-stat-icon,
.dashboard-empty-icon,
.quick-link-icon {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
}

.nav-icon svg,
.inline-icon svg,
.dashboard-highlight-icon svg,
.hero-stat-icon svg,
.dashboard-empty-icon svg,
.quick-link-icon svg {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.org-nav a {
    display: flex;
    align-items: center;
    gap: 10px;
}

.nav-icon {
    width: 20px;
    height: 20px;
}

.nav-icon svg {
    width: 18px;
    height: 18px;
}

.inline-icon {
    width: 17px;
    height: 17px;
    margin-right: 3px;
}

.inline-icon svg {
    width: 16px;
    height: 16px;
}

.hero-stat-icon {
    width: 28px;
    height: 28px;
}

.hero-stat-icon svg {
    width: 22px;
    height: 22px;
}

.dashboard-highlight-icon svg {
    width: 21px;
    height: 21px;
}

.dashboard-empty-icon svg {
    width: 22px;
    height: 22px;
}

.quick-link-icon svg {
    width: 19px;
    height: 19px;
}

/* =========================================================
   CazLink - Page groupe
   ========================================================= */

.group-page{
    position:relative;
    margin:0 -34px -46px;
    padding:18px 34px 46px;
    min-height:calc(100vh - 78px);
    background:
        radial-gradient(circle at 88% 8%, rgba(84,167,173,.16), transparent 30%),
        radial-gradient(circle at 8% 42%, rgba(225,183,111,.12), transparent 32%),
        linear-gradient(145deg,#f3f8f7 0%,#eef5f6 48%,#f7f4ed 100%);
}

.group-heading{
    margin-top:0;
    padding-top:6px;
}

.group-page-grid{
    display:grid;
    grid-template-columns:minmax(0,1.55fr) minmax(280px,.68fr);
    gap:24px;
    align-items:start;
}

.group-feed{
    min-width:0;
}

.group-composer{
    border-color:rgba(23,91,97,.14);
    box-shadow:0 12px 30px rgba(23,56,59,.06);
}

.group-post{
    display:flex;
    gap:14px;
    border:1px solid rgba(23,91,97,.12);
    box-shadow:0 14px 32px rgba(23,56,59,.06);
}

.group-post-content{
    margin:10px 0 0;
    font-size:15px;
    line-height:1.6;
}

.post-comments{
    display:grid;
    gap:10px;
    margin-top:18px;
}

.post-comment{
    padding:13px 15px;
    border-left:3px solid rgba(23,123,131,.32);
    border-radius:0 12px 12px 0;
    transition:transform .15s ease,box-shadow .15s ease;
}

.post-comment:nth-child(odd){
    background:linear-gradient(135deg,#eef9f7,#e8f4f2);
    border-left-color:#4eaaa8;
}

.post-comment:nth-child(even){
    background:linear-gradient(135deg,#fbf6e9,#f6eddc);
    border-left-color:#d4a65a;
}

.post-comment:hover{
    transform:translateX(2px);
    box-shadow:0 6px 16px rgba(22,61,64,.05);
}

.post-comment-head{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:12px;
}

.post-comment-head strong{
    color:#173f42;
}

.post-comment-head span{
    font-size:11px;
    color:#75888a;
    white-space:nowrap;
}

.post-comment p{
    margin:6px 0 0;
    color:#425b5d;
    line-height:1.5;
}

.comment-form{
    padding-top:4px;
}

.comment-form input{
    box-shadow:inset 0 1px 2px rgba(25,55,58,.03);
}

.comment-form button{
    min-width:88px;
    cursor:pointer;
    background:#edf6f5;
    color:#176e73;
    transition:background .15s ease,transform .15s ease;
}

.comment-form button:hover{
    background:#dceeed;
    transform:translateY(-1px);
}

.group-sidebar{
    display:grid;
    gap:18px;
    position:sticky;
    top:96px;
}

.group-side-card{
    position:relative;
    overflow:hidden;
    border:1px solid rgba(23,91,97,.12);
    box-shadow:0 14px 32px rgba(23,56,59,.06);
}

.group-events-card::before{
    content:"";
    position:absolute;
    inset:0 0 auto 0;
    height:4px;
    background:linear-gradient(90deg,#17818a,#67b5ad);
}

.group-about-card::before{
    content:"";
    position:absolute;
    inset:0 0 auto 0;
    height:4px;
    background:linear-gradient(90deg,#d7aa5d,#efce8d);
}

.group-side-title{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:16px;
}

.group-side-title h2{
    margin:2px 0 0;
    font-size:18px;
}

.group-side-icon{
    width:42px;
    height:42px;
    flex:0 0 42px;
    display:grid;
    place-items:center;
    border-radius:13px;
    background:linear-gradient(145deg,#e3f4f2,#eef8f7);
    color:#176e73;
}

.group-side-icon svg,
.group-side-empty-icon svg{
    width:22px;
    height:22px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.group-event-mini{
    display:grid;
    grid-template-columns:50px 1fr;
    gap:12px;
    align-items:center;
    padding:12px 0;
    border-top:1px solid rgba(23,91,97,.09);
}

.group-event-mini:first-of-type{
    border-top:0;
}

.group-event-date{
    width:48px;
    height:52px;
    display:grid;
    place-items:center;
    align-content:center;
    border-radius:13px;
    background:#e8f5f3;
    color:#176e73;
}

.group-event-date strong{
    font-size:18px;
    line-height:1;
}

.group-event-date span{
    margin-top:3px;
    font-size:9px;
    font-weight:800;
}

.group-event-mini>div:last-child{
    min-width:0;
    display:grid;
    gap:3px;
}

.group-event-mini>div:last-child span{
    font-size:11px;
    color:var(--muted);
}

.group-side-empty{
    padding:18px 12px;
    border:1px dashed rgba(23,91,97,.22);
    border-radius:15px;
    text-align:center;
    background:linear-gradient(145deg,rgba(235,247,245,.82),rgba(255,255,255,.92));
}

.group-side-empty-icon{
    width:42px;
    height:42px;
    margin:0 auto 9px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#e5f3f1;
    color:#478b8b;
}

.group-side-empty strong{
    display:block;
    color:#294d4f;
}

.group-side-empty p{
    margin:6px 0 0;
    font-size:12px;
    line-height:1.5;
    color:var(--muted);
}

.group-side-link{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-top:14px;
    padding-top:13px;
    border-top:1px solid rgba(23,91,97,.09);
    color:#176e73;
    font-size:13px;
    font-weight:800;
}

.group-meta-list{
    display:grid;
    gap:0;
}

.group-meta-list>div{
    display:flex;
    justify-content:space-between;
    gap:14px;
    padding:11px 0;
    border-top:1px solid rgba(23,91,97,.09);
}

.group-meta-list>div:first-child{
    border-top:0;
}

.group-meta-list span{
    font-size:12px;
    color:var(--muted);
}

.group-meta-list strong{
    max-width:58%;
    text-align:right;
    font-size:12px;
    color:#294d4f;
}

@media(max-width:980px){
    .group-page{
        margin:0 -20px -36px;
        padding:18px 20px 36px;
    }

    .group-page-grid{
        grid-template-columns:1fr;
    }

    .group-sidebar{
        position:static;
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:620px){
    .group-page{
        margin:0 -14px -28px;
        padding:14px 14px 28px;
    }

    .group-sidebar{
        grid-template-columns:1fr;
    }

    .post-comment-head{
        display:grid;
        gap:2px;
    }

    .post-comment-head span{
        white-space:normal;
    }
}

/* Harmonisation des actions du fil de groupe */
.group-page .comment-form button{
    background:var(--brand);
    color:#fff;
    font-weight:800;
}

.group-page .comment-form button:hover{
    background:var(--brand-dark);
}


/* =========================================================
   CazLink - Page événements
   ========================================================= */

.events-page{
    margin:0 -34px -46px;
    padding:18px 34px 46px;
    min-height:calc(100vh - 78px);
    background:
        radial-gradient(circle at 88% 10%, rgba(82,161,168,.15), transparent 30%),
        radial-gradient(circle at 10% 55%, rgba(226,184,108,.10), transparent 32%),
        linear-gradient(145deg,#f4f9f8 0%,#eef5f6 50%,#f8f5ee 100%);
}

.events-heading{
    margin-top:0;
    padding-top:6px;
}

.events-grid{
    display:grid;
    grid-template-columns:minmax(0,1.45fr) minmax(320px,.65fr);
    gap:24px;
    align-items:start;
}

.events-list{
    display:grid;
    gap:14px;
}

.event-card-rich{
    align-items:flex-start;
    border:1px solid rgba(23,91,97,.12);
    box-shadow:0 12px 28px rgba(23,56,59,.06);
}

.event-card-body{
    min-width:0;
    flex:1;
}

.event-card-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
}

.event-card-head h3{
    margin:0 0 6px;
}

.event-time{
    padding:6px 9px;
    border-radius:10px;
    background:#edf6f5;
    color:#176e73;
    font-size:12px;
    font-weight:800;
    white-space:nowrap;
}

.event-scope{
    display:inline-flex;
    align-items:center;
    min-height:24px;
    padding:4px 8px;
    border-radius:999px;
    font-size:10px;
    font-weight:800;
}

.event-scope-group{
    background:#e6f4f2;
    color:#176e73;
}

.event-scope-org{
    background:#f8efdd;
    color:#8b681f;
}

.event-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px 18px;
    margin-top:10px;
    color:var(--muted);
    font-size:12px;
}

.events-empty{
    min-height:320px;
    display:grid;
    place-items:center;
    align-content:center;
    padding:34px;
    border:1px dashed rgba(23,91,97,.22);
    border-radius:20px;
    text-align:center;
    background:rgba(255,255,255,.72);
}

.events-empty-icon{
    width:54px;
    height:54px;
    display:grid;
    place-items:center;
    margin-bottom:12px;
    border-radius:16px;
    background:#e6f4f2;
    color:#176e73;
}

.events-empty-icon svg,
.event-create-icon svg{
    width:24px;
    height:24px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.events-empty strong{
    font-size:17px;
    color:#294d4f;
}

.events-empty p{
    max-width:420px;
    margin:7px 0 0;
    color:var(--muted);
}

.event-create-card{
    position:sticky;
    top:96px;
    border:1px solid rgba(23,91,97,.12);
    box-shadow:0 14px 32px rgba(23,56,59,.06);
}

.event-create-title{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:18px;
}

.event-create-title h2{
    margin:2px 0 0;
    font-size:20px;
}

.event-create-icon{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    flex:0 0 44px;
    border-radius:14px;
    background:linear-gradient(145deg,#e3f4f2,#eef8f7);
    color:#176e73;
}

@media(max-width:980px){
    .events-page{
        margin:0 -20px -36px;
        padding:18px 20px 36px;
    }

    .events-grid{
        grid-template-columns:1fr;
    }

    .event-create-card{
        position:static;
    }
}

@media(max-width:620px){
    .events-page{
        margin:0 -14px -28px;
        padding:14px 14px 28px;
    }

    .event-card-head{
        display:grid;
    }

    .event-time{
        justify-self:start;
    }
}

/* =========================================================
   CazLink - Profil et annuaire membres
   ========================================================= */

.org-user-chip-link{
    color:inherit;
    padding:6px 9px;
    border-radius:13px;
    transition:background .15s ease;
}

.org-user-chip-link:hover{
    background:#edf5f4;
}

.avatar img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    border-radius:inherit;
}

/* PROFIL */

.profile-page{
    margin:0 -34px -46px;
    padding:18px 34px 46px;
    min-height:calc(100vh - 78px);
    background:
        radial-gradient(circle at 12% 15%,rgba(76,157,164,.14),transparent 30%),
        radial-gradient(circle at 90% 55%,rgba(224,183,111,.11),transparent 32%),
        linear-gradient(145deg,#f4f9f8,#eef5f6 52%,#f8f5ee);
}

.profile-heading{
    margin-top:0;
    padding-top:6px;
}

.profile-grid{
    display:grid;
    grid-template-columns:minmax(270px,.55fr) minmax(0,1.25fr);
    grid-template-rows:auto 1fr;
    grid-template-areas:
        "preview form"
        "data form";
    gap:24px;
    align-items:start;
}

.profile-preview{
    grid-area:preview;
    position:static;
    text-align:center;
    border-color:rgba(23,91,97,.12);
    box-shadow:0 14px 34px rgba(23,56,59,.07);
}

.profile-photo-large{
    width:132px;
    height:132px;
    margin:4px auto 18px;
    display:grid;
    place-items:center;
    overflow:hidden;
    border-radius:34px;
    background:linear-gradient(145deg,#1a848b,#0e5960);
    color:#fff;
    font-size:38px;
    font-weight:800;
    box-shadow:0 14px 30px rgba(15,89,96,.17);
}

.profile-photo-large img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.profile-preview h2{
    margin:0;
}

.profile-preview-job{
    margin:7px 0 2px;
    color:#526568;
}

.profile-preview-company,
.profile-email{
    display:block;
    margin-top:3px;
    color:var(--muted);
    font-size:12px;
}

.profile-bio-preview{
    margin-top:18px;
    padding-top:16px;
    border-top:1px solid var(--border);
    color:#526568;
    line-height:1.6;
    text-align:left;
}

.profile-form-card{
    grid-area:form;
    align-self:stretch;
    border-color:rgba(23,91,97,.12);
    box-shadow:0 14px 34px rgba(23,56,59,.07);
}

.profile-form-heading{
    display:flex;
    gap:12px;
    align-items:center;
    margin-bottom:22px;
}

.profile-form-heading h2{
    margin:2px 0 0;
}

.profile-form-icon{
    width:46px;
    height:46px;
    flex:0 0 46px;
    display:grid;
    place-items:center;
    border-radius:14px;
    background:#e6f4f2;
    color:#176e73;
}

.profile-form-icon svg{
    width:24px;
    height:24px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.profile-form-row{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.profile-upload-field small{
    color:var(--muted);
    font-weight:400;
}

/* MEMBRES */

.members-page{
    margin:0 -34px -46px;
    padding:26px 34px 46px;
    min-height:calc(100vh - 78px);
    background:
        radial-gradient(circle at 86% 8%,rgba(79,162,168,.16),transparent 30%),
        radial-gradient(circle at 8% 62%,rgba(223,180,105,.12),transparent 31%),
        linear-gradient(145deg,#f4f9f8 0%,#edf5f6 52%,#f8f5ee 100%);
}

.members-hero{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:30px;
    padding:30px 32px;
    border-radius:25px;
    background:linear-gradient(135deg,#115c63,#187e86);
    color:#fff;
    box-shadow:0 16px 38px rgba(15,89,96,.15);
}

.members-hero .section-label{
    color:#bde0de;
}

.members-hero h1{
    margin:5px 0 8px;
    font-size:38px;
}

.members-hero p{
    margin:0;
    color:rgba(255,255,255,.76);
}

.members-hero-stats{
    display:flex;
    gap:12px;
}

.members-hero-stats>div{
    min-width:125px;
    padding:15px 18px;
    border-radius:17px;
    background:rgba(255,255,255,.11);
}

.members-hero-stats strong,
.members-hero-stats span{
    display:block;
}

.members-hero-stats strong{
    font-size:25px;
}

.members-hero-stats span{
    margin-top:2px;
    font-size:11px;
    color:rgba(255,255,255,.72);
}

.members-summary{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:13px;
    margin:18px 0;
}

.member-summary-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:14px 17px;
    border:1px solid rgba(23,91,97,.10);
    border-radius:15px;
    background:rgba(255,255,255,.74);
}

.member-summary-card span{
    color:#5e7375;
    font-size:12px;
    font-weight:700;
}

.member-summary-card strong{
    font-size:20px;
    color:#176e73;
}

.member-grid-rich{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}

.member-card-rich{
    min-height:150px;
    align-items:flex-start;
    padding:20px;
    border-color:rgba(23,91,97,.11);
    box-shadow:0 12px 30px rgba(23,56,59,.06);
}

.member-photo{
    width:76px;
    height:76px;
    flex:0 0 76px;
    display:grid;
    place-items:center;
    overflow:hidden;
    border-radius:21px;
    background:linear-gradient(145deg,#d9eeec,#bcdeda);
    color:#176e73;
    font-size:22px;
    font-weight:800;
}

.member-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.member-card-content{
    min-width:0;
    flex:1;
}

.member-card-name{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
}

.member-card-name h3{
    margin:0;
    font-size:17px;
}

.member-role{
    flex:0 0 auto;
    padding:5px 8px;
    border-radius:999px;
    font-size:9px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.role-admin{
    background:#e2f2ef;
    color:#176e73;
}

.role-moderator{
    background:#f8eed9;
    color:#88631d;
}

.role-member{
    background:#edf0f4;
    color:#5b6972;
}

.member-job{
    margin:7px 0 1px !important;
    color:#465f61 !important;
    font-size:13px !important;
}

.member-company{
    font-size:11px !important;
}

.member-bio{
    margin:12px 0 0 !important;
    padding-top:10px;
    border-top:1px solid var(--border);
    color:#607477 !important;
    line-height:1.5;
}

@media(max-width:980px){
    .profile-grid{
        grid-template-columns:1fr;
        grid-template-rows:auto;
        grid-template-areas:
            "preview"
            "form"
            "data";
    }

    .profile-page,
    .members-page{
        margin:0 -20px -36px;
        padding-left:20px;
        padding-right:20px;
    }

    .profile-grid{
        grid-template-columns:1fr;
    }

    .profile-preview{
        position:static;
    }

    .members-hero{
        align-items:flex-start;
        flex-direction:column;
    }

    .members-hero-stats{
        width:100%;
    }

    .members-hero-stats>div{
        flex:1;
    }
}

@media(max-width:720px){
    .member-grid-rich,
    .members-summary{
        grid-template-columns:1fr;
    }

    .profile-form-row{
        grid-template-columns:1fr;
    }
}

@media(max-width:620px){
    .profile-page,
    .members-page{
        margin:0 -14px -28px;
        padding-left:14px;
        padding-right:14px;
    }

    .members-hero{
        padding:24px;
    }

    .members-hero-stats{
        display:grid;
        grid-template-columns:1fr 1fr;
    }
}

/* =========================================================
   CazLink - Avatars publications et commentaires
   ========================================================= */

.group-post-avatar{
    width:44px;
    height:44px;
    flex:0 0 44px;
    overflow:hidden;
    border-radius:13px;
}

.group-post-avatar img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.post-comment-layout{
    display:grid;
    grid-template-columns:38px 1fr;
    gap:11px;
    align-items:start;
}

.comment-avatar{
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    overflow:hidden;
    border-radius:11px;
    background:rgba(255,255,255,.72);
    color:#176e73;
    font-size:11px;
    font-weight:800;
    box-shadow:0 3px 10px rgba(23,56,59,.06);
}

.comment-avatar img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.post-comment-body{
    min-width:0;
}

@media(max-width:620px){
    .post-comment-layout{
        grid-template-columns:34px 1fr;
        gap:9px;
    }

    .comment-avatar{
        width:34px;
        height:34px;
    }
}

/* Participation aux événements */

.event-participation{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px 14px;
    margin-top:12px;
}

.event-participant-count{
    font-size:11px;
    font-weight:700;
    color:var(--muted);
}

.event-registration-confirmed{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:9px;
}

.event-going-badge{
    display:inline-flex;
    align-items:center;
    min-height:34px;
    padding:7px 11px;
    border-radius:10px;
    background:#e4f4ed;
    color:#226847;
    font-size:11px;
    font-weight:800;
}

.event-going-badge::before{
    content:"✓";
    margin-right:6px;
    font-weight:900;
}

.event-unregister{
    border:0;
    background:transparent;
    color:#8a514a;
    font-size:11px;
    font-weight:800;
    cursor:pointer;
    text-decoration:underline;
    text-underline-offset:3px;
}

.event-unregister:hover{
    color:#6f3933;
}

/* =========================================================
   Documents
   ========================================================= */

.documents-page{
    min-height:100%;
    padding-bottom:42px;
    background:
        radial-gradient(circle at 86% 8%,rgba(123,201,201,.18),transparent 31%),
        radial-gradient(circle at 10% 62%,rgba(224,195,132,.14),transparent 27%);
}

.documents-hero{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:30px;
    margin-bottom:24px;
}

.documents-hero h1{
    margin:5px 0 9px;
    font-size:34px;
    letter-spacing:-1px;
}

.documents-hero p{
    max-width:690px;
    margin:0;
    color:var(--muted);
    line-height:1.6;
}

.documents-hero-stats{
    display:flex;
    gap:10px;
}

.documents-stat{
    min-width:108px;
    padding:13px 16px;
    border:1px solid rgba(34,103,108,.11);
    border-radius:16px;
    background:rgba(255,255,255,.76);
    box-shadow:0 8px 24px rgba(24,64,67,.05);
}

.documents-stat strong{
    display:block;
    color:#176e73;
    font-size:24px;
    line-height:1;
}

.documents-stat span{
    display:block;
    margin-top:6px;
    color:var(--muted);
    font-size:11px;
    font-weight:700;
}

.documents-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 390px;
    gap:24px;
    align-items:start;
}

.documents-library{
    min-width:0;
}

.documents-library-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:20px;
    margin-bottom:16px;
}

.documents-library-head h2{
    margin:5px 0 0;
    font-size:22px;
}

.document-category-summary{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:7px;
    max-width:55%;
}

.document-category-summary span{
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:6px 9px;
    border-radius:999px;
    background:rgba(255,255,255,.82);
    color:#536d70;
    font-size:10px;
    font-weight:700;
    border:1px solid rgba(38,101,105,.09);
}

.document-category-summary b{
    display:grid;
    place-items:center;
    min-width:20px;
    height:20px;
    padding:0 5px;
    border-radius:999px;
    background:#e3f1ef;
    color:#176e73;
    font-size:10px;
}

.document-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.document-card{
    display:flex;
    flex-direction:column;
    min-width:0;
    min-height:240px;
    padding:18px;
    border-radius:19px;
    border:1px solid rgba(30,85,89,.1);
    background:rgba(255,255,255,.9);
    box-shadow:0 10px 28px rgba(25,61,65,.06);
    transition:transform .18s ease,box-shadow .18s ease;
}

.document-card:hover{
    transform:translateY(-2px);
    box-shadow:0 15px 34px rgba(25,61,65,.09);
}

.document-card-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.document-type-icon{
    width:45px;
    height:45px;
    display:grid;
    place-items:center;
    border-radius:14px;
    background:#e8f5f4;
    color:#17757a;
}

.document-type-icon svg,
.document-download svg,
.document-upload-icon svg,
.documents-empty-icon svg{
    width:23px;
    height:23px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.document-type-pdf .document-type-icon{
    background:#f8e9e5;
    color:#9a5145;
}

.document-type-image .document-type-icon{
    background:#e8f3e8;
    color:#4f7f59;
}

.document-type-word .document-type-icon{
    background:#e7eff9;
    color:#456d9a;
}

.document-type-label{
    padding:5px 8px;
    border-radius:999px;
    background:#f4f8f7;
    color:#708184;
    font-size:9px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.07em;
}

.document-card-content{
    flex:1;
    padding-top:15px;
}

.document-card h3{
    margin:0 0 11px;
    overflow:hidden;
    color:#16383b;
    font-size:15px;
    line-height:1.35;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.document-badges{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-bottom:13px;
}

.document-category,
.document-group{
    display:inline-flex;
    align-items:center;
    padding:5px 8px;
    border-radius:999px;
    background:#eef7f5;
    color:#447174;
    font-size:9px;
    font-weight:800;
}

.document-group{
    background:#f5f0e6;
    color:#79684b;
}

.document-group-global{
    background:#f1f4f4;
    color:#69797b;
}

.document-meta,
.document-size{
    margin:0;
    color:#809093;
    font-size:10px;
    line-height:1.5;
}

.document-meta strong{
    color:#556e70;
}

.document-size{
    margin-top:3px;
    font-weight:700;
}

.document-download{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-top:14px;
    padding-top:13px;
    border-top:1px solid rgba(36,91,95,.09);
    color:#17757a;
    font-size:11px;
    font-weight:800;
    text-decoration:none;
}

.document-download svg{
    width:18px;
    height:18px;
}

.documents-empty{
    display:flex;
    min-height:360px;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:40px;
    border:1px dashed rgba(36,106,110,.22);
    border-radius:22px;
    background:rgba(255,255,255,.72);
    text-align:center;
}

.documents-empty-icon{
    width:68px;
    height:68px;
    display:grid;
    place-items:center;
    margin-bottom:17px;
    border-radius:21px;
    background:linear-gradient(145deg,#e1f2ef,#f4ecd9);
    color:#17757a;
}

.documents-empty-icon svg{
    width:32px;
    height:32px;
}

.documents-empty h2{
    margin:6px 0 9px;
    font-size:22px;
}

.documents-empty p{
    max-width:500px;
    margin:0;
    color:var(--muted);
    line-height:1.6;
}

.document-upload-card{
    position:sticky;
    top:96px;
    padding:20px;
    border-radius:21px;
    border:1px solid rgba(30,85,89,.1);
    background:rgba(255,255,255,.93);
    box-shadow:0 12px 32px rgba(25,61,65,.07);
}

.document-upload-heading{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:19px;
}

.document-upload-icon{
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    flex:0 0 46px;
    border-radius:14px;
    background:#e5f4f2;
    color:#17757a;
}

.document-upload-heading h2{
    margin:4px 0 0;
    font-size:20px;
}

.document-upload-form{
    display:grid;
    gap:14px;
}

.document-upload-form label{
    display:grid;
    gap:6px;
}

.document-upload-form label > span{
    color:#203b3e;
    font-size:11px;
    font-weight:800;
}

.document-upload-form input,
.document-upload-form select{
    width:100%;
    min-height:43px;
    padding:10px 11px;
    border:1px solid #cbdadb;
    border-radius:11px;
    background:#fff;
    color:#1f3638;
}

.document-upload-form input[type="file"]{
    padding:8px;
}

.document-upload-note{
    display:grid;
    gap:2px;
    padding:11px 12px;
    border-radius:12px;
    background:#f4f8f7;
}

.document-upload-note strong{
    color:#486769;
    font-size:10px;
}

.document-upload-note span{
    color:#7c8b8d;
    font-size:10px;
}

.document-upload-button{
    width:100%;
    min-height:44px;
}

@media(max-width:1100px){
    .documents-layout{
        grid-template-columns:1fr;
    }

    .document-upload-card{
        position:static;
    }
}

@media(max-width:760px){
    .documents-hero{
        align-items:flex-start;
        flex-direction:column;
    }

    .documents-hero-stats{
        width:100%;
    }

    .documents-stat{
        flex:1;
    }

    .documents-library-head{
        flex-direction:column;
    }

    .document-category-summary{
        max-width:none;
        justify-content:flex-start;
    }

    .document-grid{
        grid-template-columns:1fr;
    }
}

/* Documents récents dans la page Groupe */

.group-documents-card{
    border-top:3px solid #78b9ac;
}

.group-document-mini{
    display:grid;
    grid-template-columns:40px minmax(0,1fr) 18px;
    gap:10px;
    align-items:center;
    padding:10px 0;
    color:inherit;
    text-decoration:none;
    border-bottom:1px solid rgba(30,85,89,.08);
}

.group-document-mini:hover .group-document-main strong{
    color:#17757a;
}

.group-document-icon{
    width:40px;
    height:40px;
    display:grid;
    place-items:center;
    border-radius:12px;
    background:#e8f5f4;
    color:#17757a;
}

.group-document-icon svg{
    width:20px;
    height:20px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.group-document-pdf .group-document-icon{
    background:#f8e9e5;
    color:#9a5145;
}

.group-document-image .group-document-icon{
    background:#e8f3e8;
    color:#4f7f59;
}

.group-document-word .group-document-icon{
    background:#e7eff9;
    color:#456d9a;
}

.group-document-main{
    min-width:0;
    display:grid;
    gap:3px;
}

.group-document-main strong{
    overflow:hidden;
    color:#203b3e;
    font-size:11px;
    line-height:1.3;
    text-overflow:ellipsis;
    white-space:nowrap;
    transition:color .15s ease;
}

.group-document-main span{
    overflow:hidden;
    color:#819092;
    font-size:9px;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.group-document-arrow{
    color:#17757a;
    font-size:15px;
    font-weight:800;
    text-align:right;
}

.group-side-empty.compact{
    min-height:0;
    padding:12px 0 15px;
}

/* =========================================================
   CazLink - Formulaires
   ========================================================= */

.forms-page,
.form-answer-page,
.form-results-page{
    min-height:100%;
    padding-bottom:44px;
    background:
        radial-gradient(circle at 86% 8%,rgba(122,193,190,.19),transparent 30%),
        radial-gradient(circle at 8% 62%,rgba(229,191,117,.13),transparent 28%);
}

.forms-hero,
.form-results-hero{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:30px;
    margin-bottom:26px;
}

.forms-hero h1,
.form-results-hero h1{
    margin:5px 0 9px;
    color:#16383b;
    font-size:34px;
    letter-spacing:-1px;
}

.forms-hero p,
.form-results-hero p{
    max-width:690px;
    margin:0;
    color:var(--muted);
    line-height:1.6;
}

.forms-hero-stats{
    display:flex;
    gap:10px;
}

.forms-stat{
    min-width:108px;
    padding:13px 16px;
    border:1px solid rgba(34,103,108,.11);
    border-radius:16px;
    background:rgba(255,255,255,.78);
    box-shadow:0 8px 24px rgba(24,64,67,.05);
}

.forms-stat strong,
.form-results-count strong{
    display:block;
    color:#176e73;
    font-size:24px;
    line-height:1;
}

.forms-stat span,
.form-results-count span{
    display:block;
    margin-top:6px;
    color:var(--muted);
    font-size:11px;
    font-weight:700;
}

.forms-stat-accent strong{
    color:#527d5e;
}

.forms-stat-warm strong{
    color:#9a6c33;
}

.forms-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 390px;
    gap:24px;
    align-items:start;
}

.forms-library{
    min-width:0;
}

.forms-library-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    margin-bottom:16px;
}

.forms-library-head h2{
    margin:5px 0 0;
    font-size:22px;
}

.forms-participation-summary{
    padding:7px 10px;
    border:1px solid rgba(39,104,108,.09);
    border-radius:999px;
    background:rgba(255,255,255,.82);
    color:#607779;
    font-size:10px;
    font-weight:800;
}

.forms-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.form-card{
    display:flex;
    flex-direction:column;
    min-width:0;
    min-height:270px;
    padding:19px;
    border:1px solid rgba(30,85,89,.10);
    border-radius:20px;
    background:rgba(255,255,255,.92);
    box-shadow:0 11px 30px rgba(25,61,65,.06);
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}

.form-card:hover{
    transform:translateY(-2px);
    border-color:rgba(32,113,118,.20);
    box-shadow:0 16px 36px rgba(25,61,65,.10);
}

.form-card-answered{
    background:
        linear-gradient(145deg,rgba(245,251,248,.96),rgba(255,255,255,.94));
}

.form-card-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.form-card-icon,
.form-create-icon,
.form-answer-hero-icon,
.forms-empty-icon,
.form-submitted-check{
    display:grid;
    place-items:center;
    color:#17757a;
    background:linear-gradient(145deg,#e4f4f1,#f6efdf);
}

.form-card-icon{
    width:46px;
    height:46px;
    border-radius:14px;
}

.form-card-icon svg,
.form-create-icon svg,
.form-answer-hero-icon svg,
.forms-empty-icon svg,
.form-submitted-check svg{
    width:23px;
    height:23px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.form-status{
    padding:6px 9px;
    border-radius:999px;
    font-size:9px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.form-status-open{
    color:#8a652d;
    background:#fbf1df;
}

.form-status-answered{
    color:#37704a;
    background:#e6f3e9;
}

.form-card-content{
    flex:1;
    padding-top:16px;
}

.form-card-content h3{
    margin:0 0 9px;
    color:#173b3e;
    font-size:17px;
    line-height:1.35;
}

.form-card-description{
    margin:0;
    color:#677d7f;
    font-size:12px;
    line-height:1.55;
}

.form-card-meta{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-top:15px;
}

.form-card-meta span{
    padding:5px 8px;
    border-radius:999px;
    background:#f3f7f6;
    color:#708184;
    font-size:9px;
    font-weight:700;
}

.form-card-actions{
    display:grid;
    gap:8px;
    margin-top:17px;
    padding-top:14px;
    border-top:1px solid rgba(36,91,95,.09);
}

.form-card-primary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    color:#17757a;
    font-size:11px;
    font-weight:800;
    text-decoration:none;
}

.form-card-results{
    color:#708184;
    font-size:10px;
    font-weight:700;
    text-decoration:none;
}

.form-card-results:hover{
    color:#17757a;
}

.forms-empty{
    display:flex;
    min-height:360px;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:40px;
    border:1px dashed rgba(36,106,110,.22);
    border-radius:22px;
    background:rgba(255,255,255,.74);
    text-align:center;
}

.forms-empty-icon{
    width:68px;
    height:68px;
    margin-bottom:17px;
    border-radius:21px;
}

.forms-empty-icon svg{
    width:32px;
    height:32px;
}

.forms-empty h2{
    margin:6px 0 9px;
    font-size:22px;
}

.forms-empty p{
    max-width:510px;
    margin:0;
    color:var(--muted);
    line-height:1.6;
}

.form-create-card{
    position:sticky;
    top:96px;
    padding:20px;
    border:1px solid rgba(30,85,89,.10);
    border-radius:21px;
    background:rgba(255,255,255,.94);
    box-shadow:0 12px 32px rgba(25,61,65,.07);
}

.form-create-heading{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:19px;
}

.form-create-icon{
    width:46px;
    height:46px;
    flex:0 0 46px;
    border-radius:14px;
}

.form-create-heading h2{
    margin:4px 0 0;
    font-size:20px;
}

.form-create-form{
    display:grid;
    gap:14px;
}

.form-create-form label{
    display:grid;
    gap:6px;
}

.form-create-form label > span{
    color:#203b3e;
    font-size:11px;
    font-weight:800;
}

.form-create-form label small{
    color:#899799;
    font-weight:600;
}

.form-create-form input,
.form-create-form textarea,
.form-question-card textarea{
    width:100%;
    padding:11px 12px;
    border:1px solid #cbdadb;
    border-radius:11px;
    background:#fff;
    color:#1f3638;
    resize:vertical;
}

.form-create-form input{
    min-height:43px;
}

.form-create-form input:focus,
.form-create-form textarea:focus,
.form-question-card textarea:focus{
    outline:none;
    border-color:#78b9ac;
    box-shadow:0 0 0 3px rgba(83,156,151,.10);
}

.form-create-note{
    display:grid;
    gap:3px;
    padding:11px 12px;
    border-radius:12px;
    background:#f4f8f7;
}

.form-create-note strong{
    color:#486769;
    font-size:10px;
}

.form-create-note span{
    color:#7c8b8d;
    font-size:10px;
    line-height:1.45;
}

.form-create-button{
    width:100%;
}

.form-back-link{
    display:inline-flex;
    margin-bottom:16px;
    color:#17757a;
    font-size:11px;
    font-weight:800;
    text-decoration:none;
}

.form-answer-hero{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    gap:18px;
    align-items:center;
    margin-bottom:22px;
    padding:26px;
    border:1px solid rgba(30,85,89,.10);
    border-radius:24px;
    background:
        linear-gradient(145deg,rgba(255,255,255,.92),rgba(240,248,246,.91));
    box-shadow:0 12px 32px rgba(25,61,65,.06);
}

.form-answer-hero-icon{
    width:60px;
    height:60px;
    border-radius:18px;
}

.form-answer-hero-icon svg{
    width:28px;
    height:28px;
}

.form-answer-hero-copy h1{
    margin:4px 0 7px;
    color:#173b3e;
    font-size:29px;
}

.form-answer-hero-copy p{
    max-width:720px;
    margin:0;
    color:var(--muted);
    line-height:1.55;
}

.form-answer-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:13px;
}

.form-answer-meta span{
    padding:5px 8px;
    border-radius:999px;
    background:#fff;
    color:#698083;
    font-size:9px;
    font-weight:700;
}

.form-results-shortcut{
    display:grid;
    min-width:120px;
    gap:4px;
    padding:13px 15px;
    border:1px solid rgba(31,107,112,.10);
    border-radius:15px;
    background:#fff;
    color:#607779;
    font-size:10px;
    font-weight:700;
    text-align:center;
    text-decoration:none;
}

.form-results-shortcut strong{
    color:#17757a;
    font-size:22px;
}

.form-questionnaire{
    display:grid;
    gap:14px;
    max-width:900px;
}

.form-question-card{
    display:grid;
    grid-template-columns:42px minmax(0,1fr);
    gap:15px;
    padding:20px;
    border:1px solid rgba(30,85,89,.10);
    border-radius:19px;
    background:rgba(255,255,255,.93);
    box-shadow:0 9px 26px rgba(25,61,65,.05);
}

.form-question-number{
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    border-radius:12px;
    background:#e8f4f2;
    color:#17757a;
    font-size:13px;
    font-weight:900;
}

.form-question-card label{
    display:grid;
    gap:10px;
}

.form-question-card label > span{
    color:#203b3e;
    font-size:14px;
    font-weight:800;
}

.form-questionnaire-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-top:4px;
    padding:18px 20px;
    border-radius:18px;
    background:#edf6f4;
}

.form-questionnaire-footer div{
    display:grid;
    gap:3px;
}

.form-questionnaire-footer strong{
    color:#31595c;
    font-size:11px;
}

.form-questionnaire-footer span{
    color:#73888a;
    font-size:10px;
}

.form-submitted-card{
    max-width:920px;
    padding:24px;
    border:1px solid rgba(54,121,76,.12);
    border-radius:22px;
    background:
        linear-gradient(145deg,rgba(244,251,246,.97),rgba(255,255,255,.94));
    box-shadow:0 11px 30px rgba(35,87,52,.05);
}

.form-submitted-heading{
    display:flex;
    gap:15px;
    align-items:flex-start;
}

.form-submitted-check{
    width:50px;
    height:50px;
    flex:0 0 50px;
    border-radius:15px;
    background:#e2f2e6;
    color:#39714b;
}

.form-submitted-heading h2{
    margin:4px 0 5px;
    color:#244b32;
}

.form-submitted-heading p{
    margin:0;
    color:#6e8274;
    font-size:12px;
}

.form-answer-summary{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin-top:22px;
}

.form-answer-summary-item,
.form-result-answer{
    padding:16px;
    border:1px solid rgba(35,95,65,.08);
    border-radius:15px;
    background:rgba(255,255,255,.82);
}

.form-answer-summary-item span,
.form-result-answer span{
    color:#7e9290;
    font-size:9px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.form-answer-summary-item h3,
.form-result-answer h3{
    margin:6px 0 8px;
    color:#244447;
    font-size:12px;
}

.form-answer-summary-item p,
.form-result-answer p{
    margin:0;
    color:#647779;
    font-size:12px;
    line-height:1.55;
    white-space:pre-line;
}

.form-results-count{
    min-width:132px;
    padding:16px 18px;
    border:1px solid rgba(34,103,108,.11);
    border-radius:17px;
    background:rgba(255,255,255,.80);
    box-shadow:0 8px 24px rgba(24,64,67,.05);
}

.form-results-list{
    display:grid;
    gap:15px;
    max-width:1000px;
}

.form-result-card{
    padding:21px;
    border:1px solid rgba(30,85,89,.10);
    border-radius:20px;
    background:rgba(255,255,255,.93);
    box-shadow:0 10px 28px rgba(25,61,65,.06);
}

.form-result-header{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    gap:13px;
    align-items:center;
    padding-bottom:16px;
    border-bottom:1px solid rgba(36,91,95,.08);
}

.form-result-avatar{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border-radius:14px;
    background:linear-gradient(145deg,#e3f3f1,#f5ecd9);
    color:#176e73;
    font-size:12px;
    font-weight:900;
}

.form-result-header h2{
    margin:0 0 4px;
    color:#203e41;
    font-size:15px;
}

.form-result-header p{
    margin:0;
    color:#829092;
    font-size:10px;
}

.form-result-badge{
    padding:6px 9px;
    border-radius:999px;
    background:#eef6f4;
    color:#527779;
    font-size:9px;
    font-weight:800;
}

.form-result-answers{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-top:16px;
}

.form-results-empty{
    max-width:900px;
}

@media(max-width:1100px){
    .forms-layout{
        grid-template-columns:1fr;
    }

    .form-create-card{
        position:static;
    }
}

@media(max-width:760px){
    .forms-hero,
    .form-results-hero{
        align-items:flex-start;
        flex-direction:column;
    }

    .forms-hero-stats{
        width:100%;
    }

    .forms-stat{
        flex:1;
    }

    .forms-library-head{
        flex-direction:column;
    }

    .forms-grid,
    .form-answer-summary,
    .form-result-answers{
        grid-template-columns:1fr;
    }

    .form-answer-hero{
        grid-template-columns:1fr;
    }

    .form-results-shortcut{
        justify-self:start;
    }
}

@media(max-width:620px){
    .forms-hero-stats{
        display:grid;
        grid-template-columns:repeat(3,1fr);
    }

    .forms-stat{
        min-width:0;
        padding:11px;
    }

    .forms-stat strong{
        font-size:20px;
    }

    .form-question-card{
        grid-template-columns:1fr;
    }

    .form-questionnaire-footer{
        align-items:stretch;
        flex-direction:column;
    }

    .form-result-header{
        grid-template-columns:auto 1fr;
    }

    .form-result-badge{
        grid-column:1 / -1;
        justify-self:start;
    }
}

/* =========================================================
   CazLink - Formulaire réponse V2
   ========================================================= */

.form-answer-page-v2{
    margin:0 -34px -46px;
    padding:18px 34px 50px;
    min-height:calc(100vh - 78px);
    background:
        radial-gradient(circle at 82% 17%,rgba(61,155,156,.18),transparent 30%),
        radial-gradient(circle at 16% 74%,rgba(225,181,99,.17),transparent 31%),
        linear-gradient(145deg,#f2f8f7 0%,#eef5f5 52%,#f8f3e8 100%);
}

.form-answer-hero-v2{
    margin-bottom:24px;
    padding:28px 30px;
    border:none;
    color:#fff;
    background:
        radial-gradient(circle at 86% 20%,rgba(255,255,255,.14),transparent 28%),
        linear-gradient(135deg,#125b61 0%,#17777d 58%,#2f8c89 100%);
    box-shadow:0 18px 38px rgba(20,72,76,.18);
}

.form-answer-hero-v2 .section-label{
    color:rgba(255,255,255,.72);
}

.form-answer-hero-v2 .form-answer-hero-icon{
    color:#fff;
    background:rgba(255,255,255,.14);
}

.form-answer-hero-v2 .form-answer-hero-copy h1{
    color:#fff;
}

.form-answer-hero-v2 .form-answer-hero-copy p{
    color:rgba(255,255,255,.82);
}

.form-answer-hero-v2 .form-answer-meta span{
    color:rgba(255,255,255,.84);
    background:rgba(255,255,255,.12);
}

.form-answer-hero-v2 .form-results-shortcut{
    border-color:rgba(255,255,255,.18);
    color:rgba(255,255,255,.82);
    background:rgba(255,255,255,.12);
}

.form-answer-hero-v2 .form-results-shortcut strong{
    color:#fff;
}

.form-answer-layout{
    display:grid;
    grid-template-columns:minmax(0,1.55fr) minmax(280px,.55fr);
    gap:26px;
    align-items:start;
}

.form-answer-main{
    min-width:0;
}

.form-questionnaire-intro{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-bottom:14px;
    padding:0 4px;
}

.form-questionnaire-intro h2{
    margin:4px 0 0;
    color:#173b3e;
    font-size:21px;
}

.form-questionnaire-count{
    padding:8px 11px;
    border-radius:999px;
    color:#176e73;
    background:#dff0ed;
    font-size:10px;
    font-weight:900;
}

.form-questionnaire-v2{
    max-width:none;
}

.form-question-card{
    position:relative;
    overflow:hidden;
    padding:21px;
    border:none;
    box-shadow:0 13px 30px rgba(25,61,65,.08);
}

.form-question-card::before{
    content:"";
    position:absolute;
    inset:0 auto 0 0;
    width:5px;
}

.form-question-card-teal{
    background:
        linear-gradient(145deg,rgba(255,255,255,.98),rgba(238,248,246,.94));
}

.form-question-card-teal::before{
    background:#61aaa2;
}

.form-question-card-sand{
    background:
        linear-gradient(145deg,rgba(255,255,255,.98),rgba(251,246,235,.94));
}

.form-question-card-sand::before{
    background:#d7ad65;
}

.form-question-card-teal .form-question-number{
    color:#176e73;
    background:#dff1ee;
}

.form-question-card-sand .form-question-number{
    color:#91662f;
    background:#f7ead3;
}

.form-question-card label > span{
    font-size:15px;
    line-height:1.4;
}

.form-question-card textarea{
    min-height:116px;
    background:rgba(255,255,255,.94);
}

.form-questionnaire-footer-v2{
    padding:20px 22px;
    background:
        linear-gradient(135deg,#dff1ed,#edf6f3);
    box-shadow:0 10px 26px rgba(25,61,65,.06);
}

.form-answer-side{
    position:sticky;
    top:96px;
    display:grid;
    gap:15px;
}

.form-answer-side-card{
    padding:20px;
    border:1px solid rgba(28,91,94,.10);
    border-radius:20px;
    background:rgba(255,255,255,.92);
    box-shadow:0 12px 30px rgba(25,61,65,.07);
}

.form-answer-side-card-main{
    background:
        linear-gradient(145deg,rgba(255,255,255,.96),rgba(231,245,242,.92));
}

.form-answer-side-card-main h2{
    margin:5px 0 18px;
    color:#173b3e;
    font-size:20px;
}

.form-answer-side-stat{
    display:flex;
    align-items:center;
    gap:12px;
    padding:12px 0;
    border-top:1px solid rgba(31,92,96,.08);
}

.form-answer-side-stat strong{
    min-width:42px;
    color:#17757a;
    font-size:27px;
    line-height:1;
}

.form-answer-side-stat span{
    color:#667d7f;
    font-size:11px;
    font-weight:700;
}

.form-answer-side-card-note{
    display:flex;
    gap:13px;
    background:
        linear-gradient(145deg,#fffaf0,#fff);
}

.form-answer-side-icon{
    width:43px;
    height:43px;
    display:grid;
    place-items:center;
    flex:0 0 43px;
    border-radius:13px;
    color:#956b31;
    background:#f7e9cf;
}

.form-answer-side-icon svg{
    width:21px;
    height:21px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.form-answer-side-card-note h3{
    margin:4px 0 6px;
    color:#5a482f;
    font-size:14px;
}

.form-answer-side-card-note p,
.form-answer-side-card-org p{
    margin:0;
    color:#778486;
    font-size:10px;
    line-height:1.55;
}

.form-answer-side-card-org{
    border-left:4px solid #6aaca5;
}

.form-answer-side-card-org strong{
    display:block;
    margin:6px 0;
    color:#25494c;
    font-size:15px;
}

@media(max-width:1100px){
    .form-answer-layout{
        grid-template-columns:1fr;
    }

    .form-answer-side{
        position:static;
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:980px){
    .form-answer-page-v2{
        margin:0 -20px -36px;
        padding:18px 20px 38px;
    }
}

@media(max-width:760px){
    .form-answer-side{
        grid-template-columns:1fr;
    }
}

@media(max-width:620px){
    .form-answer-page-v2{
        margin:0 -14px -28px;
        padding:14px 14px 30px;
    }

    .form-answer-hero-v2{
        padding:22px;
    }

    .form-questionnaire-intro{
        align-items:flex-start;
    }
}

/* =========================================================
   CazLink - Réponses formulaires V2
   ========================================================= */

.form-results-page-v2{
    margin:0 -34px -46px;
    padding:18px 34px 50px;
    min-height:calc(100vh - 78px);
    background:
        radial-gradient(circle at 82% 15%,rgba(61,155,156,.16),transparent 30%),
        radial-gradient(circle at 14% 72%,rgba(225,181,99,.14),transparent 28%),
        linear-gradient(145deg,#f3f8f7 0%,#edf5f5 52%,#f8f3e8 100%);
}

.form-results-hero-v2{
    margin-bottom:24px;
    padding:28px 30px;
    border:none;
    color:#fff;
    background:
        radial-gradient(circle at 86% 20%,rgba(255,255,255,.14),transparent 28%),
        linear-gradient(135deg,#174f55 0%,#1d6f76 58%,#3c9895 100%);
    box-shadow:0 18px 38px rgba(20,72,76,.16);
}

.form-results-hero-v2 .section-label{
    color:rgba(255,255,255,.72);
}

.form-results-hero-v2 h1{
    color:#fff;
}

.form-results-hero-v2 p{
    color:rgba(255,255,255,.84);
}

.form-results-hero-main{
    min-width:0;
}

.form-results-hero-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:14px;
}

.form-results-hero-meta span{
    padding:6px 9px;
    border-radius:999px;
    background:rgba(255,255,255,.12);
    color:rgba(255,255,255,.84);
    font-size:10px;
    font-weight:700;
}

.form-results-count-v2{
    min-width:120px;
    border-color:rgba(255,255,255,.18);
    background:rgba(255,255,255,.12);
    box-shadow:none;
}

.form-results-count-v2 strong,
.form-results-count-v2 span{
    color:#fff;
}

.form-result-card-v2{
    padding:22px;
    border:none;
    border-radius:22px;
    background:rgba(255,255,255,.94);
    box-shadow:0 14px 34px rgba(25,61,65,.08);
}

.form-result-header-v2{
    gap:15px;
    padding-bottom:18px;
    border-bottom:1px solid rgba(36,91,95,.08);
}

.form-result-identity{
    min-width:0;
}

.form-result-identity h2{
    margin:4px 0 5px;
    color:#1c3d40;
    font-size:22px;
}

.form-result-identity p{
    margin:0;
    color:#76898b;
    font-size:11px;
}

.form-result-badge-v2{
    color:#176e73;
    background:#e8f4f2;
}

.form-result-answer{
    background:rgba(250,252,252,.88);
}

@media(max-width:980px){
    .form-results-page-v2{
        margin:0 -20px -36px;
        padding:18px 20px 38px;
    }
}

@media(max-width:620px){
    .form-results-page-v2{
        margin:0 -14px -28px;
        padding:14px 14px 30px;
    }

    .form-results-hero-v2{
        padding:22px;
    }
}

/* =========================================================
   CazLink - Formulaires harmonisés avec le dashboard
   ========================================================= */

.forms-page-dashboard{
    margin:0 -34px -46px;
    padding:0 34px 50px;
    min-height:calc(100vh - 78px);
    background:
        radial-gradient(circle at 85% 18%,rgba(84,167,168,.12),transparent 30%),
        radial-gradient(circle at 12% 75%,rgba(225,183,101,.12),transparent 28%),
        #f4f7f8;
}

.forms-dashboard-hero{
    position:relative;
    overflow:hidden;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:32px;
    align-items:center;
    margin-bottom:22px;
    padding:38px 40px;
    border-radius:27px;
    color:#fff;
    background:
        radial-gradient(circle at 96% 95%,rgba(255,255,255,.09) 0 105px,transparent 106px),
        linear-gradient(135deg,#10565d 0%,#197980 55%,#4ca8a6 100%);
    box-shadow:0 17px 40px rgba(20,68,72,.14);
}

.forms-dashboard-copy{
    position:relative;
    z-index:1;
}

.forms-dashboard-label{
    color:rgba(255,255,255,.72);
    font-size:11px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.forms-dashboard-hero h1{
    margin:10px 0 12px;
    color:#fff;
    font-size:clamp(36px,4vw,52px);
    letter-spacing:-.04em;
}

.forms-dashboard-hero p{
    max-width:720px;
    margin:0;
    color:rgba(255,255,255,.84);
    font-size:15px;
    line-height:1.65;
}

.forms-dashboard-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:22px;
}

.forms-dashboard-action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:0 16px;
    border-radius:11px;
    font-size:12px;
    font-weight:900;
    text-decoration:none;
}

.forms-dashboard-action.primary{
    color:#12565d;
    background:#fff;
}

.forms-dashboard-action.secondary{
    border:1px solid rgba(255,255,255,.28);
    color:#fff;
    background:rgba(255,255,255,.08);
}

.forms-dashboard-stats{
    display:grid;
    grid-template-columns:repeat(3,120px);
    gap:12px;
}

.forms-dashboard-stat{
    min-height:132px;
    padding:17px;
    border:1px solid rgba(255,255,255,.20);
    border-radius:18px;
    background:rgba(255,255,255,.13);
    backdrop-filter:blur(5px);
}

.forms-dashboard-stat-icon{
    width:31px;
    height:31px;
    display:grid;
    place-items:center;
    margin-bottom:14px;
    color:#fff;
}

.forms-dashboard-stat-icon svg,
.forms-dashboard-highlight-icon svg{
    width:22px;
    height:22px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.forms-dashboard-stat strong{
    display:block;
    color:#fff;
    font-size:30px;
    line-height:1;
}

.forms-dashboard-stat span{
    display:block;
    margin-top:7px;
    color:rgba(255,255,255,.78);
    font-size:10px;
    font-weight:700;
}

.forms-dashboard-highlights{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:15px;
    margin-bottom:24px;
}

.forms-dashboard-highlight{
    position:relative;
    overflow:hidden;
    min-height:170px;
    padding:22px;
    border:1px solid rgba(36,90,94,.10);
    border-radius:20px;
    box-shadow:0 9px 25px rgba(25,61,65,.05);
}

.forms-dashboard-highlight::after{
    content:"";
    position:absolute;
    right:-25px;
    bottom:-28px;
    width:95px;
    height:95px;
    border-radius:50%;
    background:rgba(255,255,255,.50);
}

.forms-highlight-community{
    background:#edf8f5;
}

.forms-highlight-survey{
    background:#fff8ec;
}

.forms-highlight-results{
    background:#eef5fb;
}

.forms-dashboard-highlight-icon{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    margin-bottom:13px;
    border-radius:13px;
    color:#176e73;
    background:rgba(255,255,255,.80);
}

.forms-dashboard-highlight > span{
    color:#75888a;
    font-size:9px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.forms-dashboard-highlight h2{
    margin:8px 0 7px;
    color:#173a3d;
    font-size:20px;
}

.forms-dashboard-highlight p{
    max-width:90%;
    margin:0;
    color:#687c7e;
    font-size:11px;
    line-height:1.55;
}

.forms-layout-dashboard{
    margin-top:0;
}

.form-card-dashboard{
    border:none;
    box-shadow:0 12px 30px rgba(25,61,65,.08);
}

.form-create-card-dashboard{
    border:none;
    box-shadow:0 14px 35px rgba(25,61,65,.09);
}

.form-results-dashboard-page{
    margin:0 -34px -46px;
    padding:18px 34px 50px;
    min-height:calc(100vh - 78px);
    background:
        radial-gradient(circle at 85% 16%,rgba(84,167,168,.12),transparent 30%),
        radial-gradient(circle at 12% 75%,rgba(225,183,101,.12),transparent 28%),
        #f4f7f8;
}

.form-results-dashboard-hero{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:32px;
    align-items:center;
    margin-bottom:20px;
    padding:34px 38px;
    border-radius:26px;
    color:#fff;
    background:
        radial-gradient(circle at 96% 90%,rgba(255,255,255,.09) 0 100px,transparent 101px),
        linear-gradient(135deg,#10565d 0%,#197980 55%,#4ca8a6 100%);
    box-shadow:0 17px 38px rgba(20,68,72,.14);
}

.form-results-dashboard-hero h1{
    margin:9px 0 11px;
    color:#fff;
    font-size:38px;
    letter-spacing:-.03em;
}

.form-results-dashboard-hero p{
    margin:0;
    color:rgba(255,255,255,.84);
    line-height:1.6;
}

.form-results-dashboard-stats{
    display:grid;
    grid-template-columns:repeat(2,125px);
    gap:12px;
}

.form-results-dashboard-stats > div{
    min-height:120px;
    padding:18px;
    border:1px solid rgba(255,255,255,.19);
    border-radius:17px;
    background:rgba(255,255,255,.13);
}

.form-results-dashboard-stats strong{
    display:block;
    color:#fff;
    font-size:31px;
}

.form-results-dashboard-stats span{
    display:block;
    margin-top:7px;
    color:rgba(255,255,255,.78);
    font-size:10px;
    font-weight:700;
}

.form-results-dashboard-summary{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:15px;
    margin-bottom:18px;
}

.form-results-summary-card{
    padding:20px 22px;
    border:1px solid rgba(31,88,92,.09);
    border-radius:19px;
    box-shadow:0 9px 25px rgba(25,61,65,.05);
}

.form-results-summary-card.summary-community{
    background:#edf8f5;
}

.form-results-summary-card.summary-responses{
    background:#fff8ec;
}

.form-results-summary-card > span{
    color:#768789;
    font-size:9px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.form-results-summary-card h2{
    margin:7px 0 6px;
    color:#183b3e;
    font-size:18px;
}

.form-results-summary-card p{
    margin:0;
    color:#6d7f81;
    font-size:11px;
}

.form-result-card-dashboard{
    max-width:none;
    border:none;
    background:rgba(255,255,255,.95);
    box-shadow:0 13px 32px rgba(25,61,65,.08);
}

.form-results-list-dashboard{
    max-width:none;
}

@media(max-width:1150px){
    .forms-dashboard-hero,
    .form-results-dashboard-hero{
        grid-template-columns:1fr;
    }

    .forms-dashboard-stats{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .form-results-dashboard-stats{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:980px){
    .forms-page-dashboard,
    .form-results-dashboard-page{
        margin-left:-20px;
        margin-right:-20px;
        padding-left:20px;
        padding-right:20px;
    }
}

@media(max-width:760px){
    .forms-dashboard-highlights{
        grid-template-columns:1fr;
    }

    .forms-dashboard-hero{
        padding:28px;
    }

    .form-results-dashboard-summary{
        grid-template-columns:1fr;
    }
}

@media(max-width:620px){
    .forms-page-dashboard,
    .form-results-dashboard-page{
        margin-left:-14px;
        margin-right:-14px;
        padding-left:14px;
        padding-right:14px;
    }

    .forms-dashboard-stats{
        grid-template-columns:1fr 1fr;
    }

    .forms-dashboard-stat:last-child{
        grid-column:1 / -1;
    }

    .form-results-dashboard-stats{
        grid-template-columns:1fr 1fr;
    }

    .form-results-dashboard-hero{
        padding:24px;
    }
}

/* =========================================================
   CazLink - Formulaires harmonisés avec le dashboard
   ========================================================= */

.forms-page-dashboard{
    margin:0 -34px -46px;
    padding:0 34px 50px;
    min-height:calc(100vh - 78px);
    background:
        radial-gradient(circle at 85% 18%,rgba(84,167,168,.12),transparent 30%),
        radial-gradient(circle at 12% 75%,rgba(225,183,101,.12),transparent 28%),
        #f4f7f8;
}

.forms-dashboard-hero{
    position:relative;
    overflow:hidden;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:32px;
    align-items:center;
    margin-bottom:22px;
    padding:38px 40px;
    border-radius:27px;
    color:#fff;
    background:
        radial-gradient(circle at 96% 95%,rgba(255,255,255,.09) 0 105px,transparent 106px),
        linear-gradient(135deg,#10565d 0%,#197980 55%,#4ca8a6 100%);
    box-shadow:0 17px 40px rgba(20,68,72,.14);
}

.forms-dashboard-copy{
    position:relative;
    z-index:1;
}

.forms-dashboard-label{
    color:rgba(255,255,255,.72);
    font-size:11px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.forms-dashboard-hero h1{
    margin:10px 0 12px;
    color:#fff;
    font-size:clamp(36px,4vw,52px);
    letter-spacing:-.04em;
}

.forms-dashboard-hero p{
    max-width:720px;
    margin:0;
    color:rgba(255,255,255,.84);
    font-size:15px;
    line-height:1.65;
}

.forms-dashboard-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:22px;
}

.forms-dashboard-action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:0 16px;
    border-radius:11px;
    font-size:12px;
    font-weight:900;
    text-decoration:none;
}

.forms-dashboard-action.primary{
    color:#12565d;
    background:#fff;
}

.forms-dashboard-action.secondary{
    border:1px solid rgba(255,255,255,.28);
    color:#fff;
    background:rgba(255,255,255,.08);
}

.forms-dashboard-stats{
    display:grid;
    grid-template-columns:repeat(3,120px);
    gap:12px;
}

.forms-dashboard-stat{
    min-height:132px;
    padding:17px;
    border:1px solid rgba(255,255,255,.20);
    border-radius:18px;
    background:rgba(255,255,255,.13);
    backdrop-filter:blur(5px);
}

.forms-dashboard-stat-icon{
    width:31px;
    height:31px;
    display:grid;
    place-items:center;
    margin-bottom:14px;
    color:#fff;
}

.forms-dashboard-stat-icon svg,
.forms-dashboard-highlight-icon svg{
    width:22px;
    height:22px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.forms-dashboard-stat strong{
    display:block;
    color:#fff;
    font-size:30px;
    line-height:1;
}

.forms-dashboard-stat span{
    display:block;
    margin-top:7px;
    color:rgba(255,255,255,.78);
    font-size:10px;
    font-weight:700;
}

.forms-dashboard-highlights{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:15px;
    margin-bottom:24px;
}

.forms-dashboard-highlight{
    position:relative;
    overflow:hidden;
    min-height:170px;
    padding:22px;
    border:1px solid rgba(36,90,94,.10);
    border-radius:20px;
    box-shadow:0 9px 25px rgba(25,61,65,.05);
}

.forms-dashboard-highlight::after{
    content:"";
    position:absolute;
    right:-25px;
    bottom:-28px;
    width:95px;
    height:95px;
    border-radius:50%;
    background:rgba(255,255,255,.50);
}

.forms-highlight-community{
    background:#edf8f5;
}

.forms-highlight-survey{
    background:#fff8ec;
}

.forms-highlight-results{
    background:#eef5fb;
}

.forms-dashboard-highlight-icon{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    margin-bottom:13px;
    border-radius:13px;
    color:#176e73;
    background:rgba(255,255,255,.80);
}

.forms-dashboard-highlight > span{
    color:#75888a;
    font-size:9px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.forms-dashboard-highlight h2{
    margin:8px 0 7px;
    color:#173a3d;
    font-size:20px;
}

.forms-dashboard-highlight p{
    max-width:90%;
    margin:0;
    color:#687c7e;
    font-size:11px;
    line-height:1.55;
}

.forms-layout-dashboard{
    margin-top:0;
}

.form-card-dashboard{
    border:none;
    box-shadow:0 12px 30px rgba(25,61,65,.08);
}

.form-create-card-dashboard{
    border:none;
    box-shadow:0 14px 35px rgba(25,61,65,.09);
}

.form-results-dashboard-page{
    margin:0 -34px -46px;
    padding:18px 34px 50px;
    min-height:calc(100vh - 78px);
    background:
        radial-gradient(circle at 85% 16%,rgba(84,167,168,.12),transparent 30%),
        radial-gradient(circle at 12% 75%,rgba(225,183,101,.12),transparent 28%),
        #f4f7f8;
}

.form-results-dashboard-hero{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:32px;
    align-items:center;
    margin-bottom:20px;
    padding:34px 38px;
    border-radius:26px;
    color:#fff;
    background:
        radial-gradient(circle at 96% 90%,rgba(255,255,255,.09) 0 100px,transparent 101px),
        linear-gradient(135deg,#10565d 0%,#197980 55%,#4ca8a6 100%);
    box-shadow:0 17px 38px rgba(20,68,72,.14);
}

.form-results-dashboard-hero h1{
    margin:9px 0 11px;
    color:#fff;
    font-size:38px;
    letter-spacing:-.03em;
}

.form-results-dashboard-hero p{
    margin:0;
    color:rgba(255,255,255,.84);
    line-height:1.6;
}

.form-results-dashboard-stats{
    display:grid;
    grid-template-columns:repeat(2,125px);
    gap:12px;
}

.form-results-dashboard-stats > div{
    min-height:120px;
    padding:18px;
    border:1px solid rgba(255,255,255,.19);
    border-radius:17px;
    background:rgba(255,255,255,.13);
}

.form-results-dashboard-stats strong{
    display:block;
    color:#fff;
    font-size:31px;
}

.form-results-dashboard-stats span{
    display:block;
    margin-top:7px;
    color:rgba(255,255,255,.78);
    font-size:10px;
    font-weight:700;
}

.form-results-dashboard-summary{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:15px;
    margin-bottom:18px;
}

.form-results-summary-card{
    padding:20px 22px;
    border:1px solid rgba(31,88,92,.09);
    border-radius:19px;
    box-shadow:0 9px 25px rgba(25,61,65,.05);
}

.form-results-summary-card.summary-community{
    background:#edf8f5;
}

.form-results-summary-card.summary-responses{
    background:#fff8ec;
}

.form-results-summary-card > span{
    color:#768789;
    font-size:9px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.form-results-summary-card h2{
    margin:7px 0 6px;
    color:#183b3e;
    font-size:18px;
}

.form-results-summary-card p{
    margin:0;
    color:#6d7f81;
    font-size:11px;
}

.form-result-card-dashboard{
    max-width:none;
    border:none;
    background:rgba(255,255,255,.95);
    box-shadow:0 13px 32px rgba(25,61,65,.08);
}

.form-results-list-dashboard{
    max-width:none;
}

@media(max-width:1150px){
    .forms-dashboard-hero,
    .form-results-dashboard-hero{
        grid-template-columns:1fr;
    }

    .forms-dashboard-stats{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .form-results-dashboard-stats{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:980px){
    .forms-page-dashboard,
    .form-results-dashboard-page{
        margin-left:-20px;
        margin-right:-20px;
        padding-left:20px;
        padding-right:20px;
    }
}

@media(max-width:760px){
    .forms-dashboard-highlights{
        grid-template-columns:1fr;
    }

    .forms-dashboard-hero{
        padding:28px;
    }

    .form-results-dashboard-summary{
        grid-template-columns:1fr;
    }
}

@media(max-width:620px){
    .forms-page-dashboard,
    .form-results-dashboard-page{
        margin-left:-14px;
        margin-right:-14px;
        padding-left:14px;
        padding-right:14px;
    }

    .forms-dashboard-stats{
        grid-template-columns:1fr 1fr;
    }

    .forms-dashboard-stat:last-child{
        grid-column:1 / -1;
    }

    .form-results-dashboard-stats{
        grid-template-columns:1fr 1fr;
    }

    .form-results-dashboard-hero{
        padding:24px;
    }
}

/* =========================================================
   CazLink - Equilibrage bas page Formulaires
   ========================================================= */

.forms-support-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:15px;
    margin-top:16px;
}

.forms-support-card{
    position:relative;
    overflow:hidden;
    min-height:180px;
    padding:22px;
    border:1px solid rgba(36,90,94,.10);
    border-radius:20px;
    box-shadow:0 9px 24px rgba(25,61,65,.05);
}

.forms-support-card::after{
    content:"";
    position:absolute;
    right:-18px;
    bottom:-18px;
    width:84px;
    height:84px;
    border-radius:50%;
    background:rgba(255,255,255,.42);
}

.forms-support-card-teal{
    background:#eef8f5;
}

.forms-support-card-sand{
    background:#fff8ec;
}

.forms-support-card-icon{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    margin-bottom:13px;
    border-radius:13px;
    color:#176e73;
    background:rgba(255,255,255,.82);
}

.forms-support-card-icon svg{
    width:22px;
    height:22px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.forms-support-card > span{
    color:#76888a;
    font-size:9px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.forms-support-card h3{
    margin:8px 0 8px;
    color:#173b3e;
    font-size:20px;
    line-height:1.3;
}

.forms-support-card p{
    max-width:92%;
    margin:0;
    color:#6d7f81;
    font-size:11px;
    line-height:1.6;
}

@media(max-width:760px){
    .forms-support-grid{
        grid-template-columns:1fr;
    }
}

/* =========================================================
   CazLink - Formulaires : questionnaire au centre
   ========================================================= */

.forms-workspace{
    display:grid;
    grid-template-columns:minmax(220px,.48fr) minmax(430px,1.05fr) minmax(330px,.62fr);
    gap:18px;
    align-items:start;
}

.forms-support-rail{
    display:grid;
    gap:15px;
}

.forms-support-rail .forms-support-card{
    min-height:0;
    padding:20px;
}

.forms-support-rail .forms-support-card h3{
    font-size:18px;
}

.forms-library-primary{
    min-width:0;
}

.forms-library-primary .forms-library-head{
    margin-bottom:13px;
}

.forms-primary-list{
    display:grid;
    gap:15px;
}

.form-card-primary-focus{
    min-height:390px;
    padding:25px;
    border:1px solid rgba(28,103,108,.13);
    background:
        radial-gradient(circle at 92% 8%,rgba(91,178,170,.12),transparent 29%),
        linear-gradient(145deg,#ffffff 0%,#f3faf8 100%);
    box-shadow:
        0 18px 42px rgba(23,72,76,.12),
        0 0 0 1px rgba(255,255,255,.7) inset;
}

.form-card-primary-focus:hover{
    transform:translateY(-3px);
    box-shadow:0 23px 48px rgba(23,72,76,.16);
}

.form-card-icon-focus{
    width:56px;
    height:56px;
    border-radius:17px;
    background:linear-gradient(145deg,#dff2ee,#f7ecd7);
}

.form-card-icon-focus svg{
    width:27px;
    height:27px;
}

.form-card-kicker{
    display:block;
    margin-bottom:8px;
    color:#708789;
    font-size:9px;
    font-weight:900;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.form-card-primary-focus .form-card-content{
    padding-top:22px;
}

.form-card-primary-focus .form-card-content h3{
    margin-bottom:13px;
    color:#123c40;
    font-size:25px;
    line-height:1.25;
}

.form-card-primary-focus .form-card-description{
    max-width:620px;
    font-size:13px;
    line-height:1.7;
}

.form-card-meta-focus{
    margin-top:22px;
}

.form-card-meta-focus span{
    padding:7px 10px;
    background:#edf6f4;
    font-size:10px;
}

.form-card-actions-focus{
    gap:11px;
    margin-top:24px;
    padding-top:18px;
}

.form-card-primary-button{
    min-height:46px;
    padding:0 15px;
    border-radius:12px;
    color:#fff;
    background:#17777d;
    box-shadow:0 8px 20px rgba(23,119,125,.18);
}

.form-card-primary-button:hover{
    background:#115e64;
}

.forms-create-rail{
    top:96px;
}

@media(max-width:1280px){
    .forms-workspace{
        grid-template-columns:minmax(220px,.45fr) minmax(420px,1fr);
    }

    .forms-create-rail{
        grid-column:1 / -1;
        position:static;
    }
}

@media(max-width:900px){
    .forms-workspace{
        grid-template-columns:1fr;
    }

    .forms-support-rail{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .forms-create-rail{
        grid-column:auto;
    }
}

@media(max-width:620px){
    .forms-support-rail{
        grid-template-columns:1fr;
    }

    .form-card-primary-focus{
        min-height:0;
        padding:20px;
    }

    .form-card-primary-focus .form-card-content h3{
        font-size:21px;
    }
}

/* =========================================================
   CazLink - Formulaires : colonne contextuelle droite
   ========================================================= */

.forms-context-layout{
    display:grid;
    grid-template-columns:minmax(0,1.45fr) minmax(330px,.62fr);
    gap:22px;
    align-items:start;
}

.forms-context-side{
    display:grid;
    gap:15px;
}

.forms-context-side .form-create-card{
    position:static;
}

.forms-context-card{
    padding:19px;
    border:1px solid rgba(31,88,92,.09);
    border-radius:19px;
    box-shadow:0 9px 26px rgba(25,61,65,.06);
}

.forms-context-event{
    background:#fff8ec;
}

.forms-context-document{
    background:#eef5fb;
}

.forms-context-heading{
    display:flex;
    align-items:center;
    gap:11px;
    margin-bottom:14px;
}

.forms-context-heading h3{
    margin:3px 0 0;
    color:#173a3d;
    font-size:17px;
}

.forms-context-icon{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    flex:0 0 42px;
    border-radius:13px;
    color:#176e73;
    background:rgba(255,255,255,.80);
}

.forms-context-icon svg{
    width:21px;
    height:21px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.forms-context-content{
    display:grid;
    gap:5px;
    padding:12px 0;
    border-top:1px solid rgba(31,88,92,.08);
    border-bottom:1px solid rgba(31,88,92,.08);
}

.forms-context-content strong{
    color:#24484b;
    font-size:12px;
    line-height:1.4;
}

.forms-context-content span{
    color:#76888a;
    font-size:10px;
}

.forms-context-empty{
    margin:0;
    padding:12px 0;
    color:#788789;
    font-size:10px;
    line-height:1.5;
}

.forms-context-link{
    display:inline-flex;
    margin-top:12px;
    color:#176e73;
    font-size:10px;
    font-weight:900;
    text-decoration:none;
}

.forms-library-primary .form-card-primary-focus{
    min-height:430px;
}

@media(max-width:1050px){
    .forms-context-layout{
        grid-template-columns:1fr;
    }

    .forms-context-side{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .forms-context-side .form-create-card{
        grid-column:1 / -1;
    }
}

@media(max-width:700px){
    .forms-context-side{
        grid-template-columns:1fr;
    }

    .forms-context-side .form-create-card{
        grid-column:auto;
    }
}

/* =========================================================
   CazLink - Notifications
   ========================================================= */

.org-topbar-actions{
    display:flex;
    align-items:center;
    gap:10px;
}

.org-notification-button{
    position:relative;
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    flex:0 0 42px;
    border:1px solid #dbe8e7;
    border-radius:14px;
    background:#f8fbfb;
    color:#547173;
    text-decoration:none;
    transition:
        transform .18s ease,
        background .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}

.org-notification-button:hover{
    transform:translateY(-1px);
    border-color:#bad7d4;
    background:#edf7f5;
    color:#176e73;
    box-shadow:0 7px 18px rgba(20,65,68,.08);
}

.org-notification-button.has-unread{
    border-color:#b9dcd7;
    background:linear-gradient(145deg,#eaf7f4,#f8fcfb);
    color:#176e73;
}

.org-notification-icon,
.notification-card-icon,
.notification-empty-icon{
    display:grid;
    place-items:center;
}

.org-notification-icon svg{
    width:21px;
    height:21px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.org-notification-badge{
    position:absolute;
    top:-5px;
    right:-5px;
    min-width:19px;
    height:19px;
    padding:0 5px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:2px solid #fff;
    border-radius:999px;
    background:#d95f63;
    color:#fff;
    font-size:9px;
    font-weight:900;
    line-height:1;
    box-shadow:0 4px 10px rgba(159,52,57,.22);
}

.notifications-page{
    position:relative;
    margin:0 -34px -46px;
    padding:18px 34px 46px;
    min-height:calc(100vh - 78px);
    background:
        radial-gradient(circle at 89% 8%,rgba(84,167,173,.16),transparent 30%),
        radial-gradient(circle at 8% 44%,rgba(225,183,111,.11),transparent 31%),
        linear-gradient(145deg,#f3f8f7 0%,#eef5f6 48%,#f8f5ee 100%);
}

.notifications-hero{
    position:relative;
    overflow:hidden;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:30px;
    padding:38px 40px;
    border-radius:25px;
    background:
        radial-gradient(circle at 88% 15%,rgba(255,255,255,.18),transparent 27%),
        linear-gradient(135deg,#0b4e53 0%,#14767b 58%,#38a1a4 100%);
    color:#fff;
    box-shadow:0 22px 48px rgba(18,79,83,.14);
}

.notifications-hero::after{
    content:"";
    position:absolute;
    width:220px;
    height:220px;
    right:-80px;
    bottom:-125px;
    border-radius:50%;
    background:rgba(255,255,255,.08);
}

.notifications-hero > *{
    position:relative;
    z-index:1;
}

.notifications-hero .section-label{
    color:#cde9e7;
}

.notifications-hero h1{
    margin:9px 0 9px;
    color:#fff;
    font-size:clamp(30px,4vw,46px);
    line-height:1.05;
}

.notifications-hero p{
    max-width:680px;
    margin:0;
    color:rgba(255,255,255,.78);
    font-size:13px;
    line-height:1.65;
}

.notifications-hero-stat{
    min-width:170px;
    padding:22px;
    border:1px solid rgba(255,255,255,.19);
    border-radius:20px;
    background:rgba(255,255,255,.13);
    backdrop-filter:blur(10px);
    box-shadow:0 9px 26px rgba(0,0,0,.06);
}

.notifications-hero-stat strong{
    display:block;
    color:#fff;
    font-size:38px;
    line-height:1;
}

.notifications-hero-stat span{
    display:block;
    margin-top:9px;
    color:rgba(255,255,255,.78);
    font-size:10px;
    font-weight:800;
    line-height:1.4;
}

.notifications-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin:20px 0 14px;
    padding:15px 18px;
    border:1px solid rgba(31,88,92,.09);
    border-radius:17px;
    background:rgba(255,255,255,.78);
    box-shadow:0 7px 22px rgba(25,61,65,.045);
    backdrop-filter:blur(8px);
}

.notifications-toolbar > div{
    display:flex;
    align-items:baseline;
    gap:6px;
    color:#718487;
    font-size:11px;
}

.notifications-toolbar strong{
    color:#173b3e;
    font-size:19px;
}

.notifications-toolbar form{
    margin:0;
}

.notifications-toolbar .secondary-action{
    min-height:38px;
    padding:0 13px;
    border:1px solid #c8dedb;
    border-radius:11px;
    background:#edf7f5;
    color:#176e73;
    font-size:10px;
    font-weight:900;
    cursor:pointer;
}

.notifications-list{
    display:grid;
    gap:13px;
}

.notification-card{
    position:relative;
    display:grid;
    grid-template-columns:56px minmax(0,1fr);
    gap:17px;
    padding:20px;
    overflow:hidden;
    border:1px solid #dce8e8;
    border-radius:20px;
    background:#fff;
    box-shadow:0 9px 26px rgba(19,62,65,.05);
    transition:
        transform .18s ease,
        box-shadow .18s ease,
        border-color .18s ease;
}

.notification-card:hover{
    transform:translateY(-1px);
    box-shadow:0 13px 30px rgba(19,62,65,.075);
}

.notification-card.is-unread{
    border-color:#bddbd7;
    background:
        radial-gradient(circle at 96% 8%,rgba(73,167,158,.10),transparent 28%),
        linear-gradient(145deg,#ffffff,#f1faf8);
}

.notification-card.is-unread::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    bottom:0;
    width:4px;
    background:linear-gradient(#168087,#52aaa6);
}

.notification-card.is-read{
    opacity:.87;
}

.notification-card-icon{
    width:52px;
    height:52px;
    border-radius:16px;
    color:#176e73;
    background:#eaf7f4;
}

.notification-card-icon svg,
.notification-empty-icon svg{
    width:23px;
    height:23px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.75;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.notification-type-comment{
    color:#786423;
    background:#fff5d9;
}

.notification-type-event{
    color:#8a5f22;
    background:#fff1d9;
}

.notification-type-document{
    color:#476884;
    background:#edf4fb;
}

.notification-type-form{
    color:#6c5988;
    background:#f3eef9;
}

.notification-card-content{
    min-width:0;
}

.notification-card-meta{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:9px;
    margin-bottom:7px;
    color:#829194;
    font-size:9px;
    font-weight:800;
}

.notification-unread-marker{
    padding:4px 7px;
    border-radius:999px;
    background:#dff3ee;
    color:#176e73;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.notification-card h2{
    margin:0;
    color:#183d40;
    font-size:16px;
    line-height:1.42;
}

.notification-card-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:13px;
    margin-top:13px;
}

.notification-card-actions form{
    margin:0;
}

.notification-target-link,
.notification-read-action{
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-height:34px;
    font-size:10px;
    font-weight:900;
    text-decoration:none;
}

.notification-target-link{
    color:#176e73;
}

.notification-target-link:hover{
    text-decoration:underline;
}

.notification-read-action{
    padding:0 10px;
    border:1px solid #d8e6e5;
    border-radius:10px;
    background:#f7fafa;
    color:#637b7d;
    cursor:pointer;
}

.notification-empty-state{
    min-height:310px;
    padding:42px 28px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    border:1px dashed #b9cecd;
    border-radius:23px;
    background:
        radial-gradient(circle at 50% 0,rgba(98,178,171,.10),transparent 38%),
        rgba(255,255,255,.78);
}

.notification-empty-icon{
    width:64px;
    height:64px;
    margin-bottom:17px;
    border-radius:19px;
    background:#e9f6f3;
    color:#176e73;
    box-shadow:0 8px 22px rgba(20,65,68,.07);
}

.notification-empty-icon svg{
    width:29px;
    height:29px;
}

.notification-empty-state h2{
    margin:0 0 7px;
    color:#173b3e;
    font-size:22px;
}

.notification-empty-state p{
    max-width:420px;
    margin:0;
    color:#728487;
    font-size:12px;
    line-height:1.6;
}

@media(max-width:760px){
    .notifications-page{
        margin-left:-14px;
        margin-right:-14px;
        padding-left:14px;
        padding-right:14px;
    }

    .notifications-hero{
        grid-template-columns:1fr;
        padding:28px;
    }

    .notifications-hero-stat{
        min-width:0;
    }

    .notifications-toolbar{
        align-items:flex-start;
        flex-direction:column;
    }
}

@media(max-width:620px){
    .org-topbar-actions{
        gap:7px;
    }

    .org-notification-button{
        width:40px;
        height:40px;
        flex-basis:40px;
    }

    .org-user-chip-link > span:last-child{
        display:none;
    }

    .notification-card{
        grid-template-columns:44px minmax(0,1fr);
        gap:13px;
        padding:17px;
    }

    .notification-card-icon{
        width:44px;
        height:44px;
        border-radius:13px;
    }

    .notification-card-icon svg{
        width:20px;
        height:20px;
    }

    .notification-card-actions{
        align-items:flex-start;
        flex-direction:column;
    }
}

/* Notifications - état vide enrichi */

.notification-empty-state{
    min-height:0;
    padding:30px;
    align-items:stretch;
    justify-content:flex-start;
    text-align:left;
}

.notification-empty-main{
    display:flex;
    align-items:center;
    gap:17px;
}

.notification-empty-main .notification-empty-icon{
    flex:0 0 58px;
    width:58px;
    height:58px;
    margin:0;
}

.notification-empty-main h2{
    margin:0 0 5px;
}

.notification-empty-main p{
    margin:0;
}

.notification-empty-categories{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    margin-top:24px;
}

.notification-empty-category{
    display:grid;
    gap:5px;
    min-height:88px;
    padding:17px;
    border:1px solid rgba(35,88,91,.08);
    border-radius:16px;
}

.notification-empty-category strong{
    color:#23484b;
    font-size:12px;
}

.notification-empty-category span{
    color:#768789;
    font-size:10px;
    line-height:1.5;
}

.notification-empty-community{
    background:#edf8f5;
}

.notification-empty-events{
    background:#fff8e9;
}

.notification-empty-resources{
    background:#eef4fb;
}

@media(max-width:760px){
    .notification-empty-categories{
        grid-template-columns:1fr;
    }
}

@media(max-width:620px){
    .notification-empty-state{
        padding:22px;
    }

    .notification-empty-main{
        align-items:flex-start;
    }
}

/* =========================================================
   CazLink - Liste des groupes harmonisée dashboard
   ========================================================= */

.groups-page{
    position:relative;
    margin:0 -34px -46px;
    padding:18px 34px 46px;
    min-height:calc(100vh - 78px);
    background:
        radial-gradient(circle at 88% 8%,rgba(77,167,168,.16),transparent 28%),
        radial-gradient(circle at 6% 55%,rgba(222,180,104,.11),transparent 31%),
        linear-gradient(145deg,#f4f9f8 0%,#eef5f6 52%,#f8f5ee 100%);
}

.groups-hero{
    position:relative;
    overflow:hidden;
    display:grid;
    grid-template-columns:minmax(0,1.3fr) minmax(380px,.7fr);
    gap:34px;
    align-items:end;
    padding:38px 40px;
    border-radius:27px;
    background:linear-gradient(135deg,#0f5960 0%,#14777e 58%,#3b9b9f 100%);
    color:#fff;
    box-shadow:0 22px 50px rgba(18,77,81,.15);
}

.groups-hero::after{
    content:"";
    position:absolute;
    width:270px;
    height:270px;
    right:-90px;
    top:-120px;
    border-radius:50%;
    background:rgba(255,255,255,.08);
}

.groups-hero-copy{
    position:relative;
    z-index:1;
    max-width:760px;
}

.groups-eyebrow{
    display:inline-flex;
    margin-bottom:10px;
    padding:7px 11px;
    border:1px solid rgba(255,255,255,.2);
    border-radius:999px;
    background:rgba(255,255,255,.09);
    color:rgba(255,255,255,.88);
    font-size:11px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.groups-hero h1{
    margin:0 0 12px;
    font-size:clamp(2.3rem,4vw,3.65rem);
    line-height:1;
    letter-spacing:-.045em;
}

.groups-hero p{
    max-width:690px;
    margin:0;
    color:rgba(255,255,255,.82);
    line-height:1.65;
}

.groups-hero-action{
    display:inline-flex;
    align-items:center;
    gap:9px;
    margin-top:22px;
    padding:11px 15px;
    border-radius:13px;
    background:#fff;
    color:#126b71;
    font-size:13px;
    font-weight:800;
    box-shadow:0 8px 20px rgba(9,58,62,.12);
}

.groups-hero-action svg{
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
}

.groups-hero-stats{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
}

.groups-hero-stat{
    min-width:0;
    padding:17px 15px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:17px;
    background:rgba(255,255,255,.10);
    backdrop-filter:blur(7px);
}

.groups-stat-icon{
    width:31px;
    height:31px;
    display:grid;
    place-items:center;
    margin-bottom:10px;
    border-radius:10px;
    background:rgba(255,255,255,.12);
}

.groups-stat-icon svg{
    width:17px;
    height:17px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.groups-hero-stat strong,
.groups-hero-stat > span:last-child{
    display:block;
}

.groups-hero-stat strong{
    font-size:25px;
    line-height:1;
}

.groups-hero-stat > span:last-child{
    margin-top:6px;
    color:rgba(255,255,255,.69);
    font-size:10px;
    line-height:1.3;
}

.groups-intro{
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:24px;
    margin:29px 0 16px;
}

.groups-intro h2{
    margin:4px 0 5px;
    color:#173f42;
    font-size:24px;
}

.groups-intro p{
    max-width:670px;
    margin:0;
    color:#667b7d;
}

.groups-count-pill{
    flex:0 0 auto;
    padding:8px 12px;
    border:1px solid rgba(24,110,115,.12);
    border-radius:999px;
    background:#e5f3f1;
    color:#176e73;
    font-size:12px;
    font-weight:800;
}

.groups-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 360px;
    gap:22px;
    align-items:start;
}

.groups-layout-full{
    grid-template-columns:1fr;
}

.groups-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.group-card-rich{
    position:relative;
    min-width:0;
    display:grid;
    grid-template-columns:52px minmax(0,1fr) 34px;
    gap:15px;
    align-items:center;
    min-height:165px;
    padding:20px;
    overflow:hidden;
    border:1px solid rgba(27,89,93,.10);
    border-radius:21px;
    color:#173f42;
    text-decoration:none;
    box-shadow:0 11px 27px rgba(25,61,65,.055);
    transition:
        transform .18s ease,
        box-shadow .18s ease,
        border-color .18s ease;
}

.group-card-tone-0{
    background:linear-gradient(145deg,#eff9f7,#e6f3f1);
}

.group-card-tone-1{
    background:linear-gradient(145deg,#fff9ed,#f8f0de);
}

.group-card-tone-2{
    background:linear-gradient(145deg,#f1f5fb,#e8eff8);
}

.group-card-rich::after{
    content:"";
    position:absolute;
    width:100px;
    height:100px;
    right:-42px;
    bottom:-48px;
    border-radius:50%;
    background:rgba(255,255,255,.48);
}

.group-card-rich:hover{
    transform:translateY(-3px);
    border-color:rgba(28,112,116,.22);
    box-shadow:0 18px 34px rgba(25,61,65,.10);
}

.group-card-icon-rich{
    width:52px;
    height:52px;
    display:grid;
    place-items:center;
    align-self:start;
    border-radius:16px;
    background:rgba(255,255,255,.72);
    color:#176e73;
    box-shadow:0 6px 14px rgba(28,87,91,.06);
}

.group-card-icon-rich svg,
.group-card-arrow svg,
.groups-empty-icon svg,
.groups-create-icon svg,
.groups-visibility-note svg{
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.group-card-icon-rich svg{
    width:24px;
    height:24px;
}

.group-card-main{
    min-width:0;
}

.group-card-topline{
    display:flex;
    margin-bottom:9px;
}

.group-visibility-badge{
    display:inline-flex;
    padding:5px 8px;
    border-radius:999px;
    font-size:9px;
    font-weight:900;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.group-visibility-badge.is-organization{
    background:rgba(66,158,153,.13);
    color:#18736f;
}

.group-visibility-badge.is-private{
    background:rgba(189,139,59,.14);
    color:#8a6728;
}

.group-card-main > strong{
    display:block;
    font-size:18px;
    line-height:1.25;
}

.group-card-description{
    display:-webkit-box;
    margin-top:7px;
    overflow:hidden;
    color:#50696b;
    font-size:13px;
    line-height:1.5;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
}

.group-card-foot{
    display:block;
    margin-top:11px;
    color:#789092;
    font-size:10px;
    font-weight:700;
}

.group-card-arrow{
    position:relative;
    z-index:1;
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border-radius:11px;
    background:rgba(255,255,255,.62);
    color:#39777a;
}

.group-card-arrow svg{
    width:17px;
    height:17px;
}

.groups-create-rail{
    position:sticky;
    top:96px;
}

.groups-create-card{
    padding:22px;
    border:1px solid rgba(26,91,95,.11);
    border-radius:22px;
    background:rgba(255,255,255,.92);
    box-shadow:0 14px 31px rgba(25,61,65,.065);
}

.groups-create-heading{
    display:flex;
    align-items:center;
    gap:12px;
}

.groups-create-heading h2{
    margin:3px 0 0;
    color:#173f42;
    font-size:20px;
}

.groups-create-icon{
    width:45px;
    height:45px;
    flex:0 0 45px;
    display:grid;
    place-items:center;
    border-radius:14px;
    background:linear-gradient(145deg,#e1f3f1,#edf8f6);
    color:#176e73;
}

.groups-create-icon svg{
    width:21px;
    height:21px;
}

.groups-create-help{
    margin:17px 0;
    color:#667b7d;
    font-size:13px;
    line-height:1.55;
}

.groups-create-form input,
.groups-create-form textarea,
.groups-create-form select{
    background:#fbfdfd;
}

.groups-visibility-note{
    display:flex;
    gap:9px;
    padding:11px 12px;
    border-radius:13px;
    background:#f0f7f6;
    color:#527173;
    font-size:11px;
    line-height:1.45;
}

.groups-visibility-note svg{
    width:17px;
    height:17px;
    flex:0 0 17px;
    margin-top:1px;
    color:#2f8281;
}

.groups-empty-state{
    grid-column:1 / -1;
    display:flex;
    align-items:center;
    gap:17px;
    padding:28px;
    border:1px dashed rgba(31,105,109,.25);
    border-radius:21px;
    background:linear-gradient(145deg,#f2faf8,#fff);
}

.groups-empty-icon{
    width:54px;
    height:54px;
    flex:0 0 54px;
    display:grid;
    place-items:center;
    border-radius:17px;
    background:#e4f3f1;
    color:#3b8584;
}

.groups-empty-icon svg{
    width:25px;
    height:25px;
}

.groups-empty-state h3{
    margin:0 0 5px;
    color:#294d4f;
}

.groups-empty-state p{
    margin:0;
    color:#718587;
    font-size:13px;
}

@media(max-width:1180px){
    .groups-hero{
        grid-template-columns:1fr;
    }

    .groups-layout{
        grid-template-columns:minmax(0,1fr) 320px;
    }

    .groups-list{
        grid-template-columns:1fr;
    }
}

@media(max-width:980px){
    .groups-page{
        margin:0 -20px -36px;
        padding:18px 20px 36px;
    }

    .groups-layout{
        grid-template-columns:1fr;
    }

    .groups-create-rail{
        position:static;
    }
}

@media(max-width:700px){
    .groups-hero{
        padding:28px;
    }

    .groups-hero-stats{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .groups-intro{
        align-items:flex-start;
        flex-direction:column;
    }
}

@media(max-width:620px){
    .groups-page{
        margin:0 -14px -28px;
        padding:14px 14px 28px;
    }

    .groups-hero{
        padding:24px 21px;
        border-radius:22px;
    }

    .groups-hero-stats{
        grid-template-columns:1fr;
    }

    .groups-hero-stat{
        display:grid;
        grid-template-columns:34px auto 1fr;
        gap:10px;
        align-items:center;
        padding:12px 13px;
    }

    .groups-stat-icon{
        margin:0;
    }

    .groups-hero-stat > span:last-child{
        margin:0;
        text-align:right;
    }

    .group-card-rich{
        grid-template-columns:46px minmax(0,1fr) 28px;
        gap:12px;
        min-height:0;
        padding:17px;
    }

    .group-card-icon-rich{
        width:46px;
        height:46px;
        border-radius:14px;
    }

    .group-card-arrow{
        width:28px;
        height:28px;
    }
}

/* =========================================================
   CazLink - Groupes : colonne contextuelle
   ========================================================= */

.groups-layout{
    grid-template-columns:minmax(380px,1.15fr) minmax(250px,.58fr) minmax(320px,.67fr);
}

.groups-layout-full{
    grid-template-columns:minmax(0,1.25fr) minmax(300px,.55fr);
}

.groups-list{
    grid-template-columns:1fr;
}

.groups-context-rail{
    display:grid;
    gap:15px;
    align-content:start;
}

.groups-context-card{
    position:relative;
    overflow:hidden;
    padding:19px;
    border:1px solid rgba(27,89,93,.10);
    border-radius:20px;
    box-shadow:0 11px 27px rgba(25,61,65,.055);
}

.groups-context-event{
    background:linear-gradient(145deg,#fff9ee,#f7edd9);
}

.groups-context-document{
    background:linear-gradient(145deg,#edf5fb,#e5eef8);
}

.groups-context-card::before{
    content:"";
    position:absolute;
    inset:0 0 auto 0;
    height:4px;
}

.groups-context-event::before{
    background:linear-gradient(90deg,#d7a350,#efc875);
}

.groups-context-document::before{
    background:linear-gradient(90deg,#568bab,#80adc7);
}

.groups-context-heading{
    display:flex;
    align-items:center;
    gap:11px;
    margin-bottom:15px;
}

.groups-context-heading h3{
    margin:3px 0 0;
    color:#173f42;
    font-size:16px;
}

.groups-context-icon{
    width:42px;
    height:42px;
    flex:0 0 42px;
    display:grid;
    place-items:center;
    border-radius:13px;
    background:rgba(255,255,255,.70);
    color:#26787c;
}

.groups-context-icon svg{
    width:21px;
    height:21px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.groups-next-event{
    display:grid;
    grid-template-columns:50px minmax(0,1fr);
    gap:11px;
    align-items:center;
}

.groups-next-date{
    width:50px;
    height:54px;
    display:grid;
    place-items:center;
    align-content:center;
    border-radius:14px;
    background:rgba(255,255,255,.72);
    color:#8a6728;
}

.groups-next-date strong{
    font-size:19px;
    line-height:1;
}

.groups-next-date span{
    margin-top:3px;
    font-size:9px;
    font-weight:900;
    text-transform:uppercase;
}

.groups-next-event > div{
    min-width:0;
    display:grid;
    gap:3px;
}

.groups-next-event > div strong{
    color:#294d4f;
    font-size:13px;
    line-height:1.35;
}

.groups-next-event > div span{
    color:#718083;
    font-size:10px;
}

.groups-latest-document{
    display:grid;
    gap:4px;
}

.groups-latest-document strong{
    overflow:hidden;
    color:#294d4f;
    font-size:13px;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.groups-latest-document span{
    color:#587277;
    font-size:11px;
}

.groups-latest-document small{
    color:#829194;
    font-size:10px;
}

.groups-context-empty{
    margin:0;
    color:#718587;
    font-size:12px;
    line-height:1.5;
}

.groups-context-link{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-top:15px;
    padding-top:12px;
    border-top:1px solid rgba(38,94,98,.10);
    color:#176e73;
    font-size:12px;
    font-weight:800;
}

@media(max-width:1280px){
    .groups-layout{
        grid-template-columns:minmax(0,1fr) minmax(300px,.58fr);
    }

    .groups-context-rail{
        grid-column:1;
        grid-row:2;
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .groups-create-rail{
        grid-column:2;
        grid-row:1 / span 2;
    }

    .groups-layout-full{
        grid-template-columns:1fr;
    }

    .groups-layout-full .groups-context-rail{
        grid-column:auto;
        grid-row:auto;
    }
}

@media(max-width:980px){
    .groups-layout{
        grid-template-columns:1fr;
    }

    .groups-context-rail{
        grid-column:auto;
        grid-row:auto;
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .groups-create-rail{
        grid-column:auto;
        grid-row:auto;
    }
}

@media(max-width:620px){
    .groups-context-rail{
        grid-template-columns:1fr;
    }
}

/* =========================================================
   CazLink - Fiche groupe : hero
   ========================================================= */

.group-show-hero{
    position:relative;
    overflow:hidden;
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);
    gap:32px;
    align-items:end;
    margin-bottom:22px;
    padding:34px 38px;
    border-radius:26px;
    background:linear-gradient(135deg,#0f5960 0%,#14777e 58%,#3b9b9f 100%);
    color:#fff;
    box-shadow:0 20px 46px rgba(18,77,81,.14);
}

.group-show-hero::after{
    content:"";
    position:absolute;
    width:260px;
    height:260px;
    right:-80px;
    top:-120px;
    border-radius:50%;
    background:rgba(255,255,255,.08);
}

.group-show-hero-copy{
    position:relative;
    z-index:1;
    max-width:760px;
}

.group-show-eyebrow{
    display:inline-flex;
    margin-bottom:10px;
    padding:7px 11px;
    border:1px solid rgba(255,255,255,.2);
    border-radius:999px;
    background:rgba(255,255,255,.09);
    color:rgba(255,255,255,.88);
    font-size:10px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.group-show-hero h1{
    margin:0 0 11px;
    font-size:clamp(2.1rem,3.8vw,3.35rem);
    line-height:1;
    letter-spacing:-.04em;
}

.group-show-hero p{
    max-width:680px;
    margin:0;
    color:rgba(255,255,255,.82);
    line-height:1.6;
}

.group-show-hero-stats{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
}

.group-show-stat{
    min-width:0;
    padding:16px 14px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:17px;
    background:rgba(255,255,255,.10);
    backdrop-filter:blur(7px);
}

.group-show-stat-icon{
    width:30px;
    height:30px;
    display:grid;
    place-items:center;
    margin-bottom:9px;
    border-radius:10px;
    background:rgba(255,255,255,.12);
}

.group-show-stat-icon svg{
    width:16px;
    height:16px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.group-show-stat strong,
.group-show-stat > span:last-child{
    display:block;
}

.group-show-stat strong{
    font-size:24px;
    line-height:1;
}

.group-show-stat > span:last-child{
    margin-top:5px;
    color:rgba(255,255,255,.68);
    font-size:10px;
}

@media(max-width:1100px){
    .group-show-hero{
        grid-template-columns:1fr;
    }
}

@media(max-width:700px){
    .group-show-hero{
        padding:28px;
    }
}

@media(max-width:620px){
    .group-show-hero{
        padding:23px 20px;
        border-radius:22px;
    }

    .group-show-hero-stats{
        grid-template-columns:1fr;
    }

    .group-show-stat{
        display:grid;
        grid-template-columns:34px auto 1fr;
        gap:10px;
        align-items:center;
        padding:12px 13px;
    }

    .group-show-stat-icon{
        margin:0;
    }

    .group-show-stat > span:last-child{
        margin:0;
        text-align:right;
    }
}

/* =========================================================
   CazLink - Événements harmonisés dashboard
   ========================================================= */

.events-hero{
    position:relative;
    overflow:hidden;
    display:grid;
    grid-template-columns:minmax(0,1.3fr) minmax(380px,.7fr);
    gap:34px;
    align-items:end;
    padding:38px 40px;
    border-radius:27px;
    background:linear-gradient(135deg,#0f5960 0%,#14777e 58%,#3b9b9f 100%);
    color:#fff;
    box-shadow:0 22px 50px rgba(18,77,81,.15);
}

.events-hero::after{
    content:"";
    position:absolute;
    width:270px;
    height:270px;
    right:-90px;
    top:-120px;
    border-radius:50%;
    background:rgba(255,255,255,.08);
}

.events-hero-copy{
    position:relative;
    z-index:1;
    max-width:760px;
}

.events-eyebrow{
    display:inline-flex;
    margin-bottom:10px;
    padding:7px 11px;
    border:1px solid rgba(255,255,255,.2);
    border-radius:999px;
    background:rgba(255,255,255,.09);
    color:rgba(255,255,255,.88);
    font-size:11px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.events-hero h1{
    margin:0 0 12px;
    font-size:clamp(2.3rem,4vw,3.65rem);
    line-height:1;
    letter-spacing:-.045em;
}

.events-hero p{
    max-width:690px;
    margin:0;
    color:rgba(255,255,255,.82);
    line-height:1.65;
}

.events-hero-action{
    display:inline-flex;
    align-items:center;
    gap:9px;
    margin-top:22px;
    padding:11px 15px;
    border-radius:13px;
    background:#fff;
    color:#126b71;
    font-size:13px;
    font-weight:800;
    box-shadow:0 8px 20px rgba(9,58,62,.12);
}

.events-hero-action svg{
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
}

.events-hero-stats{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
}

.events-hero-stat{
    min-width:0;
    padding:17px 15px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:17px;
    background:rgba(255,255,255,.10);
    backdrop-filter:blur(7px);
}

.events-stat-icon{
    width:31px;
    height:31px;
    display:grid;
    place-items:center;
    margin-bottom:10px;
    border-radius:10px;
    background:rgba(255,255,255,.12);
}

.events-stat-icon svg{
    width:17px;
    height:17px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.events-hero-stat strong,
.events-hero-stat > span:last-child{
    display:block;
}

.events-hero-stat strong{
    font-size:25px;
    line-height:1;
}

.events-hero-stat > span:last-child{
    margin-top:6px;
    color:rgba(255,255,255,.69);
    font-size:10px;
    line-height:1.3;
}

.events-intro{
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:24px;
    margin:29px 0 16px;
}

.events-intro h2{
    margin:4px 0 5px;
    color:#173f42;
    font-size:24px;
}

.events-intro p{
    max-width:680px;
    margin:0;
    color:#667b7d;
}

.events-count-pill{
    flex:0 0 auto;
    padding:8px 12px;
    border:1px solid rgba(24,110,115,.12);
    border-radius:999px;
    background:#e5f3f1;
    color:#176e73;
    font-size:12px;
    font-weight:800;
}

.event-card-rich{
    position:relative;
    overflow:hidden;
    border-radius:21px;
    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}

.event-card-rich:hover{
    transform:translateY(-2px);
    border-color:rgba(28,112,116,.22);
    box-shadow:0 17px 34px rgba(25,61,65,.09);
}

.event-card-tone-0{
    background:linear-gradient(145deg,#ffffff,#f1faf8);
}

.event-card-tone-1{
    background:linear-gradient(145deg,#ffffff,#fff8eb);
}

.event-card-tone-2{
    background:linear-gradient(145deg,#ffffff,#eef4fb);
}

.event-card-rich::after{
    content:"";
    position:absolute;
    width:100px;
    height:100px;
    right:-52px;
    bottom:-52px;
    border-radius:50%;
    background:rgba(255,255,255,.58);
    pointer-events:none;
}

.event-card-rich .event-date.big{
    position:relative;
    z-index:1;
    border:1px solid rgba(28,112,116,.08);
    background:rgba(255,255,255,.75);
    box-shadow:0 6px 15px rgba(25,61,65,.05);
}

.event-card-rich .event-card-body{
    position:relative;
    z-index:1;
}

.event-create-card{
    border-radius:22px;
    background:rgba(255,255,255,.94);
}

@media(max-width:1180px){
    .events-hero{
        grid-template-columns:1fr;
    }
}

@media(max-width:980px){
    .events-intro{
        align-items:flex-start;
    }
}

@media(max-width:700px){
    .events-hero{
        padding:28px;
    }

    .events-intro{
        flex-direction:column;
    }
}

@media(max-width:620px){
    .events-hero{
        padding:24px 21px;
        border-radius:22px;
    }

    .events-hero-stats{
        grid-template-columns:1fr;
    }

    .events-hero-stat{
        display:grid;
        grid-template-columns:34px auto 1fr;
        gap:10px;
        align-items:center;
        padding:12px 13px;
    }

    .events-stat-icon{
        margin:0;
    }

    .events-hero-stat > span:last-child{
        margin:0;
        text-align:right;
    }
}

/* =========================================================
   CazLink - Documents harmonisés dashboard
   ========================================================= */

.documents-page{
    margin:0 -34px -46px;
    padding:18px 34px 46px;
    min-height:calc(100vh - 78px);
    background:
        radial-gradient(circle at 88% 8%,rgba(77,167,168,.16),transparent 28%),
        radial-gradient(circle at 7% 62%,rgba(222,180,104,.11),transparent 30%),
        linear-gradient(145deg,#f4f9f8 0%,#eef5f6 52%,#f8f5ee 100%);
}

.documents-hero-premium{
    position:relative;
    overflow:hidden;
    display:grid;
    grid-template-columns:minmax(0,1.3fr) minmax(380px,.7fr);
    gap:34px;
    align-items:end;
    margin-bottom:29px;
    padding:38px 40px;
    border-radius:27px;
    background:linear-gradient(135deg,#0f5960 0%,#14777e 58%,#3b9b9f 100%);
    color:#fff;
    box-shadow:0 22px 50px rgba(18,77,81,.15);
}

.documents-hero-premium::after{
    content:"";
    position:absolute;
    width:270px;
    height:270px;
    right:-90px;
    top:-120px;
    border-radius:50%;
    background:rgba(255,255,255,.08);
}

.documents-hero-copy{
    position:relative;
    z-index:1;
    max-width:760px;
}

.documents-eyebrow{
    display:inline-flex;
    margin-bottom:10px;
    padding:7px 11px;
    border:1px solid rgba(255,255,255,.2);
    border-radius:999px;
    background:rgba(255,255,255,.09);
    color:rgba(255,255,255,.88);
    font-size:11px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.documents-hero-premium h1{
    margin:0 0 12px;
    font-size:clamp(2.3rem,4vw,3.65rem);
    line-height:1;
    letter-spacing:-.045em;
}

.documents-hero-premium p{
    max-width:690px;
    margin:0;
    color:rgba(255,255,255,.82);
    line-height:1.65;
}

.documents-hero-action{
    display:inline-flex;
    align-items:center;
    gap:9px;
    margin-top:22px;
    padding:11px 15px;
    border-radius:13px;
    background:#fff;
    color:#126b71;
    font-size:13px;
    font-weight:800;
    box-shadow:0 8px 20px rgba(9,58,62,.12);
}

.documents-hero-action svg{
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
}

.documents-hero-premium .documents-hero-stats{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
}

.documents-stat-premium{
    min-width:0;
    padding:17px 15px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:17px;
    background:rgba(255,255,255,.10);
    box-shadow:none;
    backdrop-filter:blur(7px);
}

.documents-stat-icon{
    width:31px;
    height:31px;
    display:grid;
    place-items:center;
    margin-bottom:10px;
    border-radius:10px;
    background:rgba(255,255,255,.12);
    color:#fff;
}

.documents-stat-icon svg{
    width:17px;
    height:17px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.documents-stat-premium strong{
    color:#fff;
    font-size:25px;
}

.documents-stat-premium span{
    color:rgba(255,255,255,.69);
}

.documents-stat-premium > span:last-child{
    margin-top:6px;
    font-size:10px;
    line-height:1.3;
}

.document-card:nth-child(3n+1){
    background:linear-gradient(145deg,#fff,#f1faf8);
}

.document-card:nth-child(3n+2){
    background:linear-gradient(145deg,#fff,#fff8eb);
}

.document-card:nth-child(3n){
    background:linear-gradient(145deg,#fff,#eef4fb);
}

@media(max-width:1180px){
    .documents-hero-premium{
        grid-template-columns:1fr;
    }
}

@media(max-width:980px){
    .documents-page{
        margin:0 -20px -36px;
        padding:18px 20px 36px;
    }
}

@media(max-width:760px){
    .documents-hero-premium{
        display:grid;
        padding:28px;
    }

    .documents-hero-premium .documents-hero-stats{
        width:100%;
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:620px){
    .documents-page{
        margin:0 -14px -28px;
        padding:14px 14px 28px;
    }

    .documents-hero-premium{
        padding:24px 21px;
        border-radius:22px;
    }

    .documents-hero-premium .documents-hero-stats{
        grid-template-columns:1fr;
    }

    .documents-stat-premium{
        display:grid;
        grid-template-columns:34px auto 1fr;
        gap:10px;
        align-items:center;
        padding:12px 13px;
    }

    .documents-stat-icon{
        margin:0;
    }

    .documents-stat-premium > span:last-child{
        margin:0;
        text-align:right;
    }
}

/* Documents : largeur dynamique selon le nombre de fichiers */
.document-grid{
    grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));
}

@media(max-width:760px){
    .document-grid{
        grid-template-columns:1fr;
    }
}

/* Documents : un fichier seul occupe toute la bibliothèque */
.document-grid.document-grid-single{
    grid-template-columns:1fr;
}

.document-grid-single .document-card{
    width:100%;
    max-width:none;
}

/* =========================================================
   CazLink - Invitations membres
   ========================================================= */

.member-invitations-panel{
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);
    gap:22px;
    margin:0 0 26px;
}

.member-invite-card,
.member-pending-card{
    background:#fff;
    border:1px solid rgba(31,98,99,.10);
    border-radius:24px;
    box-shadow:0 16px 40px rgba(28,76,78,.08);
    padding:24px;
}

.member-invite-card h2,
.member-pending-card h2{
    margin:6px 0 8px;
}

.member-invite-card > p{
    margin:0 0 20px;
    color:#607477;
    line-height:1.65;
}

.member-invite-form-preview{
    display:grid;
    grid-template-columns:minmax(0,1fr) 180px auto;
    gap:14px;
    align-items:end;
}

.member-invite-form-preview .form-group{
    margin:0;
}

.member-invite-form-preview input,
.member-invite-form-preview select{
    width:100%;
}

.member-invite-form-preview button[disabled]{
    opacity:.55;
    cursor:not-allowed;
}

.member-pending-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:16px;
}

.member-pending-heading strong{
    min-width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:14px;
    background:#e9f6f3;
    color:#197275;
    font-size:1.15rem;
}

.member-pending-item{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    padding:14px 0;
    border-top:1px solid #edf2f2;
}

.member-pending-item:first-of-type{
    border-top:0;
}

.member-pending-item div{
    display:grid;
    gap:4px;
}

.member-pending-item span,
.member-pending-item small,
.member-pending-empty{
    color:#738487;
}

.member-pending-empty{
    padding:16px 0 4px;
}

@media(max-width:980px){
    .member-invitations-panel{
        grid-template-columns:1fr;
    }

    .member-invite-form-preview{
        grid-template-columns:1fr 1fr;
    }

    .member-invite-form-preview button{
        grid-column:1 / -1;
    }
}

@media(max-width:620px){
    .member-invite-form-preview{
        grid-template-columns:1fr;
    }

    .member-invite-form-preview button{
        grid-column:auto;
    }

    .member-pending-item{
        align-items:flex-start;
        flex-direction:column;
    }
}

/* Membres : un membre seul occupe toute la largeur */
.member-grid.member-grid-single{
    grid-template-columns:1fr;
}

.member-grid-single .member-card{
    width:100%;
    max-width:none;
}

/* =========================================================
   CazLink - Invitation publique
   ========================================================= */

.invitation-public-page{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:32px 20px;
    background:
        radial-gradient(circle at 15% 15%, rgba(69,181,167,.18), transparent 32%),
        radial-gradient(circle at 85% 85%, rgba(78,137,201,.14), transparent 30%),
        #f3f7f6;
}

.invitation-public-card{
    width:min(100%, 640px);
    padding:36px;
    background:#fff;
    border:1px solid rgba(31,98,99,.10);
    border-radius:28px;
    box-shadow:0 24px 70px rgba(25,76,78,.13);
}

.invitation-public-brand{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:30px;
    color:#153e40;
    font-size:1.15rem;
}

.invitation-public-card h1{
    margin:8px 0 12px;
    font-size:clamp(2rem, 5vw, 2.8rem);
    line-height:1.05;
    color:#153e40;
}

.invitation-public-intro{
    margin:0 0 26px;
    color:#647b7e;
    line-height:1.7;
}

.invitation-public-details{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    margin:0 0 24px;
}

.invitation-public-details > div{
    padding:16px;
    border-radius:16px;
    background:#f2f8f7;
}

.invitation-public-details span{
    display:block;
    margin-bottom:5px;
    color:#738487;
    font-size:.82rem;
}

.invitation-public-details strong{
    overflow-wrap:anywhere;
}

.invitation-public-actions{
    display:grid;
    gap:14px;
    margin-top:26px;
}

.invitation-public-actions .auth-submit{
    display:block;
    text-align:center;
    text-decoration:none;
}

.invitation-secondary-link{
    display:inline-block;
    color:#176f73;
    font-weight:700;
    text-decoration:none;
}

.invitation-public-message{
    margin-top:24px;
    padding:16px 18px;
    border-radius:16px;
    line-height:1.55;
}

.invitation-public-message.success{
    background:#eaf7f2;
    color:#236a58;
}

.invitation-public-message.warning{
    background:#fff6e8;
    color:#835e22;
}

.invitation-public-expiry{
    margin:28px 0 0;
    padding-top:20px;
    border-top:1px solid #edf2f2;
    color:#7b8b8d;
    font-size:.88rem;
}

.invitation-invalid-card{
    text-align:center;
}

.invitation-invalid-card .invitation-public-brand{
    justify-content:center;
}

@media(max-width:620px){
    .invitation-public-card{
        padding:26px 22px;
    }

    .invitation-public-details{
        grid-template-columns:1fr;
    }
}

/* Finition formulaire d'invitation membres */

.member-invite-form-preview input,
.member-invite-form-preview select{
    min-height:48px;
    padding:0 14px;
    border:1px solid #cbdadb;
    border-radius:12px;
    background:#fff;
    color:#183b3d;
    font:inherit;
    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        background .18s ease;
}

.member-invite-form-preview input:focus,
.member-invite-form-preview select:focus{
    outline:none;
    border-color:#25878a;
    box-shadow:0 0 0 3px rgba(37,135,138,.12);
}

.member-invite-form-preview select{
    cursor:pointer;
}

.member-invite-form-preview .btn-primary{
    min-height:48px;
    padding:0 20px;
    border:0;
    border-radius:12px;
    background:#18777b;
    color:#fff;
    font:inherit;
    font-weight:700;
    white-space:nowrap;
    cursor:pointer;
    box-shadow:0 8px 18px rgba(24,119,123,.16);
    transition:
        transform .18s ease,
        box-shadow .18s ease,
        background .18s ease;
}

.member-invite-form-preview .btn-primary:hover{
    background:#12686c;
    box-shadow:0 10px 22px rgba(24,119,123,.22);
    transform:translateY(-1px);
}

.member-invite-form-preview .btn-primary:focus-visible{
    outline:3px solid rgba(37,135,138,.24);
    outline-offset:2px;
}

.member-invite-form-preview .btn-primary:active{
    transform:translateY(0);
}

/* =========================================================
   CazLink - Projets & Chantiers
   ========================================================= */

.projects-page,
.project-form-page,
.project-dashboard-page{
    padding-bottom:28px;
}

.projects-hero,
.project-dashboard-hero{
    position:relative;
    overflow:hidden;
    display:flex;
    justify-content:space-between;
    gap:34px;
    padding:38px;
    border-radius:27px;
    color:#fff;
    background:
        radial-gradient(circle at 88% 18%,rgba(255,255,255,.16),transparent 25%),
        linear-gradient(135deg,#0b4e53 0%,#16777c 58%,#3aa4a6 100%);
    box-shadow:0 22px 48px rgba(18,79,83,.14);
}

.projects-hero::after,
.project-dashboard-hero::after{
    content:"";
    position:absolute;
    width:230px;
    height:230px;
    right:-90px;
    bottom:-130px;
    border-radius:50%;
    background:rgba(255,255,255,.08);
}

.projects-hero-copy,
.project-dashboard-copy,
.projects-hero-stats,
.project-dashboard-dates{
    position:relative;
    z-index:1;
}

.projects-hero-copy{
    max-width:700px;
}

.projects-hero h1,
.project-dashboard-hero h1{
    margin:8px 0 12px;
    font-size:clamp(2.1rem,4vw,3.35rem);
    letter-spacing:-.04em;
}

.projects-hero p,
.project-dashboard-hero p{
    max-width:720px;
    margin:0;
    color:rgba(255,255,255,.8);
    line-height:1.65;
}

.projects-hero-actions,
.project-dashboard-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:24px;
}

.projects-primary-action,
.project-dashboard-action,
.project-secondary-action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:0 16px;
    border:0;
    border-radius:13px;
    font:inherit;
    font-weight:800;
    cursor:pointer;
}

.projects-primary-action{
    background:#fff;
    color:#0d5a5f;
    box-shadow:0 8px 22px rgba(0,0,0,.08);
}

.projects-primary-action:hover{
    transform:translateY(-1px);
}

.projects-hero-stats{
    align-self:flex-end;
    display:flex;
    gap:11px;
}

.projects-stat{
    min-width:112px;
    padding:18px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:17px;
    background:rgba(255,255,255,.12);
    backdrop-filter:blur(10px);
}

.projects-stat strong,
.projects-stat span{
    display:block;
}

.projects-stat strong{
    font-size:1.85rem;
}

.projects-stat span{
    margin-top:3px;
    color:rgba(255,255,255,.72);
    font-size:.73rem;
}

.projects-summary-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
    margin-top:22px;
}

.projects-summary-card{
    position:relative;
    overflow:hidden;
    min-height:145px;
    padding:22px;
    border-radius:21px;
    box-shadow:0 9px 28px rgba(20,60,63,.045);
}

.projects-summary-card::after{
    content:"";
    position:absolute;
    width:95px;
    height:95px;
    right:-30px;
    bottom:-38px;
    border-radius:50%;
    opacity:.45;
}

.projects-summary-general{
    border:1px solid #cde4df;
    background:linear-gradient(145deg,#edf8f5,#fff);
}

.projects-summary-general::after{
    background:#c8eee3;
}

.projects-summary-construction{
    border:1px solid #eadfbe;
    background:linear-gradient(145deg,#fff8e8,#fff);
}

.projects-summary-construction::after{
    background:#f4dea2;
}

.projects-summary-active{
    border:1px solid #d6dfee;
    background:linear-gradient(145deg,#f0f5fc,#fff);
}

.projects-summary-active::after{
    background:#cbdaf0;
}

.projects-summary-card span,
.projects-summary-card strong,
.projects-summary-card p{
    position:relative;
    z-index:1;
}

.projects-summary-card>span{
    color:#607376;
    font-size:.73rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.projects-summary-card strong{
    display:block;
    margin:5px 0;
    color:#25494c;
    font-size:2rem;
}

.projects-summary-card p{
    max-width:300px;
    margin:0;
    color:#6c7b7d;
    font-size:.78rem;
    line-height:1.5;
}

.projects-content-card{
    margin-top:22px;
    padding:24px;
    border:1px solid #dce8e8;
    border-radius:23px;
    background:#fff;
    box-shadow:0 9px 30px rgba(19,62,65,.045);
}

.projects-section-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:19px;
}

.projects-section-heading h2{
    margin:4px 0 0;
}

.projects-text-action{
    color:var(--brand);
    font-size:.8rem;
    font-weight:800;
}

.project-card-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:15px;
}

.project-card{
    position:relative;
    overflow:hidden;
    min-height:225px;
    display:flex;
    flex-direction:column;
    padding:21px;
    border-radius:20px;
    color:inherit;
    transition:transform .17s ease,box-shadow .17s ease,border-color .17s ease;
}

.project-card-general{
    border:1px solid #d2e6e1;
    background:linear-gradient(145deg,#f1faf7,#fff);
}

.project-card-construction{
    border:1px solid #eadfbe;
    background:linear-gradient(145deg,#fff9ea,#fff);
}

.project-card:hover{
    transform:translateY(-2px);
    box-shadow:0 13px 30px rgba(19,62,65,.08);
}

.project-card-head,
.project-card-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.project-type-icon{
    width:45px;
    height:45px;
    display:grid;
    place-items:center;
    border-radius:14px;
    background:#fff;
    color:#17696d;
    box-shadow:0 6px 18px rgba(20,65,68,.07);
}

.project-type-icon svg,
.projects-empty-icon svg,
.project-module-icon svg{
    width:23px;
    height:23px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.project-type-badge{
    display:inline-flex;
    padding:6px 9px;
    border-radius:999px;
    background:rgba(255,255,255,.78);
    color:#496366;
    font-size:.67rem;
    font-weight:800;
}

.project-card-content{
    flex:1;
    padding:18px 0;
}

.project-card-content h3{
    margin:0 0 7px;
    color:#294b4e;
    font-size:1.22rem;
}

.project-card-content p{
    margin:0;
    color:#687a7d;
    font-size:.8rem;
    line-height:1.55;
}

.project-card-footer{
    padding-top:14px;
    border-top:1px solid rgba(50,90,93,.09);
    font-size:.72rem;
}

.project-card-footer span{
    color:var(--muted);
}

.project-card-footer strong{
    color:var(--brand);
}

.projects-empty-state{
    min-height:170px;
    padding:26px;
    display:flex;
    align-items:center;
    gap:18px;
    border:1px dashed #bcd1d1;
    border-radius:19px;
    background:linear-gradient(135deg,#edf8f5,#fff);
}

.projects-empty-state>div:nth-child(2){
    flex:1;
}

.projects-empty-state h2{
    margin:0;
    font-size:1.05rem;
}

.projects-empty-state p{
    margin:5px 0 0;
    color:var(--muted);
    font-size:.8rem;
}

.projects-empty-icon,
.project-module-icon{
    flex:0 0 50px;
    width:50px;
    height:50px;
    display:grid;
    place-items:center;
    border-radius:15px;
    background:#fff;
    color:var(--brand);
    box-shadow:0 6px 18px rgba(20,65,68,.07);
}

/* Création projet */

.project-form-hero{
    padding:30px 34px;
    border-radius:24px;
    background:linear-gradient(135deg,#eaf7f3,#f8fbfb);
    border:1px solid #d4e8e3;
}

.project-form-hero h1{
    margin:6px 0 8px;
    font-size:clamp(2rem,3.5vw,3rem);
}

.project-form-hero p{
    max-width:700px;
    margin:0;
    color:var(--muted);
}

.project-form-layout{
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
    gap:20px;
    margin-top:20px;
}

.project-create-card,
.project-type-help{
    padding:25px;
    border:1px solid #dce8e8;
    border-radius:22px;
    background:#fff;
    box-shadow:0 9px 28px rgba(19,62,65,.04);
}

.project-create-card{
    display:grid;
    gap:17px;
}

.project-create-card label{
    display:grid;
    gap:7px;
    font-size:.8rem;
    font-weight:800;
    color:#36585b;
}

.project-create-card input,
.project-create-card textarea,
.project-create-card select{
    width:100%;
    padding:12px 13px;
    border:1px solid #cddcdd;
    border-radius:12px;
    background:#fff;
    font:inherit;
}

.project-create-card textarea{
    resize:vertical;
}

.project-date-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}

.project-form-actions{
    display:flex;
    justify-content:flex-end;
    gap:10px;
    padding-top:7px;
}

.project-create-card .projects-primary-action{
    background:var(--brand);
    color:#fff;
}

.project-secondary-action{
    border:1px solid #d3e1e2;
    background:#f8fbfb;
    color:#476164;
}

.project-type-help{
    align-self:start;
}

.project-help-card{
    margin-top:15px;
    padding:17px;
    border:1px solid #d6e8e4;
    border-radius:17px;
    background:#f1faf7;
}

.project-help-construction{
    border-color:#eadfbe;
    background:#fff9ea;
}

.project-help-card strong{
    color:#2a4d50;
}

.project-help-card p,
.project-help-note{
    margin:6px 0 0;
    color:#697b7d;
    font-size:.78rem;
    line-height:1.55;
}

.project-help-note{
    padding:14px 3px 0;
}

/* Dashboard projet */

.project-dashboard-copy{
    max-width:700px;
}

.project-dashboard-kickers{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.project-type-badge-light,
.project-status-badge{
    background:rgba(255,255,255,.14);
    color:#fff;
    border:1px solid rgba(255,255,255,.2);
}

.project-status-badge{
    display:inline-flex;
    padding:6px 9px;
    border-radius:999px;
    font-size:.67rem;
    font-weight:800;
}

.project-dashboard-action.primary{
    background:#fff;
    color:#0e5b60;
}

.project-dashboard-action.secondary{
    border:1px solid rgba(255,255,255,.25);
    background:rgba(255,255,255,.1);
    color:#fff;
}

.project-dashboard-dates{
    align-self:flex-end;
    min-width:235px;
    display:grid;
    gap:10px;
}

.project-dashboard-dates>div{
    padding:16px 18px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:16px;
    background:rgba(255,255,255,.12);
}

.project-dashboard-dates span,
.project-dashboard-dates strong{
    display:block;
}

.project-dashboard-dates span{
    color:rgba(255,255,255,.7);
    font-size:.68rem;
}

.project-dashboard-dates strong{
    margin-top:3px;
}

.project-dashboard-stats{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
    margin-top:19px;
}

.project-dashboard-stats article{
    padding:19px;
    border:1px solid #dce8e8;
    border-radius:19px;
    background:#fff;
    box-shadow:0 8px 24px rgba(20,60,63,.04);
}

.project-dashboard-stats span,
.project-dashboard-stats strong{
    display:block;
}

.project-dashboard-stats span{
    color:var(--muted);
    font-size:.72rem;
}

.project-dashboard-stats strong{
    margin-top:4px;
    color:#294c4f;
    font-size:1.7rem;
}

.project-stat-construction{
    background:linear-gradient(145deg,#fff9ea,#fff)!important;
    border-color:#eadfbe!important;
}

.project-module-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:15px;
    margin-top:19px;
}

.project-module-card{
    min-height:225px;
    padding:22px;
    border-radius:21px;
    background:#fff;
    box-shadow:0 9px 28px rgba(20,60,63,.045);
}

.project-module-tasks{
    border:1px solid #cee5df;
    background:linear-gradient(145deg,#f0faf7,#fff);
}

.project-module-documents{
    border:1px solid #d6dfee;
    background:linear-gradient(145deg,#f1f6fc,#fff);
}

.project-module-team{
    border:1px solid #eadfbe;
    background:linear-gradient(145deg,#fff9ea,#fff);
}

.project-module-card h2{
    margin:8px 0;
    font-size:1.15rem;
}

.project-module-card p{
    color:#687a7d;
    font-size:.8rem;
    line-height:1.55;
}

.project-module-coming{
    display:inline-flex;
    margin-top:12px;
    padding:7px 9px;
    border-radius:9px;
    background:rgba(255,255,255,.78);
    color:#567073;
    font-size:.68rem;
    font-weight:800;
}

.construction-dashboard-block{
    margin-top:20px;
    padding:24px;
    border:1px solid #eadfbe;
    border-radius:23px;
    background:
        linear-gradient(145deg,#fff9e9,#fff);
}

.construction-dashboard-heading{
    display:flex;
    justify-content:space-between;
    gap:20px;
}

.construction-dashboard-heading h2{
    margin:4px 0 5px;
}

.construction-dashboard-heading p{
    margin:0;
    color:#776f5f;
    font-size:.8rem;
}

.construction-badge{
    align-self:flex-start;
    padding:7px 10px;
    border-radius:999px;
    background:#f5df9f;
    color:#6d5b24;
    font-size:.7rem;
    font-weight:900;
}

.construction-tool-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:13px;
    margin-top:18px;
}

.construction-tool-grid article{
    padding:17px;
    border:1px solid rgba(178,150,76,.18);
    border-radius:16px;
    background:rgba(255,255,255,.72);
}

.construction-tool-grid strong{
    color:#534a34;
    font-size:.82rem;
}

.construction-tool-grid p{
    margin:6px 0 0;
    color:#776f5f;
    font-size:.72rem;
    line-height:1.5;
}

@media(max-width:1050px){
    .projects-summary-grid,
    .project-module-grid{
        grid-template-columns:1fr;
    }

    .construction-tool-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .project-dashboard-stats{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:850px){
    .projects-hero,
    .project-dashboard-hero{
        flex-direction:column;
    }

    .projects-hero-stats,
    .project-dashboard-dates{
        align-self:stretch;
    }

    .project-card-grid,
    .project-form-layout{
        grid-template-columns:1fr;
    }
}

@media(max-width:620px){
    .projects-hero,
    .project-dashboard-hero{
        padding:26px 21px;
    }

    .projects-hero-stats{
        display:grid;
        grid-template-columns:repeat(3,1fr);
    }

    .projects-stat{
        min-width:0;
        padding:14px;
    }

    .projects-stat strong{
        font-size:1.45rem;
    }

    .projects-content-card{
        padding:18px;
    }

    .projects-section-heading,
    .construction-dashboard-heading{
        flex-direction:column;
    }

    .projects-empty-state{
        align-items:flex-start;
        flex-direction:column;
    }

    .project-date-grid,
    .project-dashboard-stats,
    .construction-tool-grid{
        grid-template-columns:1fr;
    }

    .project-form-actions{
        flex-direction:column-reverse;
    }

    .project-form-actions>a,
    .project-form-actions>button{
        width:100%;
    }
}

/* Finitions visuelles Projets - package 8B */

.project-form-hero{
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(circle at 88% 12%,rgba(255,255,255,.75),transparent 28%),
        linear-gradient(135deg,#e2f5ef 0%,#edf8f7 55%,#edf4fb 100%);
    box-shadow:0 12px 34px rgba(18,79,83,.06);
}

.project-form-hero::after{
    content:"";
    position:absolute;
    width:180px;
    height:180px;
    right:-65px;
    bottom:-100px;
    border-radius:50%;
    background:rgba(73,169,170,.09);
}

.project-form-hero>div{
    position:relative;
    z-index:1;
}

.project-management-badge{
    display:inline-flex;
    align-items:center;
    min-height:44px;
    padding:0 15px;
    border:1px solid rgba(255,255,255,.3);
    border-radius:13px;
    background:rgba(255,255,255,.13);
    color:#fff;
    font-size:.78rem;
    font-weight:800;
    backdrop-filter:blur(8px);
}

/* =========================================================
   CazLink - Participants projet
   ========================================================= */

.project-module-link{
    display:block;
    color:inherit;
    transition:transform .17s ease,box-shadow .17s ease;
}

.project-module-link:hover{
    transform:translateY(-2px);
    box-shadow:0 13px 30px rgba(19,62,65,.08);
}

.project-participants-page{
    padding-bottom:30px;
}

.participants-hero{
    position:relative;
    overflow:hidden;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:30px;
    padding:34px;
    border-radius:26px;
    background:
        radial-gradient(circle at 90% 15%,rgba(255,255,255,.17),transparent 26%),
        linear-gradient(135deg,#0c555a 0%,#177c80 58%,#46a7a8 100%);
    color:#fff;
    box-shadow:0 20px 44px rgba(18,79,83,.13);
}

.participants-hero h1{
    margin:6px 0 9px;
    font-size:clamp(2rem,3.5vw,3rem);
}

.participants-hero p{
    max-width:720px;
    margin:0;
    color:rgba(255,255,255,.8);
    line-height:1.6;
}

.participants-back-link{
    display:inline-flex;
    margin-top:20px;
    color:#fff;
    font-size:.8rem;
    font-weight:800;
}

.participants-hero-stat{
    min-width:125px;
    padding:18px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:17px;
    background:rgba(255,255,255,.12);
}

.participants-hero-stat strong,
.participants-hero-stat span{
    display:block;
}

.participants-hero-stat strong{
    font-size:1.9rem;
}

.participants-hero-stat span{
    color:rgba(255,255,255,.72);
    font-size:.72rem;
}

.participants-layout{
    display:grid;
    grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);
    gap:20px;
    margin-top:20px;
}

.participants-list-card,
.participant-add-card{
    padding:24px;
    border:1px solid #dce8e8;
    border-radius:22px;
    background:#fff;
    box-shadow:0 9px 28px rgba(19,62,65,.045);
}

.participant-add-card{
    align-self:start;
}

.participants-heading{
    display:flex;
    justify-content:space-between;
    gap:18px;
    margin-bottom:17px;
}

.participants-heading h2,
.participant-add-card h2{
    margin:4px 0 0;
}

.participants-heading>span{
    color:var(--muted);
    font-size:.72rem;
}

.project-participant-list{
    display:grid;
    gap:13px;
}

.project-participant-card{
    padding:18px;
    border:1px solid #dce9e8;
    border-radius:18px;
    background:linear-gradient(145deg,#f8fcfb,#fff);
}

.project-participant-card.is-inactive{
    opacity:.67;
    background:#f7f8f8;
}

.project-participant-main{
    display:flex;
    gap:14px;
    align-items:center;
}

.project-participant-avatar{
    flex:0 0 48px;
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border-radius:15px;
    background:var(--brand-soft);
    color:var(--brand-dark);
    font-size:.82rem;
    font-weight:900;
}

.project-participant-copy{
    min-width:0;
    flex:1;
}

.project-participant-title{
    display:flex;
    align-items:center;
    gap:8px;
}

.project-participant-title h3{
    margin:0;
    font-size:1rem;
}

.project-participant-copy p{
    margin:4px 0 0;
    color:#5e7274;
    font-size:.77rem;
}

.project-participant-copy>span{
    display:block;
    margin-top:4px;
    color:var(--muted);
    font-size:.68rem;
}

.participant-state{
    padding:4px 7px;
    border-radius:999px;
    background:#dff3e9;
    color:#286b4d;
    font-size:.61rem;
    font-weight:900;
}

.participant-state-off{
    background:#eceff0;
    color:#657476;
}

.participant-edit-form{
    display:grid;
    grid-template-columns:170px minmax(180px,1fr) auto;
    gap:9px;
    margin-top:15px;
    padding-top:14px;
    border-top:1px solid #e5eded;
}

.participant-edit-form select,
.participant-edit-form input,
.participant-add-card select,
.participant-add-card input{
    min-height:41px;
    padding:9px 11px;
    border:1px solid #cddcdd;
    border-radius:11px;
    background:#fff;
    font:inherit;
}

.participant-edit-form button,
.participant-add-button{
    border:0;
    border-radius:11px;
    background:var(--brand);
    color:#fff;
    font-weight:800;
    cursor:pointer;
    padding:0 14px;
}

.participant-toggle-form{
    margin-top:8px;
    text-align:right;
}

.participant-toggle-form button{
    border:0;
    background:transparent;
    color:#8a5b55;
    font-size:.7rem;
    font-weight:800;
    cursor:pointer;
}

.participant-add-card form{
    display:grid;
    gap:14px;
    margin-top:18px;
}

.participant-add-card label{
    display:grid;
    gap:6px;
}

.participant-add-card label>span{
    color:#3e5c5f;
    font-size:.75rem;
    font-weight:800;
}

.participant-add-button{
    min-height:44px;
}

.participant-role-help{
    margin-top:20px;
    padding:16px;
    border-radius:16px;
    background:#f3f8f7;
    color:#607275;
}

.participant-role-help>strong{
    color:#315457;
}

.participant-role-help p{
    margin:8px 0 0;
    font-size:.7rem;
    line-height:1.45;
}

.participants-empty-state{
    padding:22px;
    border:1px dashed #bfd2d2;
    border-radius:16px;
    background:#f8fbfb;
    color:var(--muted);
    font-size:.78rem;
}

.participants-empty-state.compact{
    margin-top:16px;
    padding:16px;
}

@media(max-width:980px){
    .participants-layout{
        grid-template-columns:1fr;
    }
}

@media(max-width:700px){
    .participants-hero{
        flex-direction:column;
        align-items:flex-start;
        padding:26px 21px;
    }

    .participants-hero-stat{
        width:100%;
    }

    .participant-edit-form{
        grid-template-columns:1fr;
    }

    .participant-edit-form button{
        min-height:42px;
    }

    .participants-heading{
        flex-direction:column;
    }
}

/* ==========================================================
   CAZLINK - PROJETS / TACHES / KANBAN
   ========================================================== */

.project-tasks-page {
    display: grid;
    gap: 24px;
}

.project-tasks-header {
    position: relative;
    overflow: hidden;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 24px;
    padding: 34px;
    border-radius: 28px;
    color: #fff;
    background:
        radial-gradient(
            circle at 92% 12%,
            rgba(255, 255, 255, .22),
            transparent 30%
        ),
        linear-gradient(
            135deg,
            #087f76 0%,
            #159b91 45%,
            #1689aa 100%
        );
    box-shadow: 0 18px 42px rgba(18, 82, 91, .16);
}

.project-tasks-header .section-label {
    color: rgba(255, 255, 255, .76);
}

.project-tasks-header h1 {
    margin: 8px 0 10px;
    font-size: clamp(2rem, 4vw, 3.15rem);
    line-height: 1;
    color: #fff;
}

.project-tasks-header p {
    max-width: 720px;
    margin: 0;
    color: rgba(255, 255, 255, .88);
    font-size: 1.02rem;
}

.project-tasks-header > a {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 0 17px;
    border: 1px solid rgba(255, 255, 255, .35);
    border-radius: 13px;
    color: #fff;
    background: rgba(255, 255, 255, .12);
    text-decoration: none;
    font-weight: 700;
    backdrop-filter: blur(8px);
}

.project-tasks-header > a:hover {
    background: rgba(255, 255, 255, .2);
}

/* Création ------------------------------------------------ */

.project-task-create {
    padding: 26px;
    border: 1px solid #dfece9;
    border-radius: 24px;
    background:
        linear-gradient(
            145deg,
            #f3fcfa 0%,
            #f8fbff 100%
        );
    box-shadow: 0 12px 30px rgba(40, 75, 83, .07);
}

.project-task-create h2 {
    margin: 0 0 20px;
    color: #203940;
    font-size: 1.35rem;
}

.project-task-create form {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.project-task-create label {
    display: grid;
    gap: 7px;
    color: #40545a;
    font-size: .88rem;
    font-weight: 700;
}

.project-task-create label:has(textarea),
.project-task-create fieldset {
    grid-column: span 2;
}

.project-task-create input,
.project-task-create textarea,
.project-task-create select {
    width: 100%;
    border: 1px solid #d7e3e1;
    border-radius: 12px;
    padding: 11px 12px;
    color: #243b41;
    background: #fff;
    font: inherit;
}

.project-task-create input:focus,
.project-task-create textarea:focus,
.project-task-create select:focus {
    outline: 2px solid rgba(18, 150, 137, .18);
    border-color: #2eaaa0;
}

.project-task-create textarea {
    resize: vertical;
}

.project-task-create fieldset {
    min-width: 0;
    margin: 0;
    padding: 16px;
    border: 1px solid #d8e8e5;
    border-radius: 16px;
    background: rgba(255, 255, 255, .72);
}

.project-task-create legend {
    padding: 0 7px;
    color: #1d665f;
    font-weight: 800;
}

.project-task-create fieldset label {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 7px 0;
    padding: 8px 10px;
    border-radius: 10px;
    background: #f7faf9;
    font-weight: 600;
}

.project-task-create fieldset input[type="checkbox"] {
    width: auto;
}

.project-task-create button[type="submit"] {
    align-self: end;
    min-height: 44px;
    border: 0;
    border-radius: 13px;
    padding: 0 20px;
    background: linear-gradient(135deg, #138f84, #197f9d);
    color: #fff;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(18, 127, 126, .18);
}

/* Kanban -------------------------------------------------- */

.project-kanban {
    display: grid;
    grid-template-columns: repeat(4, minmax(250px, 1fr));
    gap: 16px;
    align-items: start;
    overflow-x: auto;
    padding-bottom: 8px;
}

.project-kanban-column {
    min-width: 250px;
    padding: 15px;
    border-radius: 20px;
    border: 1px solid #e3ebe9;
    background: #f5f8f7;
}

.project-kanban-column[data-status="TODO"] {
    background: #f5f8fc;
}

.project-kanban-column[data-status="IN_PROGRESS"] {
    background: #eef8fb;
}

.project-kanban-column[data-status="WAITING"] {
    background: #fff8e8;
}

.project-kanban-column[data-status="DONE"] {
    background: #eff9f3;
}

.project-kanban-column > h2 {
    position: relative;
    margin: 2px 2px 15px;
    padding-left: 15px;
    color: #31464d;
    font-size: 1rem;
}

.project-kanban-column > h2::before {
    content: "";
    position: absolute;
    left: 0;
    top: .18em;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #8396a0;
}

.project-kanban-column[data-status="IN_PROGRESS"] > h2::before {
    background: #168da5;
}

.project-kanban-column[data-status="WAITING"] > h2::before {
    background: #dda12d;
}

.project-kanban-column[data-status="DONE"] > h2::before {
    background: #48a26b;
}

/* Carte tâche -------------------------------------------- */

.project-task-card {
    margin-bottom: 12px;
    padding: 16px;
    border: 1px solid rgba(210, 223, 221, .95);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(46, 69, 76, .07);
    transition:
        transform .16s ease,
        box-shadow .16s ease;
}

.project-task-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 26px rgba(46, 69, 76, .11);
}

.project-task-card h3 {
    margin: 0 0 12px;
    color: #243d44;
    font-size: 1rem;
    line-height: 1.3;
}

.project-task-card > p {
    margin: 6px 0;
    color: #697a80;
    font-size: .84rem;
    line-height: 1.45;
}

.project-task-card > p strong {
    color: #334b51;
}

.project-task-assignees {
    display: grid;
    gap: 5px;
    margin: 13px 0;
    padding: 10px;
    border-radius: 12px;
    background: #f3f8f7;
}

.project-task-assignees p {
    margin: 0;
    color: #52666c;
    font-size: .8rem;
}

.project-task-status-actions {
    margin-top: 13px;
}

.project-task-card form {
    display: flex;
    gap: 7px;
    align-items: center;
    margin-top: 12px;
}

.project-task-card form select {
    min-width: 0;
    flex: 1;
    padding: 8px 9px;
    border: 1px solid #d5e1df;
    border-radius: 10px;
    background: #fff;
    color: #43585e;
}

.project-task-card form button {
    border: 0;
    border-radius: 10px;
    padding: 9px 10px;
    background: #e9f4f2;
    color: #176d66;
    font-weight: 750;
    cursor: pointer;
}

.project-task-card form button:hover {
    background: #dcefeb;
}

.project-kanban-empty {
    margin: 0;
    padding: 20px 10px;
    border: 1px dashed #cfdcda;
    border-radius: 14px;
    color: #91a09f;
    text-align: center;
    font-size: .86rem;
    background: rgba(255, 255, 255, .5);
}

@media (max-width: 1180px) {
    .project-task-create form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .project-kanban {
        grid-template-columns: repeat(4, minmax(280px, 1fr));
    }
}

@media (max-width: 760px) {
    .project-tasks-header {
        align-items: flex-start;
        flex-direction: column;
        padding: 25px;
    }

    .project-task-create {
        padding: 20px;
    }

    .project-task-create form {
        grid-template-columns: 1fr;
    }

    .project-task-create label:has(textarea),
    .project-task-create fieldset {
        grid-column: auto;
    }

    .project-kanban {
        grid-template-columns: repeat(4, minmax(265px, 85vw));
    }
}

/* ==========================================================
   KANBAN - FINITIONS PACKAGE 10A
   ========================================================== */

.project-kanban-column-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 2px 2px 15px;
}

.project-kanban-column-title h2 {
    margin: 0;
    color: #31464d;
    font-size: 1rem;
}

.project-kanban-column-title > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 28px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .72);
    color: #53676d;
    font-size: .78rem;
    font-weight: 800;
}

.project-task-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 13px;
}

.project-task-priority {
    display: inline-flex;
    padding: 5px 9px;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 800;
}

.project-task-priority-low {
    background: #eef3f5;
    color: #60747b;
}

.project-task-priority-normal {
    background: #e9f5f3;
    color: #287268;
}

.project-task-priority-high {
    background: #fff3d8;
    color: #9a6918;
}

.project-task-priority-urgent {
    background: #fde9e7;
    color: #ac453e;
}

.project-task-deadline {
    color: #76878d;
    font-size: .74rem;
    font-weight: 700;
}

.project-task-progress-visual {
    margin: 13px 0;
}

.project-task-progress-visual > div:first-child {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 6px;
    color: #687b80;
    font-size: .75rem;
}

.project-task-progress-visual strong {
    color: #314a50;
}

.project-task-progress-track {
    overflow: hidden;
    height: 7px;
    border-radius: 999px;
    background: #e9efee;
}

.project-task-progress-track > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #1b9a8e, #3ca9be);
}

.project-task-edit {
    margin-top: 12px;
    border-top: 1px solid #edf1f0;
    padding-top: 10px;
}

.project-task-edit > summary {
    cursor: pointer;
    color: #32756e;
    font-size: .78rem;
    font-weight: 800;
}

.project-task-edit-form {
    display: grid !important;
    gap: 10px !important;
    margin-top: 12px !important;
}

.project-task-edit-form > label,
.project-task-edit-grid label {
    display: grid;
    gap: 5px;
    color: #5b7076;
    font-size: .75rem;
    font-weight: 700;
}

.project-task-edit-form input,
.project-task-edit-form textarea,
.project-task-edit-form select {
    width: 100%;
    border: 1px solid #d7e2e0;
    border-radius: 9px;
    padding: 8px;
    background: #fff;
    color: #33494f;
    font: inherit;
}

.project-task-edit-form textarea {
    resize: vertical;
}

.project-task-edit-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 9px;
}

.project-task-edit-assignments {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.project-task-edit-assignments fieldset {
    min-width: 0;
    margin: 0;
    padding: 9px;
    border: 1px solid #dce6e4;
    border-radius: 10px;
}

.project-task-edit-assignments legend {
    padding: 0 4px;
    color: #3b6f69;
    font-size: .72rem;
    font-weight: 800;
}

.project-task-edit-assignments label {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 5px 0;
    color: #5e7075;
    font-size: .72rem;
}

.project-task-edit-assignments input[type="checkbox"] {
    width: auto;
}

@media (max-width: 760px) {
    .project-task-edit-grid,
    .project-task-edit-assignments {
        grid-template-columns: 1fr;
    }
}

/* ===== CAZLINK MY TASKS 10B ===== */

.my-tasks-page {
    display: grid;
    gap: 24px;
}

.my-tasks-hero {
    position: relative;
    overflow: hidden;
    padding: 30px 32px;
    border: 0;
    border-radius: 26px;
    background:
        radial-gradient(
            circle at 92% 10%,
            rgba(255, 255, 255, 0.24),
            transparent 28%
        ),
        linear-gradient(135deg, #147c67 0%, #197f9b 52%, #3568a9 100%);
    color: #fff;
    box-shadow: 0 18px 45px rgba(28, 73, 96, 0.18);
}

.my-tasks-hero h1,
.my-tasks-hero p,
.my-tasks-hero .eyebrow {
    color: inherit;
}

.my-tasks-hero h1 {
    margin-top: 4px;
    margin-bottom: 8px;
    font-size: clamp(2rem, 4vw, 3rem);
}

.my-tasks-hero > div > p:last-child {
    max-width: 720px;
    margin-bottom: 0;
    color: rgba(255, 255, 255, 0.88);
}

.my-tasks-hero .button-secondary {
    background: rgba(255, 255, 255, 0.96);
    border-color: rgba(255, 255, 255, 0.96);
    color: #175d73;
}

.my-task-filter-panel {
    border: 0;
    border-radius: 22px;
    box-shadow: 0 14px 35px rgba(39, 64, 82, 0.08);
}

.my-task-filters {
    display: grid;
    grid-template-columns: repeat(4, minmax(150px, 1fr));
    gap: 16px;
    align-items: end;
}

.my-task-filters label {
    display: grid;
    gap: 7px;
    min-width: 0;
}

.my-task-filters label > span {
    color: #435466;
    font-size: 0.84rem;
    font-weight: 700;
}

.my-task-filters select {
    width: 100%;
    min-height: 44px;
    padding: 0 38px 0 13px;
    border: 1px solid #dbe4e9;
    border-radius: 12px;
    background: #fff;
    color: #263846;
}

.my-task-filter-actions {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding-top: 2px;
}

.my-task-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.my-task-stat {
    position: relative;
    overflow: hidden;
    min-height: 128px;
    padding: 19px 20px;
    border: 1px solid rgba(73, 119, 137, 0.1);
    border-radius: 20px;
    background:
        linear-gradient(145deg, #ffffff 0%, #f3faf8 100%);
    box-shadow: 0 12px 30px rgba(42, 69, 84, 0.08);
}

.my-task-stat:nth-child(2) {
    background:
        linear-gradient(145deg, #ffffff 0%, #eef7ff 100%);
}

.my-task-stat:nth-child(3) {
    background:
        linear-gradient(145deg, #ffffff 0%, #fff1ef 100%);
}

.my-task-stat:nth-child(4) {
    background:
        linear-gradient(145deg, #ffffff 0%, #fff8e8 100%);
}

.my-task-stat span,
.my-task-stat small {
    display: block;
}

.my-task-stat span {
    color: #536575;
    font-size: 0.84rem;
    font-weight: 700;
}

.my-task-stat strong {
    display: block;
    margin: 8px 0 4px;
    color: #193646;
    font-size: 2rem;
    line-height: 1;
}

.my-task-stat small {
    color: #73818d;
}

.my-task-stat.has-alert {
    border-color: rgba(190, 69, 62, 0.22);
}

.my-task-stat.has-warning {
    border-color: rgba(198, 145, 35, 0.25);
}

.my-task-section {
    border: 0;
    border-radius: 22px;
    box-shadow: 0 14px 35px rgba(39, 64, 82, 0.08);
}

.my-task-section .panel-heading {
    align-items: center;
}

.my-task-count {
    display: inline-grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 14px;
    background: #edf7f4;
    color: #176c5c;
    font-size: 1.1rem;
}

.my-task-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.my-task-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 260px;
    padding: 20px;
    border: 1px solid #e3eaee;
    border-radius: 20px;
    background: #fff;
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        border-color 0.18s ease;
}

.my-task-card:hover {
    transform: translateY(-2px);
    border-color: #c9dadf;
    box-shadow: 0 12px 28px rgba(37, 69, 86, 0.09);
}

.my-task-card.is-overdue {
    border-left: 5px solid #c6534c;
}

.my-task-card.is-due-soon {
    border-left: 5px solid #d79a29;
}

.my-task-card-main {
    min-width: 0;
}

.my-task-card-main h3 {
    margin: 8px 0 4px;
    color: #1d3543;
    font-size: 1.05rem;
}

.my-task-card-main > p {
    margin: 0;
}

.my-task-card-main > .muted {
    margin-top: 8px;
}

.my-task-card-meta,
.my-task-card-details {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.my-task-card-meta span {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 4px 9px;
    border-radius: 999px;
    background: #edf6f7;
    color: #37616c;
    font-size: 0.75rem;
    font-weight: 700;
}

.my-task-card-details {
    margin-top: 14px;
}

.my-task-card-details span {
    padding: 6px 9px;
    border-radius: 9px;
    background: #f6f8f9;
    color: #566772;
    font-size: 0.78rem;
}

.my-task-card-meta .my-task-alert-danger {
    background: #fdeceb;
    color: #a33c37;
}

.my-task-card-meta .my-task-alert-warning {
    background: #fff3d7;
    color: #996812;
}

.my-task-card-actions {
    margin-top: auto;
    padding-top: 18px;
}

.my-task-card-actions .button {
    width: 100%;
    justify-content: center;
    white-space: nowrap;
}

.empty-state.compact {
    padding-top: 22px;
    padding-bottom: 22px;
}

@media (max-width: 1200px) {
    .my-task-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1100px) {
    .my-task-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .my-task-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .my-tasks-hero {
        padding: 24px 20px;
    }

    .my-task-filters,
    .my-task-stats,
    .my-task-list {
        grid-template-columns: 1fr;
    }
}

/* ===== CAZLINK MY TASKS COLOR BOOST 10B ===== */

.my-task-section {
    background:
        linear-gradient(180deg, #ffffff 0%, #fbfcfd 100%);
}

.my-task-section:nth-of-type(1) {
    background:
        linear-gradient(180deg, #f8fcfb 0%, #ffffff 100%);
}

.my-task-section:nth-of-type(2) {
    background:
        linear-gradient(180deg, #fbf9ff 0%, #ffffff 100%);
}

.my-task-filter-panel {
    background:
        linear-gradient(180deg, #f9fcff 0%, #ffffff 100%);
}

.my-task-count {
    background: linear-gradient(135deg, #dff6ef 0%, #d9eef8 100%);
    color: #135d63;
    box-shadow: inset 0 0 0 1px rgba(45, 108, 122, 0.08);
}

.my-task-card {
    overflow: hidden;
    border: 1px solid #dfe8ed;
    box-shadow: 0 12px 28px rgba(35, 68, 83, 0.06);
}

.my-task-card::before {
    content: "";
    display: block;
    position: absolute;
    inset: 0 0 auto 0;
    height: 6px;
    border-radius: 20px 20px 0 0;
    background: linear-gradient(90deg, #6fc7b7 0%, #70b8e8 100%);
}

.my-task-card-status-todo::before {
    background: linear-gradient(90deg, #63c7c7 0%, #71d3e9 100%);
}

.my-task-card-status-in_progress::before {
    background: linear-gradient(90deg, #6cb5ff 0%, #7b92ff 100%);
}

.my-task-card-status-waiting::before {
    background: linear-gradient(90deg, #f3c565 0%, #ef9e61 100%);
}

.my-task-card-status-done::before {
    background: linear-gradient(90deg, #73cb8b 0%, #49b7a3 100%);
}

.my-task-card.is-overdue::before {
    background: linear-gradient(90deg, #f06a62 0%, #d94d63 100%);
}

.my-task-card.is-due-soon::before {
    background: linear-gradient(90deg, #f5be52 0%, #ea8f43 100%);
}

.my-task-project-title {
    color: #23485d;
    font-weight: 500;
}

.task-badge {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 700;
}

.task-badge-project-type {
    background: #dff3ef;
    color: #1f6770;
}

.task-badge-role {
    background: #e4efff;
    color: #355ca8;
}

.my-task-alert-danger {
    background: #fde8e6 !important;
    color: #b0443c !important;
}

.my-task-alert-warning {
    background: #fff0d6 !important;
    color: #a66c16 !important;
}

.task-chip {
    display: inline-flex;
    align-items: center;
    padding: 7px 10px;
    border-radius: 10px;
    font-size: 0.78rem;
    font-weight: 500;
}

.task-chip-status-todo {
    background: #dff7f5;
    color: #186f73;
}

.task-chip-status-in_progress {
    background: #e5edff;
    color: #3558a0;
}

.task-chip-status-waiting {
    background: #fff1dc;
    color: #9a6719;
}

.task-chip-status-done {
    background: #e3f7e8;
    color: #23724a;
}

.task-chip-priority-low {
    background: #edf7f1;
    color: #2f7b52;
}

.task-chip-priority-normal {
    background: #edf3f8;
    color: #516877;
}

.task-chip-priority-high {
    background: #ffe8d8;
    color: #b85d22;
}

.task-chip-priority-urgent {
    background: #fde3e1;
    color: #b5423e;
}

.task-chip-progress {
    background: #eef4ff;
    color: #476099;
}

.task-chip-date {
    background: #f3eefc;
    color: #6d4ca2;
}

.my-task-card-actions .button-secondary {
    background: linear-gradient(135deg, #f0faf7 0%, #e8f3fb 100%);
    border-color: #d2e4eb;
    color: #1f596f;
}

.my-task-card-actions .button-secondary:hover {
    border-color: #bad4dd;
    box-shadow: 0 8px 18px rgba(42, 78, 95, 0.08);
}

.my-task-stat {
    border: 0;
}

.my-task-stat::after {
    content: "";
    position: absolute;
    top: -18px;
    right: -18px;
    width: 76px;
    height: 76px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.32);
}

.my-task-stat:nth-child(1) strong {
    color: #176c5c;
}

.my-task-stat:nth-child(2) strong {
    color: #3562a1;
}

.my-task-stat:nth-child(3) strong {
    color: #b04946;
}

.my-task-stat:nth-child(4) strong {
    color: #ae7415;
}

/* ===== CAZLINK PROJECT TIME TRACKING 10C ===== */

.project-task-time {
    margin-top: 1rem;
    padding-top: .9rem;
    border-top: 1px solid rgba(30, 64, 175, .12);
}

.project-task-time-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
    margin-bottom: .75rem;
}

.project-task-time-summary > div {
    padding: .7rem .8rem;
    border-radius: 14px;
    background:
        linear-gradient(
            135deg,
            rgba(219, 234, 254, .75),
            rgba(224, 231, 255, .55)
        );
    border: 1px solid rgba(59, 130, 246, .14);
}

.project-task-time-summary span {
    display: block;
    margin-bottom: .15rem;
    font-size: .75rem;
    color: #64748b;
}

.project-task-time-summary strong {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    align-items: baseline;
    color: #1e3a8a;
}

.project-task-time-summary small {
    font-weight: 600;
    color: #64748b;
}

.project-task-time-add,
.project-task-time-history {
    margin-top: .65rem;
    border-radius: 14px;
    border: 1px solid rgba(148, 163, 184, .22);
    background: rgba(248, 250, 252, .86);
    overflow: hidden;
}

.project-task-time-add > summary,
.project-task-time-history > summary {
    cursor: pointer;
    padding: .7rem .8rem;
    font-weight: 700;
    color: #334155;
    list-style: none;
}

.project-task-time-add > summary::-webkit-details-marker,
.project-task-time-history > summary::-webkit-details-marker {
    display: none;
}

.project-task-time-add[open] > summary,
.project-task-time-history[open] > summary {
    border-bottom: 1px solid rgba(148, 163, 184, .16);
}

.project-task-time-add form {
    display: grid;
    gap: .7rem;
    padding: .8rem;
}

.project-task-time-add label {
    display: grid;
    gap: .3rem;
}

.project-task-time-add label > span {
    font-size: .78rem;
    font-weight: 700;
    color: #475569;
}

.project-task-time-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .65rem;
}

.project-task-time-add input,
.project-task-time-add select,
.project-task-time-add textarea {
    width: 100%;
    box-sizing: border-box;
}

.project-task-time-add button {
    border: 0;
    border-radius: 12px;
    padding: .7rem .9rem;
    font-weight: 700;
    cursor: pointer;
    color: #fff;
    background:
        linear-gradient(
            135deg,
            #2563eb,
            #4f46e5
        );
}

.project-task-time-history > summary {
    display: flex;
    justify-content: space-between;
    gap: .5rem;
}

.project-task-time-history > summary span {
    min-width: 1.7rem;
    padding: .08rem .45rem;
    border-radius: 999px;
    text-align: center;
    font-size: .75rem;
    color: #1d4ed8;
    background: #dbeafe;
}

.project-task-time-list {
    display: grid;
    gap: .55rem;
    padding: .75rem;
}

.project-task-time-list > article {
    padding: .65rem .7rem;
    border-radius: 12px;
    background: #fff;
    border: 1px solid rgba(148, 163, 184, .16);
}

.project-task-time-list > article > div {
    display: flex;
    justify-content: space-between;
    gap: .5rem;
}

.project-task-time-list p {
    margin: .3rem 0 0;
    font-size: .8rem;
}

.project-task-time-note {
    color: #64748b;
}

.project-task-time-delete {
    margin-top: .45rem;
    border: 0;
    padding: 0;
    background: transparent;
    color: #dc2626;
    font-size: .75rem;
    cursor: pointer;
}

@media (max-width: 720px) {
    .project-task-time-summary,
    .project-task-time-grid {
        grid-template-columns: 1fr;
    }
}

/* ===== CAZLINK CONSTRUCTION DPGF 10D ===== */

.construction-dpgf-page {
    display: grid;
    gap: 1.4rem;
}

.construction-dpgf-hero {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    align-items: flex-start;
    padding: 2rem;
    border-radius: 26px;
    color: #fff;
    background:
        linear-gradient(
            135deg,
            #0f766e 0%,
            #2563eb 100%
        );
    box-shadow: 0 18px 42px rgba(15, 118, 110, .16);
}

.construction-dpgf-hero h1 {
    margin: .3rem 0 .5rem;
    color: #fff;
}

.construction-dpgf-hero p {
    max-width: 760px;
    margin: 0;
    opacity: .92;
}

.construction-dpgf-back {
    flex: 0 0 auto;
    padding: .7rem 1rem;
    border-radius: 12px;
    color: #fff;
    background: rgba(255,255,255,.14);
    text-decoration: none;
}

.construction-dpgf-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.construction-dpgf-stats article {
    padding: 1.1rem 1.2rem;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .06);
}

.construction-dpgf-stats span {
    display: block;
    font-size: .78rem;
    color: #64748b;
}

.construction-dpgf-stats strong {
    display: block;
    margin-top: .25rem;
    font-size: 1.4rem;
    color: #0f172a;
}

.construction-dpgf-stat-amount {
    background:
        linear-gradient(
            135deg,
            #ecfdf5,
            #dbeafe
        ) !important;
}

.construction-dpgf-management {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.construction-dpgf-panel,
.construction-dpgf-section,
.construction-csv-preview {
    padding: 1.25rem;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
}

.construction-dpgf-panel-heading,
.construction-dpgf-section-heading,
.construction-csv-preview-heading {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.construction-dpgf-panel h2,
.construction-dpgf-section h2,
.construction-csv-preview h2 {
    margin: .2rem 0 0;
}

.construction-dpgf-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
}

.construction-dpgf-form label {
    display: grid;
    gap: .35rem;
}

.construction-dpgf-form label > span {
    font-size: .8rem;
    font-weight: 700;
    color: #475569;
}

.construction-dpgf-form input,
.construction-dpgf-form select,
.construction-dpgf-form textarea {
    width: 100%;
    box-sizing: border-box;
}

.construction-dpgf-wide,
.construction-dpgf-file {
    grid-column: 1 / -1;
}

.construction-dpgf-form button,
.construction-csv-preview button {
    grid-column: 1 / -1;
    border: 0;
    border-radius: 13px;
    padding: .8rem 1rem;
    cursor: pointer;
    font-weight: 800;
    color: #fff;
    background:
        linear-gradient(
            135deg,
            #0f766e,
            #2563eb
        );
}

.construction-reference-grid,
.construction-lot-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
}

.construction-reference-grid article,
.construction-lot-grid article {
    padding: 1rem;
    border-radius: 16px;
    border: 1px solid rgba(148, 163, 184, .16);
    background:
        linear-gradient(
            145deg,
            #fff,
            #f8fafc
        );
}

.construction-reference-type,
.construction-reference-format {
    display: inline-flex;
    padding: .25rem .55rem;
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 800;
}

.construction-reference-type {
    background: #ccfbf1;
    color: #115e59;
}

.construction-reference-format {
    background: #dbeafe;
    color: #1d4ed8;
}

.construction-reference-grid h3 {
    margin: .7rem 0 .25rem;
}

.construction-reference-grid p {
    margin: 0;
    font-size: .82rem;
    color: #64748b;
}

.construction-reference-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: .8rem;
}

.construction-reference-actions a {
    padding: .45rem .65rem;
    border-radius: 10px;
    text-decoration: none;
    font-size: .78rem;
    font-weight: 700;
    background: #eff6ff;
    color: #1d4ed8;
}

.construction-reference-imported {
    display: block;
    margin-top: .7rem;
    font-size: .75rem;
    color: #15803d;
}

.construction-lot-grid span {
    display: block;
    margin-bottom: .25rem;
    font-size: .72rem;
    font-weight: 800;
    color: #0f766e;
}

.construction-lot-grid strong {
    display: block;
}

.construction-lot-grid p {
    margin: .45rem 0 0;
    color: #64748b;
    font-size: .82rem;
}

.construction-dpgf-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.construction-dpgf-table {
    width: 100%;
    min-width: 900px;
    border-collapse: collapse;
}

.construction-dpgf-table th {
    padding: .7rem;
    text-align: left;
    font-size: .75rem;
    color: #475569;
    background: #f8fafc;
}

.construction-dpgf-table td {
    padding: .75rem .7rem;
    border-top: 1px solid #eef2f7;
    font-size: .82rem;
    vertical-align: top;
}

.construction-dpgf-table td small {
    display: block;
    margin-top: .2rem;
    color: #64748b;
}

.construction-dpgf-designation {
    min-width: 270px;
}

.construction-dpgf-total {
    padding: .6rem .85rem;
    border-radius: 12px;
    color: #065f46;
    background: #d1fae5;
}

.construction-dpgf-empty {
    padding: 1.2rem;
    border-radius: 15px;
    color: #64748b;
    text-align: center;
    background: #f8fafc;
}

.construction-csv-preview {
    border: 2px solid rgba(37, 99, 235, .12);
}

.construction-csv-preview-heading form {
    flex: 0 0 auto;
}

.construction-csv-limit {
    margin: .8rem 0 0;
    font-size: .78rem;
    color: #64748b;
}

.construction-tool-grid .construction-tool-link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.construction-tool-link > span {
    display: inline-block;
    margin-top: .65rem;
    font-size: .8rem;
    font-weight: 800;
    color: #2563eb;
}

@media (max-width: 1050px) {
    .construction-dpgf-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .construction-dpgf-management {
        grid-template-columns: 1fr;
    }

    .construction-reference-grid,
    .construction-lot-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .construction-dpgf-hero {
        flex-direction: column;
    }

    .construction-dpgf-stats,
    .construction-reference-grid,
    .construction-lot-grid,
    .construction-dpgf-form {
        grid-template-columns: 1fr;
    }

    .construction-dpgf-wide,
    .construction-dpgf-file {
        grid-column: auto;
    }
}

/* ===== CAZLINK CONSTRUCTION PROGRESS 10D-2A ===== */

.construction-progress-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.construction-progress-summary article {
    padding: 1rem 1.15rem;
    border-radius: 18px;
    background:
        linear-gradient(
            135deg,
            #ecfdf5,
            #eff6ff
        );
    box-shadow: 0 10px 28px rgba(15, 23, 42, .05);
}

.construction-progress-summary span {
    display: block;
    font-size: .78rem;
    color: #64748b;
}

.construction-progress-summary strong {
    display: block;
    margin-top: .25rem;
    font-size: 1.25rem;
    color: #065f46;
}

.construction-progress-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.construction-progress-card {
    padding: 1rem;
    border-radius: 18px;
    border: 1px solid rgba(148, 163, 184, .18);
    background:
        linear-gradient(
            145deg,
            #ffffff,
            #f8fafc
        );
}

.construction-progress-card-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.construction-progress-card h3 {
    margin: .2rem 0;
}

.construction-progress-reference {
    font-size: .72rem;
    font-weight: 800;
    color: #0f766e;
}

.construction-progress-card small {
    color: #64748b;
}

.construction-progress-current {
    flex: 0 0 auto;
    text-align: right;
}

.construction-progress-current strong {
    display: block;
    font-size: 1.3rem;
    color: #1d4ed8;
}

.construction-progress-current span {
    font-size: .78rem;
    color: #64748b;
}

.construction-progress-bar {
    height: 8px;
    margin: .85rem 0;
    border-radius: 999px;
    overflow: hidden;
    background: #e2e8f0;
}

.construction-progress-bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background:
        linear-gradient(
            90deg,
            #0f766e,
            #2563eb
        );
}

.construction-progress-base {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .7rem 0;
    font-size: .8rem;
}

.construction-progress-base span {
    color: #64748b;
}

.construction-progress-add,
.construction-progress-history {
    margin-top: .7rem;
    border: 1px solid rgba(148, 163, 184, .18);
    border-radius: 13px;
    overflow: hidden;
    background: rgba(248, 250, 252, .82);
}

.construction-progress-add > summary,
.construction-progress-history > summary {
    padding: .7rem .8rem;
    cursor: pointer;
    list-style: none;
    font-weight: 800;
    color: #334155;
}

.construction-progress-add > summary::-webkit-details-marker,
.construction-progress-history > summary::-webkit-details-marker {
    display: none;
}

.construction-progress-add form {
    display: grid;
    gap: .7rem;
    padding: .8rem;
    border-top: 1px solid rgba(148, 163, 184, .14);
}

.construction-progress-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .7rem;
}

.construction-progress-add label {
    display: grid;
    gap: .3rem;
}

.construction-progress-add label > span {
    font-size: .76rem;
    font-weight: 700;
    color: #475569;
}

.construction-progress-add input,
.construction-progress-add textarea {
    width: 100%;
    box-sizing: border-box;
}

.construction-progress-add button {
    border: 0;
    border-radius: 12px;
    padding: .7rem .9rem;
    cursor: pointer;
    font-weight: 800;
    color: #fff;
    background:
        linear-gradient(
            135deg,
            #0f766e,
            #2563eb
        );
}

.construction-progress-history > summary {
    display: flex;
    justify-content: space-between;
    gap: .5rem;
}

.construction-progress-history > summary span {
    min-width: 1.8rem;
    padding: .05rem .45rem;
    border-radius: 999px;
    text-align: center;
    font-size: .72rem;
    color: #1d4ed8;
    background: #dbeafe;
}

.construction-progress-history-list {
    display: grid;
    gap: .55rem;
    padding: .75rem;
    border-top: 1px solid rgba(148, 163, 184, .14);
}

.construction-progress-history-list > article {
    padding: .65rem;
    border-radius: 11px;
    background: #fff;
}

.construction-progress-history-list > article > div {
    display: flex;
    justify-content: space-between;
    gap: .6rem;
}

.construction-progress-history-list p {
    margin: .25rem 0 0;
    font-size: .76rem;
    color: #64748b;
}

.construction-progress-comment {
    padding-top: .25rem;
    font-style: italic;
}

@media (max-width: 900px) {
    .construction-progress-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .construction-progress-summary,
    .construction-progress-form-grid {
        grid-template-columns: 1fr;
    }
}

/* ===== CAZLINK CONSTRUCTION SITUATIONS 10D-2B ===== */

.construction-dpgf-hero-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .6rem;
}

.construction-situations-page,
.construction-situation-detail {
    display: grid;
    gap: 1.4rem;
}

.construction-situation-create {
    display: grid;
    grid-template-columns: .7fr 1.3fr;
    gap: 2rem;
    padding: 1.3rem;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
}

.construction-situation-create h2 {
    margin: .2rem 0 .4rem;
}

.construction-situation-create p {
    margin: 0;
    color: #64748b;
}

.construction-situation-create form {
    display: grid;
    gap: .75rem;
}

.construction-situation-create-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .75rem;
}

.construction-situation-create label {
    display: grid;
    gap: .3rem;
}

.construction-situation-create label > span {
    font-size: .78rem;
    font-weight: 700;
    color: #475569;
}

.construction-situation-create input,
.construction-situation-create textarea {
    width: 100%;
    box-sizing: border-box;
}

.construction-situation-create button {
    border: 0;
    border-radius: 13px;
    padding: .8rem 1rem;
    cursor: pointer;
    color: #fff;
    font-weight: 800;
    background:
        linear-gradient(
            135deg,
            #0f766e,
            #2563eb
        );
}

.construction-situation-count {
    display: inline-flex;
    min-width: 2.2rem;
    justify-content: center;
    padding: .35rem .65rem;
    border-radius: 999px;
    background: #dbeafe;
    color: #1d4ed8;
}

.construction-situation-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.construction-situation-card {
    display: block;
    padding: 1rem;
    border-radius: 18px;
    border: 1px solid rgba(148, 163, 184, .18);
    color: inherit;
    text-decoration: none;
    background:
        linear-gradient(
            145deg,
            #fff,
            #f8fafc
        );
    transition:
        transform .15s ease,
        box-shadow .15s ease;
}

.construction-situation-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 26px rgba(15, 23, 42, .08);
}

.construction-situation-card-top {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.construction-situation-card-top span {
    font-size: .75rem;
    color: #64748b;
}

.construction-situation-card h3 {
    margin: .2rem 0 0;
}

.construction-situation-card-top > strong {
    font-size: 1.35rem;
    color: #1d4ed8;
}

.construction-situation-card-progress {
    height: 8px;
    margin: .85rem 0;
    overflow: hidden;
    border-radius: 999px;
    background: #e2e8f0;
}

.construction-situation-card-progress span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background:
        linear-gradient(
            90deg,
            #0f766e,
            #2563eb
        );
}

.construction-situation-card-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .6rem;
}

.construction-situation-card-stats div {
    padding: .6rem;
    border-radius: 11px;
    background: #f8fafc;
}

.construction-situation-card-stats span {
    display: block;
    font-size: .7rem;
    color: #64748b;
}

.construction-situation-card-stats strong {
    display: block;
    margin-top: .1rem;
    font-size: .84rem;
}

.construction-situation-card > p {
    margin: .75rem 0 0;
    color: #64748b;
    font-size: .8rem;
}

.construction-situation-open {
    display: inline-block;
    margin-top: .75rem;
    font-size: .78rem;
    font-weight: 800;
    color: #2563eb;
}

.construction-situation-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.construction-situation-summary article {
    padding: 1rem;
    border-radius: 18px;
    background:
        linear-gradient(
            135deg,
            #ecfdf5,
            #eff6ff
        );
}

.construction-situation-summary span {
    display: block;
    font-size: .75rem;
    color: #64748b;
}

.construction-situation-summary strong {
    display: block;
    margin-top: .2rem;
    font-size: 1.1rem;
    color: #065f46;
}

.construction-situation-comment {
    padding: 1rem 1.15rem;
    border-radius: 16px;
    background: #fffbeb;
    border: 1px solid #fde68a;
    color: #854d0e;
}

@media (max-width: 900px) {
    .construction-situation-create {
        grid-template-columns: 1fr;
    }

    .construction-situation-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .construction-situation-grid,
    .construction-situation-create-grid,
    .construction-situation-summary {
        grid-template-columns: 1fr;
    }
}

/* ===== CAZLINK LOTS & ENTREPRISES 10E ===== */

.construction-companies-page {
    display: grid;
    gap: 1.4rem;
}

.construction-company-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.construction-company-stats article {
    padding: 1rem 1.15rem;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .05);
}

.construction-company-stats span {
    display: block;
    font-size: .76rem;
    color: #64748b;
}

.construction-company-stats strong {
    display: block;
    margin-top: .2rem;
    font-size: 1.35rem;
}

.construction-company-stat-assigned {
    background: #ecfdf5 !important;
}

.construction-company-stat-unassigned {
    background: #fff7ed !important;
}

.construction-company-create {
    display: grid;
    grid-template-columns: .65fr 1.35fr;
    gap: 2rem;
    padding: 1.25rem;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
}

.construction-company-create h2 {
    margin: .2rem 0 .45rem;
}

.construction-company-create p {
    margin: 0;
    color: #64748b;
}

.construction-company-create form {
    display: grid;
    gap: .8rem;
}

.construction-company-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
}

.construction-company-create label,
.construction-company-edit label {
    display: grid;
    gap: .3rem;
}

.construction-company-create label > span,
.construction-company-edit label > span {
    font-size: .76rem;
    font-weight: 700;
    color: #475569;
}

.construction-company-create input,
.construction-company-create textarea,
.construction-company-edit input,
.construction-company-edit textarea {
    width: 100%;
    box-sizing: border-box;
}

.construction-company-address {
    grid-column: 1 / -1;
}

.construction-company-create button,
.construction-company-edit button {
    border: 0;
    border-radius: 12px;
    padding: .75rem .9rem;
    color: #fff;
    cursor: pointer;
    font-weight: 800;
    background:
        linear-gradient(
            135deg,
            #0f766e,
            #2563eb
        );
}

.construction-company-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.construction-company-card {
    padding: 1rem;
    border-radius: 18px;
    border: 1px solid rgba(148, 163, 184, .18);
    background:
        linear-gradient(
            145deg,
            #fff,
            #f8fafc
        );
}

.construction-company-card-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.construction-company-card-head span {
    font-size: .72rem;
    color: #64748b;
}

.construction-company-card-head h3 {
    margin: .2rem 0 0;
}

.construction-company-card-head > strong {
    padding: .25rem .55rem;
    border-radius: 999px;
    font-size: .72rem;
    color: #0f766e;
    background: #ccfbf1;
}

.construction-company-contact {
    display: grid;
    gap: .4rem;
    margin-top: .85rem;
}

.construction-company-contact p {
    display: grid;
    gap: .1rem;
    margin: 0;
    font-size: .8rem;
}

.construction-company-contact p > span {
    color: #64748b;
    font-size: .7rem;
}

.construction-company-contact a {
    color: #1d4ed8;
    text-decoration: none;
}

.construction-company-edit {
    margin-top: .8rem;
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, .18);
    overflow: hidden;
}

.construction-company-edit summary {
    padding: .65rem .75rem;
    cursor: pointer;
    font-weight: 700;
    list-style: none;
}

.construction-company-edit form {
    display: grid;
    gap: .6rem;
    padding: .75rem;
    border-top: 1px solid rgba(148, 163, 184, .14);
}

.construction-lot-company-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.construction-lot-company-card {
    padding: 1rem;
    border-radius: 18px;
    border: 1px solid rgba(148, 163, 184, .18);
}

.construction-lot-company-card.is-assigned {
    background:
        linear-gradient(
            145deg,
            #ffffff,
            #ecfdf5
        );
}

.construction-lot-company-card.is-unassigned {
    background:
        linear-gradient(
            145deg,
            #ffffff,
            #fff7ed
        );
}

.construction-lot-company-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.construction-lot-company-head > div > span {
    font-size: .72rem;
    font-weight: 800;
    color: #0f766e;
}

.construction-lot-company-head h3 {
    margin: .2rem 0 0;
}

.construction-lot-status {
    align-self: flex-start;
    padding: .25rem .55rem;
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 800;
}

.construction-lot-status.assigned {
    color: #166534;
    background: #dcfce7;
}

.construction-lot-status.unassigned {
    color: #9a3412;
    background: #ffedd5;
}

.construction-lot-company-current {
    display: grid;
    gap: .2rem;
    margin-top: .8rem;
    padding: .75rem;
    border-radius: 12px;
    background: rgba(255,255,255,.72);
}

.construction-lot-company-current > span,
.construction-lot-company-current > small {
    color: #64748b;
    font-size: .72rem;
}

.construction-lot-company-current.empty {
    color: #9a3412;
    font-size: .8rem;
}

.construction-lot-company-form {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .6rem;
    margin-top: .75rem;
}

.construction-lot-company-form select {
    min-width: 0;
}

.construction-lot-company-form button {
    border: 0;
    border-radius: 10px;
    padding: .65rem .8rem;
    cursor: pointer;
    font-weight: 700;
    color: #fff;
    background: #0f766e;
}

@media (max-width: 1050px) {
    .construction-company-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .construction-company-create {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .construction-company-stats,
    .construction-company-grid,
    .construction-lot-company-grid,
    .construction-company-form-grid {
        grid-template-columns: 1fr;
    }

    .construction-company-address {
        grid-column: auto;
    }

    .construction-lot-company-form {
        grid-template-columns: 1fr;
    }
}

/* ===== CAZLINK JOURNAL & REUNIONS 10F ===== */

.construction-field-page {
    display: grid;
    gap: 1.4rem;
}

.construction-field-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.construction-field-stats article {
    padding: 1rem 1.15rem;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .05);
}

.construction-field-stats span {
    display: block;
    font-size: .75rem;
    color: #64748b;
}

.construction-field-stats strong {
    display: block;
    margin-top: .2rem;
    font-size: 1.35rem;
}

.construction-field-stats .is-planned {
    background: #eff6ff;
}

.construction-field-stats .is-held {
    background: #ecfdf5;
}

.construction-field-create-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.construction-field-create-card {
    padding: 1rem;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .05);
}

.construction-field-create-card h2 {
    margin: .2rem 0 .8rem;
}

.construction-field-create-card form {
    display: grid;
    gap: .6rem;
}

.construction-field-create-card label {
    display: grid;
    gap: .25rem;
}

.construction-field-create-card label > span {
    font-size: .73rem;
    font-weight: 700;
    color: #64748b;
}

.construction-field-create-card input,
.construction-field-create-card textarea,
.construction-field-create-card select {
    width: 100%;
    box-sizing: border-box;
}

.construction-field-create-card button,
.construction-meeting-add-item button {
    border: 0;
    border-radius: 11px;
    padding: .7rem .85rem;
    cursor: pointer;
    font-weight: 800;
    color: #fff;
    background: linear-gradient(135deg, #0f766e, #2563eb);
}

.construction-field-locations {
    padding: 1rem;
    border-radius: 18px;
    background: #fff;
}

.construction-location-list {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.construction-location-list span {
    padding: .42rem .7rem;
    border-radius: 999px;
    background: #f1f5f9;
    color: #334155;
    font-size: .78rem;
    font-weight: 700;
}

.construction-field-columns {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 1rem;
    align-items: start;
}

.construction-journal-timeline {
    display: grid;
    gap: .8rem;
}

.construction-journal-entry {
    display: grid;
    grid-template-columns: 58px 1fr;
    gap: .8rem;
    padding: .9rem;
    border-radius: 16px;
    background: #f8fafc;
    border-left: 4px solid #64748b;
}

.construction-journal-entry.type-progress {
    border-left-color: #0f766e;
    background: #f0fdfa;
}

.construction-journal-entry.type-note {
    border-left-color: #d97706;
    background: #fffbeb;
}

.construction-journal-date {
    display: grid;
    align-content: start;
    text-align: center;
}

.construction-journal-date strong {
    font-size: 1.4rem;
}

.construction-journal-date span {
    font-size: .7rem;
    color: #64748b;
}

.construction-journal-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.construction-journal-head h3 {
    margin: .2rem 0 .45rem;
}

.construction-journal-head small {
    color: #64748b;
}

.construction-journal-type {
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
    color: #0f766e;
}

.construction-journal-content > p {
    margin: 0;
    color: #475569;
    line-height: 1.55;
}

.construction-meeting-list {
    display: grid;
    gap: 1rem;
}

.construction-meeting-card {
    padding: 1rem;
    border-radius: 17px;
    border: 1px solid rgba(148, 163, 184, .2);
    background: linear-gradient(145deg, #fff, #f8fafc);
}

.construction-meeting-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.construction-meeting-head > div > span {
    font-size: .72rem;
    color: #64748b;
}

.construction-meeting-head h3 {
    margin: .2rem 0 0;
}

.construction-meeting-status {
    align-self: flex-start;
    padding: .25rem .55rem;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 800;
}

.construction-meeting-status.status-planned {
    color: #1d4ed8;
    background: #dbeafe;
}

.construction-meeting-status.status-held {
    color: #166534;
    background: #dcfce7;
}

.construction-meeting-status.status-cancelled {
    color: #991b1b;
    background: #fee2e2;
}

.construction-meeting-location {
    margin: .65rem 0 0;
    font-size: .78rem;
    color: #475569;
}

.construction-meeting-notes {
    margin: .5rem 0 0;
    font-size: .8rem;
    color: #64748b;
}

.construction-meeting-status-form {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .5rem;
    margin-top: .7rem;
}

.construction-meeting-status-form button {
    border: 0;
    border-radius: 9px;
    padding: .5rem .7rem;
    cursor: pointer;
    font-weight: 700;
}

.construction-meeting-items {
    display: grid;
    gap: .5rem;
    margin-top: .8rem;
}

.construction-meeting-items h4 {
    display: flex;
    justify-content: space-between;
    margin: 0;
}

.construction-meeting-items h4 span {
    padding: .15rem .45rem;
    border-radius: 999px;
    background: #e2e8f0;
    font-size: .7rem;
}

.construction-meeting-item {
    display: grid;
    gap: .15rem;
    padding: .65rem;
    border-radius: 11px;
    background: #f8fafc;
}

.construction-meeting-item > span {
    font-size: .65rem;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
}

.construction-meeting-item.item-action {
    background: #eff6ff;
}

.construction-meeting-item.item-action > span {
    color: #1d4ed8;
}

.construction-meeting-item.item-decision {
    background: #ecfdf5;
}

.construction-meeting-item.item-decision > span {
    color: #047857;
}

.construction-meeting-item p {
    margin: .2rem 0 0;
    color: #64748b;
    font-size: .78rem;
}

.construction-meeting-empty {
    margin: 0;
    color: #94a3b8;
    font-size: .78rem;
}

.construction-meeting-add-item {
    margin-top: .75rem;
}

.construction-meeting-add-item summary {
    cursor: pointer;
    font-size: .78rem;
    font-weight: 800;
    color: #2563eb;
}

.construction-meeting-add-item form {
    display: grid;
    gap: .5rem;
    margin-top: .6rem;
}

@media (max-width: 1050px) {
    .construction-field-create-grid {
        grid-template-columns: 1fr;
    }

    .construction-field-columns {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .construction-field-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .construction-journal-entry {
        grid-template-columns: 46px 1fr;
    }
}

/* ===== CAZLINK OPR & RESERVES 10G ===== */

.construction-opr-page {
    display: grid;
    gap: 1.4rem;
}

.construction-opr-stats {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .75rem;
}

.construction-opr-stats article {
    padding: .9rem 1rem;
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .05);
}

.construction-opr-stats span {
    display: block;
    font-size: .7rem;
    color: #64748b;
}

.construction-opr-stats strong {
    display: block;
    margin-top: .15rem;
    font-size: 1.25rem;
}

.construction-opr-stats .status-open {
    background: #fff7ed;
}

.construction-opr-stats .status-progress {
    background: #eff6ff;
}

.construction-opr-stats .status-review {
    background: #fefce8;
}

.construction-opr-stats .status-validated {
    background: #ecfdf5;
}

.construction-opr-stats .status-rework {
    background: #fef2f2;
}

.construction-opr-filters {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.construction-opr-filters a {
    padding: .5rem .75rem;
    border-radius: 999px;
    color: #475569;
    background: #fff;
    text-decoration: none;
    font-size: .77rem;
    font-weight: 800;
    border: 1px solid rgba(148, 163, 184, .2);
}

.construction-opr-filters a.active {
    color: #fff;
    background: linear-gradient(135deg, #0f766e, #2563eb);
}

.construction-opr-create {
    display: grid;
    grid-template-columns: .55fr 1.45fr;
    gap: 2rem;
    padding: 1.25rem;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
}

.construction-opr-create h2 {
    margin: .2rem 0 .45rem;
}

.construction-opr-create p {
    margin: 0;
    color: #64748b;
}

.construction-opr-create form {
    display: grid;
    gap: .8rem;
}

.construction-opr-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
}

.construction-opr-create label {
    display: grid;
    gap: .28rem;
}

.construction-opr-create label > span {
    font-size: .73rem;
    color: #64748b;
    font-weight: 700;
}

.construction-opr-create input,
.construction-opr-create textarea,
.construction-opr-create select {
    width: 100%;
    box-sizing: border-box;
}

.opr-form-wide {
    grid-column: 1 / -1;
}

.construction-opr-create button {
    border: 0;
    border-radius: 12px;
    padding: .75rem .9rem;
    cursor: pointer;
    color: #fff;
    font-weight: 800;
    background: linear-gradient(135deg, #0f766e, #2563eb);
}

.construction-opr-count {
    display: inline-flex;
    min-width: 2rem;
    justify-content: center;
    padding: .32rem .6rem;
    border-radius: 999px;
    background: #e2e8f0;
    color: #334155;
}

.construction-opr-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.construction-opr-card {
    padding: 1rem;
    border-radius: 18px;
    border: 1px solid rgba(148, 163, 184, .18);
    background: #fff;
}

.construction-opr-card.opr-open {
    border-left: 4px solid #f97316;
}

.construction-opr-card.opr-in-progress {
    border-left: 4px solid #2563eb;
}

.construction-opr-card.opr-ready-for-review {
    border-left: 4px solid #ca8a04;
}

.construction-opr-card.opr-validated {
    border-left: 4px solid #16a34a;
}

.construction-opr-card.opr-to-rework {
    border-left: 4px solid #dc2626;
}

.construction-opr-card-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.construction-opr-number {
    font-size: .68rem;
    font-weight: 800;
    color: #64748b;
    text-transform: uppercase;
}

.construction-opr-card h3 {
    margin: .2rem 0 0;
}

.construction-opr-status {
    align-self: flex-start;
    padding: .28rem .58rem;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 800;
    white-space: nowrap;
}

.construction-opr-status.status-open {
    color: #9a3412;
    background: #ffedd5;
}

.construction-opr-status.status-in-progress {
    color: #1d4ed8;
    background: #dbeafe;
}

.construction-opr-status.status-ready-for-review {
    color: #854d0e;
    background: #fef9c3;
}

.construction-opr-status.status-validated {
    color: #166534;
    background: #dcfce7;
}

.construction-opr-status.status-to-rework {
    color: #991b1b;
    background: #fee2e2;
}

.construction-opr-description {
    margin: .7rem 0 0;
    color: #475569;
    line-height: 1.5;
}

.construction-opr-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
    margin-top: .8rem;
}

.construction-opr-meta > span {
    display: grid;
    gap: .12rem;
    padding: .55rem;
    border-radius: 10px;
    background: #f8fafc;
}

.construction-opr-meta small {
    font-size: .66rem;
    color: #64748b;
}

.construction-opr-meta strong {
    font-size: .78rem;
}

.construction-opr-author {
    margin-top: .7rem;
    color: #64748b;
    font-size: .72rem;
}

.construction-opr-validation {
    margin-top: .65rem;
    padding: .55rem .7rem;
    border-radius: 10px;
    color: #166534;
    background: #dcfce7;
    font-size: .75rem;
    font-weight: 800;
}

.construction-opr-status-form {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .5rem;
    margin-top: .8rem;
}

.construction-opr-status-form button {
    border: 0;
    border-radius: 9px;
    padding: .55rem .7rem;
    cursor: pointer;
    font-weight: 700;
}

.construction-opr-comments {
    margin-top: .9rem;
    padding-top: .8rem;
    border-top: 1px solid rgba(148, 163, 184, .18);
}

.construction-opr-comments-head {
    display: flex;
    justify-content: space-between;
    gap: .7rem;
    margin-bottom: .55rem;
}

.construction-opr-comments-head span {
    font-size: .7rem;
    color: #64748b;
}

.construction-opr-comment {
    padding: .6rem;
    margin-bottom: .45rem;
    border-radius: 10px;
    background: #f8fafc;
}

.construction-opr-comment p {
    margin: 0;
    color: #334155;
    font-size: .78rem;
}

.construction-opr-comment small {
    display: block;
    margin-top: .3rem;
    color: #94a3b8;
    font-size: .66rem;
}

.construction-opr-comment-empty {
    color: #94a3b8;
    font-size: .75rem;
}

.construction-opr-comment-form {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .5rem;
    align-items: end;
    margin-top: .6rem;
}

.construction-opr-comment-form textarea {
    width: 100%;
    box-sizing: border-box;
}

.construction-opr-comment-form button {
    border: 0;
    border-radius: 9px;
    padding: .62rem .75rem;
    cursor: pointer;
    color: #fff;
    font-weight: 800;
    background: #0f766e;
}

@media (max-width: 1100px) {
    .construction-opr-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .construction-opr-create {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 820px) {
    .construction-opr-list {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 650px) {
    .construction-opr-stats,
    .construction-opr-form-grid,
    .construction-opr-meta {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .opr-form-wide {
        grid-column: 1 / -1;
    }

    .construction-opr-comment-form,
    .construction-opr-status-form {
        grid-template-columns: 1fr;
    }
}

/* ===== CAZLINK INCIDENTS TERRAIN 10H-1 ===== */

.construction-incidents-page {
    display: grid;
    gap: 1.4rem;
}

.construction-incident-stats {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .75rem;
}

.construction-incident-stats article {
    padding: .9rem 1rem;
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .05);
}

.construction-incident-stats span {
    display: block;
    font-size: .7rem;
    color: #64748b;
}

.construction-incident-stats strong {
    display: block;
    margin-top: .15rem;
    font-size: 1.25rem;
}

.construction-incident-stats .status-open {
    background: #fff7ed;
}

.construction-incident-stats .status-progress {
    background: #eff6ff;
}

.construction-incident-stats .status-resolved {
    background: #ecfdf5;
}

.construction-incident-stats .status-closed {
    background: #f1f5f9;
}

.construction-incident-stats .severity-critical {
    background: #fef2f2;
}

.construction-incident-filter-row {
    display: grid;
    gap: .55rem;
}

.construction-incident-create {
    display: grid;
    grid-template-columns: .55fr 1.45fr;
    gap: 2rem;
    padding: 1.25rem;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
}

.construction-incident-create h2 {
    margin: .2rem 0 .45rem;
}

.construction-incident-create p {
    margin: 0;
    color: #64748b;
}

.construction-incident-create form {
    display: grid;
    gap: .8rem;
}

.construction-incident-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
}

.construction-incident-create label {
    display: grid;
    gap: .28rem;
}

.construction-incident-create label > span {
    font-size: .73rem;
    font-weight: 700;
    color: #64748b;
}

.construction-incident-create input,
.construction-incident-create select,
.construction-incident-create textarea {
    width: 100%;
    box-sizing: border-box;
}

.incident-wide {
    grid-column: 1 / -1;
}

.construction-incident-create button {
    border: 0;
    border-radius: 12px;
    padding: .75rem .9rem;
    cursor: pointer;
    color: #fff;
    font-weight: 800;
    background: linear-gradient(135deg, #0f766e, #2563eb);
}

.construction-incident-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.construction-incident-card {
    padding: 1rem;
    border-radius: 18px;
    border: 1px solid rgba(148, 163, 184, .18);
    border-left: 4px solid #64748b;
    background: #fff;
}

.construction-incident-card.severity-low {
    border-left-color: #94a3b8;
}

.construction-incident-card.severity-normal {
    border-left-color: #2563eb;
}

.construction-incident-card.severity-high {
    border-left-color: #f97316;
}

.construction-incident-card.severity-critical {
    border-left-color: #dc2626;
}

.construction-incident-card-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.construction-incident-number {
    color: #64748b;
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
}

.construction-incident-card h3 {
    margin: .2rem 0 0;
}

.construction-incident-badges {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .35rem;
}

.construction-incident-severity,
.construction-incident-status {
    align-self: flex-start;
    padding: .26rem .55rem;
    border-radius: 999px;
    font-size: .66rem;
    font-weight: 800;
}

.construction-incident-severity.severity-low {
    color: #475569;
    background: #f1f5f9;
}

.construction-incident-severity.severity-normal {
    color: #1d4ed8;
    background: #dbeafe;
}

.construction-incident-severity.severity-high {
    color: #9a3412;
    background: #ffedd5;
}

.construction-incident-severity.severity-critical {
    color: #991b1b;
    background: #fee2e2;
}

.construction-incident-status.status-open {
    color: #9a3412;
    background: #ffedd5;
}

.construction-incident-status.status-in-progress {
    color: #1d4ed8;
    background: #dbeafe;
}

.construction-incident-status.status-resolved {
    color: #166534;
    background: #dcfce7;
}

.construction-incident-status.status-closed {
    color: #334155;
    background: #e2e8f0;
}

.construction-incident-type {
    display: inline-flex;
    margin-top: .6rem;
    padding: .25rem .5rem;
    border-radius: 8px;
    background: #f8fafc;
    color: #475569;
    font-size: .7rem;
    font-weight: 800;
}

.construction-incident-description {
    margin: .65rem 0 0;
    color: #475569;
    line-height: 1.5;
}

.construction-incident-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
    margin-top: .8rem;
}

.construction-incident-meta > span {
    display: grid;
    gap: .12rem;
    padding: .55rem;
    border-radius: 10px;
    background: #f8fafc;
}

.construction-incident-meta small {
    font-size: .66rem;
    color: #64748b;
}

.construction-incident-meta strong {
    font-size: .78rem;
}

.construction-incident-author {
    margin-top: .65rem;
    color: #64748b;
    font-size: .72rem;
}

.construction-incident-resolved {
    margin-top: .65rem;
    padding: .55rem .7rem;
    border-radius: 10px;
    color: #166534;
    background: #dcfce7;
    font-size: .75rem;
    font-weight: 800;
}

.construction-incident-status-form {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .5rem;
    margin-top: .8rem;
}

.construction-incident-status-form button {
    border: 0;
    border-radius: 9px;
    padding: .55rem .7rem;
    cursor: pointer;
    font-weight: 700;
}

@media (max-width: 1100px) {
    .construction-incident-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .construction-incident-create {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 820px) {
    .construction-incident-list {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 650px) {
    .construction-incident-stats,
    .construction-incident-form-grid,
    .construction-incident-meta {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .construction-incident-status-form {
        grid-template-columns: 1fr;
    }
}


/* ==========================================================
   CazLink — Chantier / Incidents : photos & pièces terrain
   ========================================================== */

.construction-incident-attachments {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 18px;
    background:
        linear-gradient(
            135deg,
            rgba(240, 253, 250, 0.9),
            rgba(239, 246, 255, 0.9)
        );
}

.construction-incident-attachments-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.85rem;
}

.construction-incident-attachments-head > div {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    flex-wrap: wrap;
}

.construction-incident-attachments-head span {
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #0f766e;
}

.construction-incident-attachments-head strong {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.9rem;
    min-height: 1.9rem;
    padding: 0.25rem 0.55rem;
    border-radius: 999px;
    background: #ffffff;
    box-shadow: 0 5px 16px rgba(15, 23, 42, 0.08);
    font-size: 0.78rem;
}

.construction-incident-attachments-head small {
    color: #64748b;
}

.construction-incident-attachment-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.8rem;
}

.construction-incident-attachment {
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 15px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 7px 20px rgba(15, 23, 42, 0.07);
}

.construction-incident-attachment.phase-before {
    border-top: 4px solid #f59e0b;
}

.construction-incident-attachment.phase-after {
    border-top: 4px solid #10b981;
}

.construction-incident-attachment.phase-evidence {
    border-top: 4px solid #6366f1;
}

.construction-incident-attachment.phase-general {
    border-top: 4px solid #38bdf8;
}

.construction-incident-photo-preview {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 150px;
    padding: 0.45rem;
    background:
        linear-gradient(
            135deg,
            rgba(226, 232, 240, 0.8),
            rgba(248, 250, 252, 0.95)
        );
}

.construction-incident-photo-preview img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 10px;
}

.construction-incident-document-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 90px;
    font-size: 2rem;
    background:
        linear-gradient(
            135deg,
            rgba(219, 234, 254, 0.8),
            rgba(240, 253, 250, 0.9)
        );
}

.construction-incident-attachment-body {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.8rem;
}

.construction-incident-attachment-body > strong {
    overflow-wrap: anywhere;
    color: #0f172a;
    font-size: 0.9rem;
}

.construction-incident-attachment-body small {
    color: #64748b;
    font-size: 0.75rem;
}

.construction-incident-attachment-phase {
    align-self: flex-start;
    padding: 0.25rem 0.55rem;
    border-radius: 999px;
    background: #eef2ff;
    color: #4338ca;
    font-size: 0.72rem;
    font-weight: 800;
}

.construction-incident-attachment-download {
    align-self: flex-start;
    margin-top: 0.25rem;
    color: #0369a1;
    font-size: 0.8rem;
    font-weight: 800;
    text-decoration: none;
}

.construction-incident-attachment-download:hover {
    text-decoration: underline;
}

.construction-incident-attachment-empty {
    padding: 0.85rem;
    border: 1px dashed rgba(100, 116, 139, 0.35);
    border-radius: 13px;
    color: #64748b;
    background: rgba(255, 255, 255, 0.55);
    font-size: 0.85rem;
}

.construction-incident-attachment-form {
    display: grid;
    grid-template-columns:
        minmax(220px, 1.5fr)
        minmax(130px, 0.65fr)
        minmax(180px, 1fr)
        auto;
    gap: 0.7rem;
    align-items: end;
    margin-top: 0.9rem;
    padding-top: 0.9rem;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.construction-incident-attachment-form label {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.construction-incident-attachment-form label > span {
    color: #475569;
    font-size: 0.74rem;
    font-weight: 800;
}

.construction-incident-attachment-form input,
.construction-incident-attachment-form select {
    min-width: 0;
    min-height: 42px;
    padding: 0.55rem 0.7rem;
    border: 1px solid rgba(100, 116, 139, 0.25);
    border-radius: 11px;
    background: #ffffff;
}

.construction-incident-attachment-form input[type="file"] {
    padding: 0.42rem;
}

.construction-incident-attachment-form button {
    min-height: 42px;
    padding: 0.55rem 0.9rem;
    border: 0;
    border-radius: 11px;
    background:
        linear-gradient(
            135deg,
            #0f766e,
            #0284c7
        );
    color: #ffffff;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 7px 18px rgba(2, 132, 199, 0.18);
}

@media (max-width: 1050px) {
    .construction-incident-attachment-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .construction-incident-attachment-form {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 720px) {
    .construction-incident-attachments-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .construction-incident-attachment-grid,
    .construction-incident-attachment-form {
        grid-template-columns: 1fr;
    }

    .construction-incident-photo-preview {
        height: 190px;
    }
}

/* Ajustement final 10H-2 — formulaire pièces terrain */
@media (min-width: 1051px) {
    .construction-incident-attachment-form {
        grid-template-columns:
            minmax(260px, 1.7fr)
            minmax(125px, 0.65fr)
            minmax(160px, 0.9fr)
            auto;
    }
}

/* Ajustement final 10H-2 — formulaire pièces terrain */
@media (min-width: 1051px) {
    .construction-incident-attachment-form {
        grid-template-columns:
            minmax(260px, 1.7fr)
            minmax(125px, 0.65fr)
            minmax(160px, 0.9fr)
            auto;
    }
}

/* ==========================================================
   CazLink — Chantier / Livraisons
   ========================================================== */

.construction-deliveries-page {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.construction-delivery-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.5rem;
    border-radius: 24px;
    background:
        linear-gradient(
            135deg,
            rgba(236, 253, 245, 0.98),
            rgba(239, 246, 255, 0.98)
        );
    box-shadow: 0 12px 34px rgba(15, 23, 42, 0.08);
}

.construction-delivery-hero h1 {
    margin: 0.2rem 0 0.4rem;
}

.construction-delivery-hero p {
    max-width: 760px;
    margin: 0;
    color: #475569;
}

.construction-delivery-back {
    flex: 0 0 auto;
    padding: 0.7rem 0.9rem;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.8);
    color: #0f766e;
    font-weight: 800;
    text-decoration: none;
}

.construction-delivery-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.construction-delivery-stats article {
    padding: 1rem 1.1rem;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.07);
}

.construction-delivery-stats span {
    display: block;
    margin-bottom: 0.3rem;
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.construction-delivery-stats strong {
    color: #0f172a;
    font-size: 1.45rem;
}

.construction-delivery-create {
    display: grid;
    grid-template-columns: minmax(230px, 0.8fr) minmax(0, 2fr);
    gap: 1.4rem;
    padding: 1.35rem;
    border-radius: 22px;
    background:
        linear-gradient(
            135deg,
            rgba(254, 252, 232, 0.85),
            rgba(240, 253, 250, 0.92)
        );
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.07);
}

.construction-delivery-create h2 {
    margin: 0.25rem 0;
}

.construction-delivery-create p {
    margin: 0;
    color: #64748b;
}

.construction-delivery-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
}

.construction-delivery-form-grid label,
.construction-delivery-attachment-form label {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.construction-delivery-form-grid label > span,
.construction-delivery-attachment-form label > span {
    color: #475569;
    font-size: 0.75rem;
    font-weight: 800;
}

.construction-delivery-form-grid input,
.construction-delivery-form-grid select,
.construction-delivery-form-grid textarea,
.construction-delivery-attachment-form input {
    padding: 0.65rem 0.75rem;
    border: 1px solid rgba(100, 116, 139, 0.24);
    border-radius: 11px;
    background: #ffffff;
}

.construction-delivery-form-grid textarea {
    resize: vertical;
}

.delivery-wide {
    grid-column: 1 / -1;
}

.construction-delivery-create form > button,
.construction-delivery-attachment-form button {
    margin-top: 0.8rem;
    padding: 0.7rem 1rem;
    border: 0;
    border-radius: 11px;
    background: linear-gradient(135deg, #0f766e, #0284c7);
    color: #ffffff;
    font-weight: 800;
    cursor: pointer;
}

.construction-delivery-list {
    display: grid;
    gap: 1rem;
}

.construction-delivery-card {
    padding: 1.2rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-left: 5px solid #0ea5e9;
    border-radius: 19px;
    background: #ffffff;
    box-shadow: 0 9px 25px rgba(15, 23, 42, 0.07);
}

.construction-delivery-card-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.construction-delivery-number {
    color: #0284c7;
    font-size: 0.75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.construction-delivery-card h3 {
    margin: 0.25rem 0 0;
}

.construction-delivery-date {
    padding: 0.4rem 0.7rem;
    border-radius: 999px;
    background: #e0f2fe;
    color: #0369a1;
    font-size: 0.78rem;
    font-weight: 800;
}

.construction-delivery-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 0.9rem;
}

.construction-delivery-meta > span {
    min-width: 145px;
    padding: 0.65rem 0.8rem;
    border-radius: 12px;
    background: #f8fafc;
}

.construction-delivery-meta small {
    display: block;
    margin-bottom: 0.2rem;
    color: #64748b;
}

.construction-delivery-meta strong {
    color: #0f172a;
}

.construction-delivery-note {
    margin: 0.9rem 0 0;
    padding: 0.8rem;
    border-radius: 12px;
    background: #fffbeb;
    color: #475569;
}

.construction-delivery-attachments {
    margin-top: 1rem;
    padding: 1rem;
    border-radius: 16px;
    background: linear-gradient(
        135deg,
        rgba(240, 253, 250, 0.75),
        rgba(239, 246, 255, 0.75)
    );
}

.construction-delivery-attachments-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.8rem;
}

.construction-delivery-attachments-head > div {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.construction-delivery-attachments-head span {
    color: #0f766e;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.construction-delivery-attachments-head strong {
    display: inline-flex;
    min-width: 1.8rem;
    min-height: 1.8rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #ffffff;
}

.construction-delivery-attachments-head small {
    color: #64748b;
}

.construction-delivery-attachment-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.8rem;
}

.construction-delivery-attachment {
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 14px;
    background: #ffffff;
}

.construction-delivery-photo {
    display: flex;
    height: 145px;
    align-items: center;
    justify-content: center;
    padding: 0.4rem;
    background: #f8fafc;
}

.construction-delivery-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 9px;
}

.construction-delivery-document-icon {
    display: flex;
    height: 90px;
    align-items: center;
    justify-content: center;
    background: #eff6ff;
    font-size: 2rem;
}

.construction-delivery-attachment-body {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    padding: 0.75rem;
}

.construction-delivery-attachment-body small {
    color: #64748b;
}

.construction-delivery-attachment-body a {
    align-self: flex-start;
    color: #0369a1;
    font-weight: 800;
    text-decoration: none;
}

.construction-delivery-empty {
    padding: 0.75rem;
    border: 1px dashed rgba(100, 116, 139, 0.35);
    border-radius: 11px;
    color: #64748b;
    background: rgba(255, 255, 255, 0.55);
}

.construction-delivery-attachment-form {
    display: grid;
    grid-template-columns:
        minmax(260px, 1.5fr)
        minmax(180px, 1fr)
        auto;
    gap: 0.75rem;
    align-items: end;
    margin-top: 0.85rem;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.construction-delivery-attachment-form button {
    margin-top: 0;
}

@media (max-width: 1000px) {
    .construction-delivery-create {
        grid-template-columns: 1fr;
    }

    .construction-delivery-attachment-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .construction-delivery-hero,
    .construction-delivery-card-head,
    .construction-delivery-attachments-head {
        flex-direction: column;
    }

    .construction-delivery-stats,
    .construction-delivery-form-grid,
    .construction-delivery-attachment-grid,
    .construction-delivery-attachment-form {
        grid-template-columns: 1fr;
    }
}

/* Ajustement visuel final 10I-1 — justificatifs livraison */

.construction-delivery-attachment-grid {
    grid-template-columns: repeat(
        auto-fit,
        minmax(260px, 340px)
    );
    justify-content: start;
}

.construction-delivery-attachment {
    width: 100%;
}

.construction-delivery-photo {
    height: 170px;
}

@media (max-width: 720px) {
    .construction-delivery-attachment-grid {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================
   CazLink — OPR / preuves avant-après
   ========================================================== */

.construction-opr-attachments {
    margin-top: 1rem;
    padding: 1rem;
    border-radius: 17px;
    background:
        linear-gradient(
            135deg,
            rgba(254, 252, 232, 0.76),
            rgba(240, 253, 250, 0.88)
        );
    border: 1px solid rgba(15, 23, 42, 0.07);
}

.construction-opr-attachments-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.85rem;
}

.construction-opr-attachments-head > div {
    display: flex;
    align-items: center;
    gap: 0.55rem;
}

.construction-opr-attachments-head span {
    color: #0f766e;
    font-size: 0.77rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.construction-opr-attachments-head strong {
    display: inline-flex;
    min-width: 1.85rem;
    min-height: 1.85rem;
    align-items: center;
    justify-content: center;
    padding: 0.2rem 0.45rem;
    border-radius: 999px;
    background: #ffffff;
    box-shadow: 0 5px 15px rgba(15, 23, 42, 0.07);
}

.construction-opr-attachments-head small {
    color: #64748b;
}

.construction-opr-attachment-grid {
    display: grid;
    grid-template-columns: repeat(
        auto-fit,
        minmax(260px, 340px)
    );
    justify-content: start;
    gap: 0.8rem;
}

.construction-opr-attachment {
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(15, 23, 42, 0.06);
}

.construction-opr-attachment.phase-before {
    border-top: 4px solid #f59e0b;
}

.construction-opr-attachment.phase-after {
    border-top: 4px solid #10b981;
}

.construction-opr-attachment.phase-evidence {
    border-top: 4px solid #6366f1;
}

.construction-opr-photo {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 170px;
    padding: 0.45rem;
    background: #f8fafc;
}

.construction-opr-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 9px;
}

.construction-opr-document-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 95px;
    background:
        linear-gradient(
            135deg,
            rgba(219, 234, 254, 0.75),
            rgba(240, 253, 250, 0.85)
        );
    font-size: 2rem;
}

.construction-opr-attachment-body {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    padding: 0.75rem;
}

.construction-opr-attachment-body > strong {
    overflow-wrap: anywhere;
    color: #0f172a;
}

.construction-opr-attachment-body small {
    color: #64748b;
    font-size: 0.75rem;
}

.construction-opr-attachment-phase {
    align-self: flex-start;
    padding: 0.25rem 0.55rem;
    border-radius: 999px;
    background: #eef2ff;
    color: #4338ca;
    font-size: 0.72rem;
    font-weight: 800;
}

.construction-opr-attachment-download {
    align-self: flex-start;
    color: #0369a1;
    font-size: 0.8rem;
    font-weight: 800;
    text-decoration: none;
}

.construction-opr-attachment-download:hover {
    text-decoration: underline;
}

.construction-opr-attachment-empty {
    padding: 0.8rem;
    border: 1px dashed rgba(100, 116, 139, 0.35);
    border-radius: 11px;
    background: rgba(255, 255, 255, 0.55);
    color: #64748b;
}

.construction-opr-attachment-form {
    display: grid;
    grid-template-columns:
        minmax(260px, 1.5fr)
        minmax(125px, 0.55fr)
        minmax(170px, 1fr)
        auto;
    gap: 0.7rem;
    align-items: end;
    margin-top: 0.85rem;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.construction-opr-attachment-form label {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.construction-opr-attachment-form label > span {
    color: #475569;
    font-size: 0.74rem;
    font-weight: 800;
}

.construction-opr-attachment-form input,
.construction-opr-attachment-form select {
    min-width: 0;
    min-height: 42px;
    padding: 0.55rem 0.7rem;
    border: 1px solid rgba(100, 116, 139, 0.24);
    border-radius: 11px;
    background: #ffffff;
}

.construction-opr-attachment-form input[type="file"] {
    padding: 0.42rem;
}

.construction-opr-attachment-form button {
    min-height: 42px;
    padding: 0.55rem 0.9rem;
    border: 0;
    border-radius: 11px;
    background: linear-gradient(135deg, #0f766e, #0284c7);
    color: #ffffff;
    font-weight: 800;
    cursor: pointer;
}

@media (max-width: 1000px) {
    .construction-opr-attachment-form {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 720px) {
    .construction-opr-attachments-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .construction-opr-attachment-grid,
    .construction-opr-attachment-form {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================
   CazLink — Journal & réunions / pièces terrain
   ========================================================== */

.construction-journal-attachments,
.construction-meeting-attachments {
    margin-top: .8rem;
    padding: .75rem;
    border-radius: 13px;
    border: 1px solid rgba(148, 163, 184, .18);
    background: rgba(255, 255, 255, .72);
}

.construction-field-attachments-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    margin-bottom: .6rem;
}

.construction-field-attachments-head strong {
    color: #334155;
    font-size: .78rem;
}

.construction-field-attachments-head span {
    display: inline-flex;
    min-width: 1.7rem;
    min-height: 1.7rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #e0f2fe;
    color: #0369a1;
    font-size: .7rem;
    font-weight: 800;
}

.construction-field-attachment-grid {
    display: grid;
    grid-template-columns: repeat(
        auto-fit,
        minmax(180px, 240px)
    );
    justify-content: start;
    gap: .6rem;
    margin-bottom: .7rem;
}

.construction-field-attachment {
    overflow: hidden;
    border: 1px solid rgba(148, 163, 184, .2);
    border-radius: 11px;
    background: #fff;
}

.construction-field-photo {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 125px;
    padding: .35rem;
    background: #f8fafc;
}

.construction-field-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 7px;
}

.construction-field-document-icon {
    display: flex;
    height: 70px;
    align-items: center;
    justify-content: center;
    background: #eff6ff;
    font-size: 1.6rem;
}

.construction-field-attachment-body {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    padding: .55rem;
}

.construction-field-attachment-body strong {
    overflow-wrap: anywhere;
    font-size: .76rem;
    color: #0f172a;
}

.construction-field-attachment-body small {
    overflow-wrap: anywhere;
    font-size: .68rem;
    color: #64748b;
}

.construction-field-attachment-body a {
    align-self: flex-start;
    font-size: .7rem;
    font-weight: 800;
    color: #0369a1;
    text-decoration: none;
}

.construction-field-attachment-form {
    display: grid;
    grid-template-columns:
        minmax(170px, 1.3fr)
        minmax(120px, 1fr)
        auto;
    gap: .5rem;
    align-items: center;
}

.construction-field-attachment-form input {
    min-width: 0;
    padding: .45rem .55rem;
    border: 1px solid rgba(100, 116, 139, .25);
    border-radius: 9px;
    background: #fff;
    font-size: .72rem;
}

.construction-field-attachment-form input[type="file"] {
    padding: .32rem;
}

.construction-field-attachment-form button {
    border: 0;
    border-radius: 9px;
    padding: .55rem .7rem;
    cursor: pointer;
    font-size: .72rem;
    font-weight: 800;
    color: #fff;
    background: linear-gradient(135deg, #0f766e, #2563eb);
}

@media (max-width: 720px) {
    .construction-field-attachment-grid,
    .construction-field-attachment-form {
        grid-template-columns: 1fr;
    }

    .construction-field-photo {
        height: 160px;
    }
}

/* ===== CAZLINK OPR — IMPRESSION 10L-1 ===== */

.construction-opr-print-action {
    display: flex;
    justify-content: flex-end;
    margin: .65rem 0 .2rem;
}

.construction-opr-print-link {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .45rem .7rem;
    border: 1px solid rgba(15, 118, 110, .18);
    border-radius: 10px;
    background: #f0fdfa;
    color: #0f766e;
    font-size: .76rem;
    font-weight: 800;
    text-decoration: none;
}

.construction-opr-print-link:hover {
    background: #ccfbf1;
}


/* ==========================================================
   CazLink — Journal chantier imprimable 10L-2
   ========================================================== */

.construction-journal-print-action {
    display: flex;
    justify-content: flex-end;
    margin: .15rem 0 .65rem;
}

.construction-journal-print-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    padding: .45rem .7rem;
    border-radius: 10px;
    background: #ecfdf5;
    border: 1px solid rgba(13, 148, 136, .18);
    color: #0f766e;
    font-size: .72rem;
    font-weight: 800;
    text-decoration: none;
    transition:
        transform .15s ease,
        box-shadow .15s ease,
        background .15s ease;
}

.construction-journal-print-link:hover {
    transform: translateY(-1px);
    background: #d1fae5;
    box-shadow: 0 7px 18px rgba(15, 118, 110, .12);
}


/* ==========================================================
   CazLink — Compte rendu réunion imprimable 10L-3
   ========================================================== */

.construction-meeting-print-action {
    display: flex;
    justify-content: flex-end;
    margin: .55rem 0 .25rem;
}

.construction-meeting-print-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    padding: .45rem .7rem;
    border-radius: 10px;
    background: #eff6ff;
    border: 1px solid rgba(37, 99, 235, .16);
    color: #1d4ed8;
    font-size: .72rem;
    font-weight: 800;
    text-decoration: none;
    transition:
        transform .15s ease,
        background .15s ease,
        box-shadow .15s ease;
}

.construction-meeting-print-link:hover {
    transform: translateY(-1px);
    background: #dbeafe;
    box-shadow: 0 7px 18px rgba(37, 99, 235, .12);
}


/* ==========================================================
   CazLink — Situation consolidée imprimable 10L-4
   ========================================================== */

.construction-situation-print-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    padding: .62rem .85rem;
    border-radius: 12px;
    border: 1px solid rgba(37, 99, 235, .16);
    background: #eff6ff;
    color: #1d4ed8;
    font-size: .78rem;
    font-weight: 800;
    text-decoration: none;
    transition:
        transform .15s ease,
        background .15s ease,
        box-shadow .15s ease;
}

.construction-situation-print-link:hover {
    transform: translateY(-1px);
    background: #dbeafe;
    box-shadow: 0 8px 18px rgba(37, 99, 235, .12);
}


/* ==========================================================
   CazLink — Workflow officiel des situations 10L-4B-1b
   ========================================================== */

.construction-situation-workflow {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.1rem;
    border-radius: 18px;
    border: 1px solid rgba(148, 163, 184, .2);
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .05);
}

.construction-situation-workflow > div {
    display: grid;
    gap: .25rem;
}

.construction-situation-workflow > div > span:first-child {
    font-size: .72rem;
    color: #64748b;
}

.construction-situation-workflow-actions {
    display: flex !important;
    flex-direction: row;
    flex-wrap: wrap;
    gap: .55rem !important;
    margin-left: auto;
}

.construction-situation-workflow form {
    margin: 0;
}

.construction-situation-workflow button {
    border: 0;
    border-radius: 11px;
    padding: .7rem .9rem;
    cursor: pointer;
    font-weight: 800;
    color: #fff;
    background:
        linear-gradient(
            135deg,
            #0f766e,
            #2563eb
        );
}

.construction-situation-workflow
.construction-situation-danger {
    background: #b91c1c;
}

.construction-situation-blocked {
    padding: .55rem .7rem;
    border-radius: 10px;
    font-size: .76rem;
    font-weight: 800;
    color: #92400e;
    background: #fffbeb;
    border: 1px solid #fde68a;
}

.construction-situation-status {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: .28rem .55rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 800;
}

.construction-situation-status-draft {
    color: #475569;
    background: #f1f5f9;
}

.construction-situation-status-finalized {
    color: #1d4ed8;
    background: #dbeafe;
}

.construction-situation-status-transmitted {
    color: #6d28d9;
    background: #ede9fe;
}

.construction-situation-status-validated {
    color: #047857;
    background: #d1fae5;
}

.construction-situation-status-abandoned {
    color: #991b1b;
    background: #fee2e2;
}

.construction-situation-subtitle {
    margin-top: .2rem !important;
    font-weight: 700;
    opacity: .9;
}

@media (max-width: 720px) {
    .construction-situation-workflow {
        align-items: stretch;
        flex-direction: column;
    }

    .construction-situation-workflow-actions {
        margin-left: 0;
        flex-direction: column;
    }

    .construction-situation-workflow-actions button {
        width: 100%;
    }
}


/* ===== CAZLINK FINANCIAL SETTINGS ===== */

.construction-financial-page {
    display: grid;
    gap: 1.35rem;
}

.construction-financial-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.75rem;
    border-radius: 24px;
    background:
        linear-gradient(
            135deg,
            rgba(33, 150, 115, 0.96),
            rgba(42, 105, 176, 0.94)
        );
    color: #fff;
    box-shadow: 0 18px 42px rgba(30, 70, 95, 0.16);
}

.construction-financial-hero h1 {
    margin: 0.3rem 0 0.5rem;
    color: #fff;
}

.construction-financial-hero p {
    max-width: 760px;
    margin: 0;
    color: rgba(255, 255, 255, 0.9);
}

.construction-financial-hero .section-label {
    color: rgba(255, 255, 255, 0.76);
}

.construction-financial-notice {
    padding: 1.15rem 1.3rem;
    border: 1px solid rgba(46, 125, 102, 0.16);
    border-radius: 18px;
    background: rgba(230, 248, 242, 0.74);
}

.construction-financial-notice strong {
    display: block;
    margin-bottom: 0.3rem;
}

.construction-financial-notice p {
    margin: 0;
    color: #53616c;
    line-height: 1.55;
}

.construction-financial-form {
    display: grid;
    gap: 1.25rem;
}

.construction-financial-card,
.construction-financial-preview {
    padding: 1.45rem;
    border: 1px solid rgba(42, 68, 88, 0.09);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(42, 68, 88, 0.08);
}

.construction-financial-card-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.construction-financial-card-heading h2,
.construction-financial-preview h2 {
    margin: 0.2rem 0 0.35rem;
}

.construction-financial-card-heading p {
    max-width: 680px;
    margin: 0;
    color: #687681;
}

.construction-financial-switch {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    min-width: max-content;
    padding: 0.7rem 0.9rem;
    border-radius: 999px;
    background: #eef8f5;
    font-weight: 700;
}

.construction-financial-switch input {
    width: 1.1rem;
    height: 1.1rem;
    margin: 0;
}

.construction-financial-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.construction-financial-grid label {
    display: grid;
    gap: 0.45rem;
}

.construction-financial-grid label > span {
    font-weight: 700;
}

.construction-financial-grid input[type="text"],
.construction-financial-grid input[type="number"],
.construction-financial-grid select,
.construction-financial-grid textarea {
    width: 100%;
    padding: 0.78rem 0.9rem;
    border: 1px solid #d9e1e7;
    border-radius: 12px;
    background: #fbfcfd;
    font: inherit;
}

.construction-financial-grid textarea {
    resize: vertical;
}

.construction-financial-grid small {
    color: #77848e;
    line-height: 1.4;
}

.construction-financial-wide {
    grid-column: 1 / -1;
}

.construction-financial-number {
    display: flex;
    align-items: center;
    overflow: hidden;
    border: 1px solid #d9e1e7;
    border-radius: 12px;
    background: #fbfcfd;
}

.construction-financial-number input {
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
}

.construction-financial-number > span {
    padding: 0 0.95rem;
    font-weight: 800;
    color: #54636f;
}

.construction-financial-flow {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.8rem;
    margin-top: 1rem;
}

.construction-financial-flow > div {
    display: grid;
    gap: 0.35rem;
    padding: 1rem;
    border-radius: 16px;
    background: #f5f8fa;
}

.construction-financial-flow > div > span {
    display: grid;
    place-items: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    background: #dff2ec;
    color: #236d58;
    font-weight: 800;
}

.construction-financial-flow small {
    color: #73808a;
}

.construction-financial-submit {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.2rem 1.3rem;
    border-radius: 20px;
    background: #f3f7fb;
}

.construction-financial-submit > div {
    display: grid;
    gap: 0.25rem;
}

.construction-financial-submit span {
    color: #6a7883;
}

.construction-financial-submit button {
    padding: 0.8rem 1.2rem;
    border: 0;
    border-radius: 12px;
    background: #246e61;
    color: #fff;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

@media (max-width: 900px) {
    .construction-financial-hero,
    .construction-financial-card-heading,
    .construction-financial-submit {
        flex-direction: column;
    }

    .construction-financial-grid {
        grid-template-columns: 1fr;
    }

    .construction-financial-wide {
        grid-column: auto;
    }

    .construction-financial-flow {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .construction-financial-flow {
        grid-template-columns: 1fr;
    }

    .construction-financial-submit button {
        width: 100%;
    }
}
/* ===== CAZLINK SITUATION FINANCIAL FINALIZE ===== */

.construction-situation-financial-finalize {
    min-width: 260px;
    padding: 0.7rem 0.8rem;
    border: 1px solid rgba(40, 112, 91, 0.16);
    border-radius: 14px;
    background: rgba(232, 247, 242, 0.8);
}

.construction-situation-financial-finalize label {
    display: grid;
    gap: 0.35rem;
}

.construction-situation-financial-finalize label > span {
    font-weight: 800;
}

.construction-situation-financial-finalize input {
    width: 100%;
    padding: 0.6rem 0.7rem;
    border: 1px solid #cfdbe0;
    border-radius: 10px;
    background: #fff;
    font: inherit;
}

.construction-situation-financial-finalize small {
    color: #687983;
    line-height: 1.35;
}
/* ===== CAZLINK PROGRESS DATE GUARD ===== */

.construction-progress-date-info {
    display: block;
    margin-top: 0.35rem;
    color: #687983;
    line-height: 1.4;
}

.construction-progress-date-confirm {
    display: flex !important;
    grid-template-columns: none !important;
    align-items: flex-start;
    gap: 0.6rem !important;
    margin: 0.75rem 0;
    padding: 0.75rem 0.85rem;
    border: 1px solid rgba(197, 137, 35, 0.24);
    border-radius: 12px;
    background: rgba(255, 247, 225, 0.72);
}

.construction-progress-date-confirm input {
    width: 1rem;
    height: 1rem;
    margin-top: 0.15rem;
    flex: 0 0 auto;
}

.construction-progress-date-confirm span {
    font-weight: 600;
    color: #715a2d;
    line-height: 1.4;
}
/* ===== CAZLINK SITUATION FINANCIAL SUMMARY ===== */

.construction-situation-financial-summary {
    padding: 1.35rem;
    border: 1px solid rgba(42, 105, 176, 0.12);
    border-radius: 20px;
    background:
        linear-gradient(
            135deg,
            rgba(238, 249, 246, 0.95),
            rgba(239, 246, 255, 0.95)
        );
}

.construction-situation-financial-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.construction-situation-financial-heading h2 {
    margin: 0.2rem 0 0;
}

.construction-situation-financial-badge {
    padding: 0.5rem 0.75rem;
    border-radius: 999px;
    background: #fff;
    color: #45616f;
    font-size: 0.82rem;
    font-weight: 800;
}

.construction-situation-financial-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.85rem;
}

.construction-situation-financial-grid article {
    display: grid;
    gap: 0.3rem;
    padding: 1rem;
    border-radius: 15px;
    background: rgba(255, 255, 255, 0.88);
    box-shadow: 0 7px 18px rgba(42, 68, 88, 0.05);
}

.construction-situation-financial-grid article > span {
    color: #657681;
    font-size: 0.82rem;
}

.construction-situation-financial-grid article > strong {
    font-size: 1.3rem;
}

.construction-situation-financial-grid article > small {
    color: #74828c;
    line-height: 1.4;
}

.construction-situation-financial-net {
    background: rgba(227, 247, 240, 0.95) !important;
}

.construction-situation-financial-net > strong {
    color: #14735d;
}

.construction-situation-financial-note {
    margin: 0.9rem 0 0;
    color: #667782;
    font-size: 0.86rem;
}

@media (max-width: 950px) {
    .construction-situation-financial-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .construction-situation-financial-heading {
        flex-direction: column;
    }

    .construction-situation-financial-grid {
        grid-template-columns: 1fr;
    }
}
/* ===== CAZLINK NO PROGRESS SITUATION GUARD ===== */

.construction-situation-no-progress {
    max-width: 430px;
    padding: 0.8rem 0.9rem;
    border: 1px solid rgba(202, 138, 4, 0.28);
    border-radius: 14px;
    background: #fff8df;
}

.construction-situation-no-progress strong {
    display: block;
    color: #805d10;
}

.construction-situation-no-progress p {
    margin: 0.3rem 0 0.65rem;
    color: #756226;
    font-size: 0.86rem;
}

.construction-situation-no-progress label {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-weight: 700;
    color: #654f13;
}

.construction-situation-no-progress input {
    margin-top: 0.15rem;
}
/* ===== CAZLINK SITUATIONS HISTORY GROUPS ===== */

.construction-situation-history-overview {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.35rem;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(42, 68, 88, 0.06);
}

.construction-situation-history-overview h2 {
    margin: 0.2rem 0 0.35rem;
}

.construction-situation-history-overview p {
    margin: 0;
    color: #6d7a84;
}

.construction-situation-history-group {
    display: grid;
    gap: 0.9rem;
    padding: 1.15rem;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(42, 68, 88, 0.06);
}

.construction-situation-history-heading {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.construction-situation-history-title {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.construction-situation-history-title h2 {
    margin: 0;
}

.construction-situation-history-title > span {
    display: inline-grid;
    place-items: center;
    min-width: 1.8rem;
    height: 1.8rem;
    padding: 0 0.45rem;
    border-radius: 999px;
    background: #edf3f8;
    font-weight: 800;
}

.construction-situation-history-heading p {
    margin: 0.25rem 0 0;
    color: #74818b;
}

.construction-situation-history-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem;
}

.construction-situation-history-card {
    display: grid;
    gap: 0.9rem;
    padding: 1rem;
    border: 1px solid #e3e9ee;
    border-radius: 17px;
    background: #fbfcfd;
    color: inherit;
    text-decoration: none;
    transition:
        transform 0.15s ease,
        box-shadow 0.15s ease;
}

.construction-situation-history-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(42, 68, 88, 0.08);
}

.construction-situation-history-card-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.construction-situation-history-date {
    display: block;
    margin-bottom: 0.25rem;
    color: #75828c;
    font-size: 0.8rem;
}

.construction-situation-history-card h3 {
    margin: 0;
}

.construction-situation-history-status {
    padding: 0.45rem 0.65rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 800;
    white-space: nowrap;
}

.construction-situation-history-status-draft {
    background: #fff1c7;
    color: #7a5a00;
}

.construction-situation-history-status-finalized {
    background: #e3efff;
    color: #2257a3;
}

.construction-situation-history-status-transmitted {
    background: #e8ebff;
    color: #4c4ca1;
}

.construction-situation-history-status-validated {
    background: #dff7e9;
    color: #1f7150;
}

.construction-situation-history-status-abandoned {
    background: #fde7e7;
    color: #9b3030;
}

.construction-situation-history-progress-line {
    display: grid;
    gap: 0.35rem;
}

.construction-situation-history-progress-line > div:first-child {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.construction-situation-history-progress-line span {
    color: #74818b;
}

.construction-situation-history-progress-line strong {
    color: #2258d8;
}

.construction-situation-history-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
}

.construction-situation-history-stats > div {
    display: grid;
    gap: 0.2rem;
    padding: 0.7rem;
    border-radius: 12px;
    background: #f6f8fa;
}

.construction-situation-history-stats span {
    color: #75828c;
    font-size: 0.78rem;
}

.construction-situation-history-comment {
    margin: 0;
    color: #687681;
    font-size: 0.84rem;
}

.construction-situation-history-empty {
    padding: 0.9rem;
    border-radius: 13px;
    background: #f7f9fb;
    color: #84909a;
}

.construction-situation-history-group-draft {
    border-left: 4px solid #e7b634;
}

.construction-situation-history-group-finalized {
    border-left: 4px solid #5f9ee8;
}

.construction-situation-history-group-transmitted {
    border-left: 4px solid #8886e8;
}

.construction-situation-history-group-validated {
    border-left: 4px solid #50b985;
}

.construction-situation-history-group-abandoned {
    border-left: 4px solid #de7979;
}

@media (max-width: 900px) {
    .construction-situation-history-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .construction-situation-history-overview,
    .construction-situation-history-card-top {
        flex-direction: column;
    }

    .construction-situation-history-stats {
        grid-template-columns: 1fr;
    }
}
/* ===== CAZLINK SITUATIONS HISTORY POLISH ===== */

.construction-situation-history-group-abandoned {
    opacity: 0.88;
    box-shadow: 0 7px 20px rgba(42, 68, 88, 0.04);
}

.construction-situation-history-group-abandoned
.construction-situation-history-card {
    background: #fafafa;
}

.construction-situation-history-group-abandoned
.construction-situation-history-heading p {
    color: #8a9298;
}

.construction-situation-history-status-finalized {
    background: #e3efff;
    color: #174f9c;
}

.construction-situation-history-group-finalized
.construction-situation-open::before {
    content: "À transmettre à la MOE · ";
    color: #54708a;
    font-weight: 600;
}
/* ===== CAZLINK MOBILE TERRAIN CAMERA ===== */

.construction-terrain-camera {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 0.8rem 0.9rem;
    margin-bottom: 0.7rem;
    border: 1px solid rgba(25, 118, 92, 0.22);
    border-radius: 14px;
    background: linear-gradient(
        135deg,
        rgba(224, 247, 239, 0.78),
        rgba(226, 241, 255, 0.82)
    );
}

.construction-terrain-camera-title {
    font-weight: 750;
    color: #176b57;
}

.construction-terrain-camera small {
    color: #60727a;
    line-height: 1.35;
}

.construction-terrain-camera input[type="file"] {
    width: 100%;
    min-height: 44px;
    padding: 0.45rem;
    border: 1px solid rgba(38, 98, 82, 0.18);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.92);
}

@media (max-width: 768px) {
    .construction-terrain-camera {
        padding: 0.9rem;
        border-radius: 16px;
    }

    .construction-terrain-camera-title {
        font-size: 1rem;
    }

    .construction-terrain-camera input[type="file"] {
        min-height: 48px;
    }
}
/* ===== CAZLINK MOBILE TERRAIN CAMERA POLISH ===== */

.construction-terrain-file-input {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.construction-terrain-camera {
    cursor: pointer;
    transition:
        transform 0.16s ease,
        box-shadow 0.16s ease,
        border-color 0.16s ease;
}

.construction-terrain-camera:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(22, 107, 87, 0.10);
}

.construction-terrain-camera:focus-within {
    outline: 3px solid rgba(38, 132, 255, 0.18);
    outline-offset: 2px;
}

.construction-terrain-document-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0.75rem 1rem;
    border: 1px solid rgba(62, 92, 117, 0.20);
    border-radius: 12px;
    background: #ffffff;
    color: #25465b;
    font-weight: 700;
    cursor: pointer;
    transition:
        transform 0.16s ease,
        box-shadow 0.16s ease,
        border-color 0.16s ease;
}

.construction-terrain-document-button:hover {
    transform: translateY(-1px);
    border-color: rgba(46, 116, 169, 0.30);
    box-shadow: 0 7px 18px rgba(42, 68, 88, 0.08);
}

.construction-terrain-document-button:focus-within {
    outline: 3px solid rgba(38, 132, 255, 0.18);
    outline-offset: 2px;
}

@media (max-width: 768px) {
    .construction-terrain-camera,
    .construction-terrain-document-button {
        width: 100%;
    }

    .construction-terrain-document-button {
        min-height: 50px;
        font-size: 1rem;
    }
}

/* ===== CAZLINK MES ESPACES - AVATAR ET ICONES ===== */

/* Initiale organisation : centrage indépendant des règles génériques des spans. */
.space-card-premium > .space-icon.space-icon-large {
    position: relative;
    flex: 0 0 58px;
    width: 58px;
    height: 58px;
    margin: 0;
    display: block;
    align-self: center;
    overflow: hidden;
    border-radius: 17px;
    background: var(--brand-soft);
    color: transparent;
    font-size: 0;
}

.space-card-premium > .space-icon.space-icon-large::after {
    content: attr(data-initial);
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: var(--brand-dark);
    font-size: 1.15rem;
    font-weight: 900;
    line-height: 1;
    text-align: center;
}

/* Même famille visuelle que les icônes du dashboard CazLink. */
.spaces-tools-grid .spaces-tool-icon {
    width: 42px;
    height: 42px;
    margin: 0 0 17px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: var(--brand-soft);
    color: var(--brand);
}

.spaces-tools-grid .spaces-tool-icon svg {
    width: 20px;
    height: 20px;
    display: block;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.spaces-tools-grid .spaces-tool-icon svg * {
    fill: none !important;
    stroke: inherit;
}

/* Les cartes restent discrètes, comme le reste du dashboard. */
.spaces-tools-grid article {
    transition:
        transform .18s ease,
        box-shadow .18s ease,
        border-color .18s ease;
}

.spaces-tools-grid article:hover {
    transform: translateY(-2px);
    border-color: #c7dddd;
    box-shadow: 0 12px 28px rgba(24, 65, 68, .065);
}

/* ===== CAZLINK OPC / PLANNING CHANTIER ===== */

.opc-page {
    display: grid;
    gap: 24px;
}

.opc-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 32px;
    border-radius: 28px;
    color: #fff;
    background:
        radial-gradient(circle at 90% 10%, rgba(255,255,255,.28), transparent 28%),
        linear-gradient(120deg, #075985 0%, #0284c7 35%, #06b6d4 67%, #7c3aed 100%);
    box-shadow: 0 22px 50px rgba(2, 132, 199, .22);
}

.opc-hero h1 {
    margin: 4px 0 8px;
    font-size: clamp(2rem, 4vw, 3.3rem);
}

.opc-hero p {
    max-width: 760px;
    margin: 0;
    color: rgba(255,255,255,.88);
}

.opc-hero .section-label {
    color: #fef08a;
}

.opc-hero-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.opc-hero-actions a {
    padding: 11px 16px;
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 14px;
    color: #fff;
    background: rgba(255,255,255,.15);
    text-decoration: none;
    font-weight: 800;
    backdrop-filter: blur(8px);
}

.opc-kpis {
    display: grid;
    grid-template-columns: repeat(6, minmax(130px, 1fr));
    gap: 14px;
}

.opc-kpi {
    position: relative;
    overflow: hidden;
    padding: 20px;
    border-radius: 22px;
    color: #fff;
    min-height: 128px;
    box-shadow: 0 14px 30px rgba(15, 23, 42, .12);
}

.opc-kpi::after {
    content: "";
    position: absolute;
    width: 88px;
    height: 88px;
    right: -25px;
    bottom: -30px;
    border-radius: 50%;
    background: rgba(255,255,255,.20);
}

.opc-kpi span,
.opc-kpi small {
    display: block;
}

.opc-kpi span {
    font-weight: 800;
}

.opc-kpi strong {
    display: block;
    margin: 7px 0 4px;
    font-size: 2rem;
}

.opc-kpi small {
    color: rgba(255,255,255,.87);
}

.opc-kpi-blue {
    background: linear-gradient(135deg, #2563eb, #38bdf8);
}

.opc-kpi-electric {
    background: linear-gradient(135deg, #0284c7, #06b6d4);
}

.opc-kpi-green {
    background: linear-gradient(135deg, #16a34a, #4ade80);
}

.opc-kpi-red {
    background: linear-gradient(135deg, #dc2626, #fb7185);
}

.opc-kpi-turquoise {
    background: linear-gradient(135deg, #0f766e, #2dd4bf);
}

.opc-kpi-violet {
    background: linear-gradient(135deg, #7c3aed, #c084fc);
}

.opc-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    padding: 15px 18px;
    border: 1px solid #dbeafe;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(15,23,42,.05);
}

.opc-legend span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: .88rem;
    font-weight: 700;
}

.opc-dot {
    width: 11px;
    height: 11px;
    border-radius: 50%;
}

.opc-dot-progress { background: #0ea5e9; }
.opc-dot-done { background: #22c55e; }
.opc-dot-late { background: #ef4444; }
.opc-dot-warning { background: #f97316; }
.opc-dot-upcoming { background: #facc15; }
.opc-dot-blocked { background: #14b8a6; }

.opc-diamond {
    width: 11px;
    height: 11px;
    transform: rotate(45deg);
    background: #8b5cf6;
}

.opc-board,
.opc-dependencies {
    border: 1px solid #dbeafe;
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(15,23,42,.07);
}

.opc-board {
    overflow: hidden;
}

.opc-board-header,
.opc-section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 24px;
}

.opc-board-header {
    color: #fff;
    background: linear-gradient(100deg, #172554, #1d4ed8, #0891b2);
}

.opc-board-header h2,
.opc-section-title h2 {
    margin: 3px 0 0;
}

.opc-board-header .section-label {
    color: #fde047;
}

.opc-gantt-scroll {
    overflow-x: auto;
}

.opc-gantt {
    position: relative;
    min-width: 980px;
    padding: 8px 0 18px;
}

.opc-row {
    display: grid;
    grid-template-columns: 320px minmax(650px, 1fr);
    min-height: 78px;
    border-bottom: 1px solid #eef2ff;
}

.opc-row:last-child {
    border-bottom: 0;
}

.opc-row-info {
    padding: 14px 18px 14px 24px;
    background: #fff;
}

.opc-row-title {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.opc-row-title strong {
    color: #172554;
}

.opc-row-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 10px;
    margin-top: 6px;
    color: #64748b;
    font-size: .78rem;
}

.opc-track {
    position: relative;
    min-height: 78px;
    background:
        repeating-linear-gradient(
            90deg,
            #f8fafc 0,
            #f8fafc calc(5% - 1px),
            #dbeafe calc(5% - 1px),
            #dbeafe 5%
        );
}

.opc-task-bar {
    position: absolute;
    top: 22px;
    height: 34px;
    min-width: 18px;
    overflow: hidden;
    border-radius: 12px;
    color: #334155;
    background: #e2e8f0;
    box-shadow: 0 6px 16px rgba(15,23,42,.16);
}

.opc-task-bar strong {
    position: relative;
    z-index: 2;
    display: grid;
    place-items: center;
    height: 100%;
    font-size: .75rem;
    color: #0f172a;
    text-shadow: 0 1px 2px rgba(255,255,255,.8);
}

.opc-task-fill {
    position: absolute;
    inset: 0 auto 0 0;
    border-radius: inherit;
}

.opc-task-progress .opc-task-fill {
    background: linear-gradient(90deg, #0284c7, #0ea5e9);
}

.opc-task-done .opc-task-fill {
    background: linear-gradient(90deg, #16a34a, #4ade80);
}

.opc-task-late .opc-task-fill {
    background: linear-gradient(90deg, #dc2626, #fb7185);
}

.opc-task-warning .opc-task-fill {
    background: linear-gradient(90deg, #ea580c, #fb923c);
}

.opc-task-upcoming .opc-task-fill {
    background: linear-gradient(90deg, #facc15, #fde047);
}

.opc-task-blocked .opc-task-fill {
    background: linear-gradient(90deg, #0f766e, #2dd4bf);
}

.opc-task-todo .opc-task-fill {
    background: linear-gradient(90deg, #94a3b8, #cbd5e1);
}

.opc-badge {
    padding: 4px 8px;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 900;
}

.opc-badge-late {
    color: #991b1b;
    background: #fee2e2;
}

.opc-badge-blocked {
    color: #115e59;
    background: #ccfbf1;
}

.opc-badge-milestone {
    color: #6b21a8;
    background: #f3e8ff;
}

.opc-milestone {
    position: absolute;
    top: 27px;
    width: 24px;
    height: 24px;
    margin-left: -12px;
    transform: rotate(45deg);
    border: 4px solid #fff;
    border-radius: 5px;
    background: linear-gradient(135deg, #7c3aed, #d946ef);
    box-shadow: 0 5px 14px rgba(126,34,206,.35);
}

.opc-timeline-overlay {
    position: absolute;
    z-index: 6;
    top: 0;
    right: 0;
    bottom: 0;
    left: 320px;
    pointer-events: none;
}

.opc-today-line {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 2px;
    margin-left: 0;
    background: #f43f5e;
    pointer-events: none;
}

.opc-today-line span {
    position: absolute;
    top: 4px;
    left: 6px;
    padding: 4px 7px;
    border-radius: 8px;
    color: #fff;
    background: #f43f5e;
    font-size: .65rem;
    font-weight: 900;
    white-space: nowrap;
}

.opc-dependencies {
    padding-bottom: 22px;
}

.opc-dependency-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 0 24px;
}

.opc-dependency-grid article {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 15px;
    border-radius: 16px;
    background: linear-gradient(110deg, #ecfeff, #eff6ff);
    border: 1px solid #a5f3fc;
}

.opc-dependency-from,
.opc-dependency-to {
    font-weight: 800;
}

.opc-dependency-arrow {
    color: #0891b2;
    font-size: 1.35rem;
    font-weight: 900;
}

.opc-dependency-grid small {
    margin-left: auto;
    color: #0f766e;
}

.opc-empty {
    padding: 50px 24px;
    text-align: center;
}

@media (max-width: 1100px) {
    .opc-kpis {
        grid-template-columns: repeat(3, minmax(130px, 1fr));
    }

    .opc-dependency-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .opc-hero {
        align-items: flex-start;
        flex-direction: column;
        padding: 24px;
    }

    .opc-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .opc-row {
        grid-template-columns: 260px minmax(620px, 1fr);
    }

    .opc-timeline-overlay {
        left: 260px;
    }
}

/* ===== OPC : choix Planning travaux / équipe ===== */

.opc-view-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.opc-view-tabs a {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 18px 20px;
    border: 1px solid #dbeafe;
    border-radius: 20px;
    color: #334155;
    background: #fff;
    text-decoration: none;
    box-shadow: 0 8px 22px rgba(15, 23, 42, .05);
    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}

.opc-view-tabs a:hover {
    transform: translateY(-2px);
    border-color: #93c5fd;
    box-shadow: 0 12px 28px rgba(37, 99, 235, .10);
}

.opc-view-tabs a.is-active {
    color: #fff;
    border-color: transparent;
    background:
        linear-gradient(
            120deg,
            #2563eb 0%,
            #0891b2 55%,
            #7c3aed 100%
        );
    box-shadow: 0 14px 30px rgba(37, 99, 235, .20);
}

.opc-view-tabs strong {
    font-size: 1.05rem;
}

.opc-view-tabs span {
    font-size: .82rem;
    opacity: .78;
}

.opc-work-planning {
    overflow: hidden;
    border: 1px solid #dbeafe;
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(15, 23, 42, .07);
}

.opc-work-planning .opc-section-title {
    border-bottom: 1px solid #e0f2fe;
    background:
        linear-gradient(
            105deg,
            #eff6ff 0%,
            #ecfeff 55%,
            #faf5ff 100%
        );
}

.opc-work-planning .opc-section-title p {
    margin: 5px 0 0;
    color: #64748b;
}

.opc-work-list {
    display: grid;
}

.opc-work-row {
    display: grid;
    grid-template-columns:
        minmax(280px, 1.4fr)
        minmax(190px, .8fr)
        minmax(220px, .8fr);
    gap: 22px;
    align-items: center;
    padding: 18px 22px;
    border-bottom: 1px solid #eef2ff;
}

.opc-work-row:last-child {
    border-bottom: 0;
}

.opc-work-heading {
    display: flex;
    align-items: center;
    gap: 9px;
}

.opc-work-heading strong {
    color: #172554;
}

.opc-work-reference {
    flex: 0 0 auto;
    padding: 4px 8px;
    border-radius: 999px;
    color: #1d4ed8;
    background: #dbeafe;
    font-size: .72rem;
    font-weight: 900;
}

.opc-work-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 10px;
    margin-top: 7px;
    color: #64748b;
    font-size: .78rem;
}

.opc-work-progress-head {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 7px;
    color: #475569;
    font-size: .78rem;
}

.opc-work-progress-head strong {
    color: #0f766e;
}

.opc-work-progress-track {
    height: 10px;
    overflow: hidden;
    border-radius: 999px;
    background: #e2e8f0;
}

.opc-work-progress-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background:
        linear-gradient(
            90deg,
            #0ea5e9,
            #14b8a6,
            #22c55e
        );
}

.opc-work-dates {
    display: grid;
    gap: 8px;
}

.opc-work-dates div {
    display: flex;
    justify-content: space-between;
    gap: 10px;
}

.opc-work-dates span {
    color: #64748b;
    font-size: .76rem;
}

.opc-work-dates strong {
    color: #334155;
    font-size: .78rem;
    text-align: right;
}

@media (max-width: 900px) {
    .opc-work-row {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .opc-view-tabs {
        grid-template-columns: 1fr;
    }
}

/* OPC - lisibilité des postes DPGF sans dates */
.opc-unplanned {
    left: 48px;
    z-index: 2;
}

.opc-unplanned strong {
    white-space: nowrap;
}

.opc-today-line {
    z-index: 5;
}

/* OPC - avancement visible avant planification temporelle */
.opc-unplanned-progress {
    position: absolute;
    top: 17px;
    left: 48px;
    width: min(260px, calc(100% - 70px));
    z-index: 2;
}

.opc-unplanned-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 5px;
    font-size: .72rem;
}

.opc-unplanned-head span {
    color: #64748b;
    font-weight: 800;
}

.opc-unplanned-head strong {
    color: #0f172a;
    font-size: .76rem;
}

.opc-unplanned-track {
    height: 14px;
    overflow: hidden;
    border-radius: 999px;
    background: #e2e8f0;
    box-shadow: inset 0 1px 3px rgba(15, 23, 42, .12);
}

.opc-unplanned-track > span {
    display: block;
    height: 100%;
    min-width: 0;
    border-radius: inherit;
    background: linear-gradient(
        90deg,
        #0ea5e9 0%,
        #14b8a6 55%,
        #22c55e 100%
    );
}

/* OPC - échelle temporelle du Gantt travaux */
.opc-time-scale {
    display: grid;
    grid-template-columns: 320px minmax(650px, 1fr);
    min-height: 42px;
    border-bottom: 1px solid #dbeafe;
    background: #f8fafc;
}

.opc-time-scale-label {
    display: flex;
    align-items: center;
    padding: 0 18px 0 24px;
    color: #64748b;
    font-size: .72rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.opc-time-scale-track {
    position: relative;
    min-height: 42px;
    background:
        repeating-linear-gradient(
            90deg,
            #f8fafc 0,
            #f8fafc calc(5% - 1px),
            #dbeafe calc(5% - 1px),
            #dbeafe 5%
        );
}

.opc-time-mark {
    position: absolute;
    top: 11px;
    transform: translateX(-50%);
    padding: 3px 6px;
    border-radius: 7px;
    color: #334155;
    background: rgba(255,255,255,.92);
    font-size: .68rem;
    font-weight: 800;
    white-space: nowrap;
    box-shadow: 0 2px 6px rgba(15,23,42,.08);
}

@media (max-width: 720px) {
    .opc-time-scale {
        grid-template-columns: 260px minmax(620px, 1fr);
    }
}

/* OPC - filtres du planning équipe */
.opc-task-type-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.opc-task-type-filters a {
    padding: 9px 14px;
    border: 1px solid #cbd5e1;
    border-radius: 999px;
    color: #475569;
    background: #fff;
    text-decoration: none;
    font-size: .82rem;
    font-weight: 800;
}

.opc-task-type-filters a:hover {
    border-color: #60a5fa;
    color: #1d4ed8;
}

.opc-task-type-filters a.is-active {
    color: #fff;
    border-color: #2563eb;
    background: linear-gradient(135deg, #2563eb, #0891b2);
    box-shadow: 0 5px 14px rgba(37, 99, 235, .18);
}

.opc-type-badge {
    padding: 3px 7px;
    border-radius: 999px;
    font-size: .65rem;
    font-weight: 900;
}

.opc-type-badge.is-construction {
    color: #075985;
    background: #e0f2fe;
}

.opc-type-badge.is-internal {
    color: #6b21a8;
    background: #f3e8ff;
}

.opc-task-unplanned {
    position: absolute;
    top: 20px;
    left: 4%;
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 150px;
    padding: 7px 12px;
    border: 1px dashed #94a3b8;
    border-radius: 10px;
    color: #64748b;
    background: rgba(248,250,252,.94);
    font-size: .75rem;
    font-weight: 800;
}

.opc-task-unplanned strong {
    color: #334155;
}

.opc-meta-unplanned {
    color: #b45309;
    font-weight: 800;
}

.opc-planning-empty {
    padding: 34px;
    text-align: center;
}

.opc-planning-empty strong {
    display: block;
    margin-bottom: 6px;
    color: #172554;
    font-size: 1rem;
}

.opc-planning-empty p {
    margin: 0;
    color: #64748b;
}

/* OPC - planification prévisionnelle des postes DPGF */
.opc-work-plan-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
    gap: 6px;
    align-items: end;
    margin-top: 9px;
}

.opc-work-plan-form label {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.opc-work-plan-form label > span {
    color: #64748b;
    font-size: .65rem;
    font-weight: 800;
}

.opc-work-plan-form input[type="date"] {
    width: 100%;
    min-width: 0;
    padding: 6px 7px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    color: #334155;
    background: #fff;
    font: inherit;
    font-size: .68rem;
}

.opc-work-plan-form input[type="date"]:focus {
    outline: 2px solid rgba(37,99,235,.18);
    border-color: #3b82f6;
}

.opc-work-plan-form button {
    min-height: 31px;
    padding: 6px 9px;
    border: 0;
    border-radius: 8px;
    color: #fff;
    background: linear-gradient(135deg, #2563eb, #0891b2);
    font-size: .68rem;
    font-weight: 900;
    cursor: pointer;
}

.opc-work-plan-readonly {
    margin-top: 8px;
    color: #475569;
    font-size: .72rem;
    font-weight: 700;
}

@media (max-width: 720px) {
    .opc-work-plan-form {
        grid-template-columns: 1fr 1fr;
    }

    .opc-work-plan-form button {
        grid-column: 1 / -1;
    }
}

/* OPC - état automatique visible sur toute la durée prévue */
.opc-task-progress {
    background: #dbeafe;
}

.opc-task-done {
    background: #dcfce7;
}

.opc-task-late {
    background: #fee2e2;
}

.opc-task-warning {
    background: #ffedd5;
}

.opc-task-upcoming {
    background: #fef9c3;
}

.opc-task-blocked {
    background: #ccfbf1;
}

.opc-task-todo {
    background: #e2e8f0;
}

/* La partie foncée représente l'avancement réel */
.opc-task-progress .opc-task-fill {
    background: linear-gradient(90deg, #0284c7, #0ea5e9);
}

.opc-task-done .opc-task-fill {
    background: linear-gradient(90deg, #16a34a, #4ade80);
}

.opc-task-late .opc-task-fill {
    background: linear-gradient(90deg, #dc2626, #fb7185);
}

.opc-task-warning .opc-task-fill {
    background: linear-gradient(90deg, #ea580c, #fb923c);
}

.opc-task-upcoming .opc-task-fill {
    background: linear-gradient(90deg, #facc15, #fde047);
}

.opc-task-blocked .opc-task-fill {
    background: linear-gradient(90deg, #0f766e, #2dd4bf);
}

.opc-task-todo .opc-task-fill {
    background: linear-gradient(90deg, #94a3b8, #cbd5e1);
}

/* OPC - prévu / réel sur les postes travaux */
.opc-work-plan-form {
    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 1fr)
        minmax(0, 1fr)
        minmax(0, 1fr)
        auto;
}

@media (max-width: 1100px) {
    .opc-work-plan-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .opc-work-plan-form button {
        grid-column: 1 / -1;
    }
}

/* OPC - formulaire dates travaux plus lisible */
.opc-work-plan-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px 8px;
}

.opc-work-plan-form label {
    min-width: 0;
}

.opc-work-plan-form input[type="date"] {
    width: 100%;
    min-width: 0;
}

.opc-work-plan-form button {
    grid-column: 1 / -1;
    width: 100%;
}

@media (max-width: 720px) {
    .opc-work-plan-form {
        grid-template-columns: 1fr;
    }

    .opc-work-plan-form button {
        grid-column: auto;
    }
}

/* OPC travaux - période réelle sous la période prévue */
.opc-work-actual-bar {
    position: absolute;
    z-index: 3;
    top: 61px;
    height: 7px;
    min-width: 8px;
    border-radius: 999px;
    background: #172554;
    box-shadow: 0 2px 7px rgba(15, 23, 42, .28);
}

.opc-work-actual-bar::before {
    content: "Réel";
    position: absolute;
    left: 0;
    bottom: 9px;
    padding: 1px 5px;
    border-radius: 5px;
    color: #172554;
    background: rgba(255, 255, 255, .92);
    font-size: .58rem;
    font-weight: 900;
    white-space: nowrap;
}

/* OPC travaux - lisibilité de la période réelle */
.opc-work-actual-bar {
    top: 58px;
}

.opc-work-actual-bar::before {
    top: 9px;
    bottom: auto;
    left: 0;
    padding: 2px 6px;
    border-radius: 6px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 1px 4px rgba(15, 23, 42, .12);
}

/* OPC travaux - légende prévu / avancement / réel */
.opc-work-legend {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 18px;
    padding: 12px 20px;
    border-bottom: 1px solid #dbeafe;
    background: rgba(255, 255, 255, .96);
}

.opc-work-legend span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #334155;
    font-size: .78rem;
    font-weight: 800;
}

.opc-work-legend i {
    display: inline-block;
    flex: 0 0 auto;
}

.opc-work-legend-planned {
    width: 30px;
    height: 10px;
    border-radius: 999px;
    background: #dbeafe;
}

.opc-work-legend-progress {
    width: 30px;
    height: 10px;
    border-radius: 999px;
    background: linear-gradient(90deg, #0284c7, #0ea5e9);
}

.opc-work-legend-actual {
    width: 30px;
    height: 6px;
    border-radius: 999px;
    background: #172554;
}

.opc-work-legend-today {
    width: 2px;
    height: 18px;
    border-radius: 999px;
    background: #f43f5e;
}

/* OPC équipe - période réelle sous la période prévue */
.opc-task-actual-bar {
    position: absolute;
    z-index: 3;
    top: 61px;
    height: 7px;
    min-width: 8px;
    border-radius: 999px;
    background: #172554;
    box-shadow: 0 2px 7px rgba(15, 23, 42, .28);
}

.opc-team-legend-actual {
    display: inline-block;
    width: 28px;
    height: 6px;
    border-radius: 999px;
    background: #172554;
}

.opc-team-legend-today {
    display: inline-block;
    width: 2px;
    height: 17px;
    border-radius: 999px;
    background: #f43f5e;
}

/* OPC - pilotage des jalons et dépendances */
.opc-pilotage {
    margin: 24px 0;
}

.opc-pilotage > .opc-section-title {
    margin-bottom: 14px;
}

.opc-pilotage > .opc-section-title > p {
    max-width: 520px;
    margin: 0;
    color: #64748b;
    font-size: .85rem;
}

.opc-pilotage-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.opc-pilotage-card {
    overflow: hidden;
    border: 1px solid #dbeafe;
    border-radius: 22px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 12px 32px rgba(15, 23, 42, .08);
}

.opc-pilotage-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px;
    background: linear-gradient(110deg, #eff6ff, #f5f3ff);
}

.opc-pilotage-card-head > div {
    display: flex;
    align-items: center;
    gap: 12px;
}

.opc-pilotage-card-head h3,
.opc-pilotage-card-head p {
    margin: 0;
}

.opc-pilotage-card-head h3 {
    color: #172554;
    font-size: 1rem;
}

.opc-pilotage-card-head p {
    margin-top: 3px;
    color: #64748b;
    font-size: .76rem;
}

.opc-pilotage-card-head > strong {
    display: grid;
    place-items: center;
    min-width: 38px;
    height: 38px;
    padding: 0 10px;
    border-radius: 12px;
    color: #fff;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
}

.opc-pilotage-icon {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    color: #7c3aed;
    background: #ede9fe;
    font-size: 1.15rem;
    font-weight: 900;
}

.opc-pilotage-icon.is-link {
    color: #0369a1;
    background: #e0f2fe;
}

.opc-pilotage-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding: 18px 20px;
}

.opc-pilotage-form label {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
}

.opc-pilotage-form label > span {
    color: #475569;
    font-size: .72rem;
    font-weight: 800;
}

.opc-pilotage-form input,
.opc-pilotage-form select,
.opc-pilotage-form textarea {
    width: 100%;
    min-width: 0;
    padding: 9px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    background: #fff;
    color: #0f172a;
}

.opc-pilotage-form textarea {
    resize: vertical;
}

.opc-field-wide {
    grid-column: 1 / -1;
}

.opc-pilotage-primary,
.opc-pilotage-secondary {
    grid-column: 1 / -1;
    padding: 10px 14px;
    border: 0;
    border-radius: 10px;
    color: #fff;
    background: linear-gradient(90deg, #2563eb, #0891b2);
    font-weight: 900;
    cursor: pointer;
}

.opc-pilotage-secondary {
    background: linear-gradient(90deg, #475569, #2563eb);
}

.opc-pilotage-unit {
    display: flex;
    align-items: flex-end;
    padding: 0 0 10px;
    color: #64748b;
    font-size: .78rem;
    font-weight: 700;
}

.opc-pilotage-list {
    display: grid;
    gap: 8px;
    padding: 0 20px 20px;
}

.opc-pilotage-item,
.opc-dependency-manage {
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #f8fafc;
}

.opc-pilotage-item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    cursor: pointer;
}

.opc-pilotage-item summary > span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #172554;
    font-weight: 850;
}

.opc-pilotage-item summary small {
    color: #64748b;
}

.opc-pilotage-item-body {
    padding-bottom: 14px;
    border-top: 1px solid #e2e8f0;
}

.opc-pilotage-delete {
    margin: 0 20px;
    padding: 8px 11px;
    border: 1px solid #fecaca;
    border-radius: 9px;
    color: #b91c1c;
    background: #fff1f2;
    font-size: .74rem;
    font-weight: 800;
    cursor: pointer;
}

.opc-pilotage-delete.is-compact {
    margin: 0;
}

.opc-dependency-manage {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
}

.opc-dependency-manage > div {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    color: #334155;
    font-size: .78rem;
}

.opc-dependency-manage small {
    padding: 3px 7px;
    border-radius: 999px;
    color: #0f766e;
    background: #ccfbf1;
    font-weight: 800;
}

.opc-pilotage-empty {
    margin: 18px 20px;
    padding: 14px;
    border-radius: 12px;
    color: #64748b;
    background: #f8fafc;
    text-align: center;
    font-size: .8rem;
}

@media (max-width: 950px) {
    .opc-pilotage-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .opc-pilotage-form {
        grid-template-columns: 1fr;
    }

    .opc-field-wide,
    .opc-pilotage-primary,
    .opc-pilotage-secondary {
        grid-column: auto;
    }

    .opc-dependency-manage {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* OPC - lecture prévu / réel des jalons */
.opc-milestone-track {
    min-height: 78px;
}

.opc-milestone-planned {
    top: 18px;
    border: 3px solid #7c3aed;
    background: #fff;
    box-shadow: 0 3px 10px rgba(124, 58, 237, .20);
}

.opc-milestone-actual {
    z-index: 3;
    top: 44px;
    width: 20px;
    height: 20px;
    margin-left: -10px;
    border-width: 3px;
}

.opc-milestone-actual-achieved {
    background: linear-gradient(135deg, #059669, #10b981);
}

.opc-milestone-actual-achieved-early {
    background: linear-gradient(135deg, #0284c7, #06b6d4);
}

.opc-milestone-actual-achieved-late {
    background: linear-gradient(135deg, #dc2626, #f97316);
}

.opc-badge-milestone-upcoming {
    color: #6b21a8;
    background: #f3e8ff;
}

.opc-badge-milestone-late {
    color: #991b1b;
    background: #fee2e2;
}

.opc-badge-milestone-achieved {
    color: #047857;
    background: #d1fae5;
}

.opc-badge-milestone-achieved-early {
    color: #0369a1;
    background: #e0f2fe;
}

.opc-badge-milestone-achieved-late {
    color: #c2410c;
    background: #ffedd5;
}

.opc-diamond-planned {
    border: 2px solid #7c3aed;
    background: #fff;
}

.opc-diamond-actual {
    background: linear-gradient(135deg, #059669, #10b981);
}

/* ===== OPC - finalisation responsive tablette / mobile ===== */

@media (max-width: 900px) {
    .opc-board-header,
    .opc-section-title {
        align-items: flex-start;
        flex-wrap: wrap;
        padding: 18px 20px;
    }

    .opc-board-header > strong {
        flex: 0 0 auto;
    }

    .opc-legend,
    .opc-work-legend {
        gap: 8px 14px;
        padding: 10px 16px;
    }

    .opc-legend span,
    .opc-work-legend span {
        font-size: .72rem;
    }

    /*
     * Le planning travaux devient vertical sur tablette.
     * On évite trois colonnes trop serrées.
     */
    .opc-work-row {
        grid-template-columns: 1fr;
        gap: 14px;
        padding: 16px 18px;
    }

    .opc-work-row > * {
        min-width: 0;
    }

    .opc-dependency-grid {
        padding: 0 18px;
    }
}

@media (max-width: 720px) {
    /*
     * Le Gantt reste horizontalement défilable,
     * mais la colonne descriptive reste visible.
     */
    .opc-gantt-scroll {
        overscroll-behavior-x: contain;
        -webkit-overflow-scrolling: touch;
    }

    .opc-gantt {
        min-width: 900px;
    }

    .opc-row {
        grid-template-columns: 250px minmax(620px, 1fr);
    }

    .opc-time-scale {
        grid-template-columns: 250px minmax(620px, 1fr);
    }

    .opc-row-info,
    .opc-time-scale-label {
        position: sticky;
        left: 0;
        z-index: 5;
        box-shadow: 7px 0 12px rgba(15, 23, 42, .05);
    }

    .opc-time-scale-label {
        z-index: 8;
        background: #f8fafc;
    }

    .opc-row-info {
        padding: 12px 14px;
    }

    .opc-timeline-overlay {
        left: 250px;
    }

    .opc-row-title {
        gap: 6px;
    }

    .opc-row-title strong {
        font-size: .88rem;
        line-height: 1.25;
    }

    .opc-row-meta {
        gap: 4px 8px;
        font-size: .70rem;
    }

    .opc-badge,
    .opc-type-badge {
        padding: 3px 6px;
        font-size: .60rem;
    }

    .opc-task-type-filters {
        gap: 7px;
    }

    .opc-task-type-filters a {
        padding: 8px 11px;
        font-size: .75rem;
    }

    .opc-view-tabs {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .opc-view-tabs a {
        padding: 14px 16px;
        border-radius: 16px;
    }

    .opc-dependency-grid {
        padding: 0 14px;
    }

    .opc-dependency-grid article {
        align-items: flex-start;
        flex-wrap: wrap;
        gap: 6px 8px;
        padding: 12px;
    }

    .opc-dependency-grid small {
        width: 100%;
        margin-left: 0;
    }

    .opc-pilotage-card {
        border-radius: 18px;
    }

    .opc-pilotage-card-head {
        padding: 15px 16px;
    }

    .opc-pilotage-form {
        padding: 15px 16px;
    }

    .opc-pilotage-list {
        padding: 0 16px 16px;
    }
}

@media (max-width: 520px) {
    .opc-hero {
        padding: 20px 18px;
    }

    .opc-board-header,
    .opc-section-title {
        gap: 10px;
        padding: 16px;
    }

    .opc-board-header h2,
    .opc-section-title h2 {
        font-size: 1.15rem;
    }

    /*
     * Sur téléphone on gagne encore 30 px pour laisser
     * davantage de place visible au diagramme.
     */
    .opc-row {
        grid-template-columns: 220px minmax(620px, 1fr);
    }

    .opc-time-scale {
        grid-template-columns: 220px minmax(620px, 1fr);
    }

    .opc-timeline-overlay {
        left: 220px;
    }

    .opc-row-info {
        padding: 11px 12px;
    }

    .opc-time-scale-label {
        padding: 0 12px;
    }

    .opc-row-title strong {
        font-size: .82rem;
    }

    .opc-row-meta {
        font-size: .66rem;
    }

    .opc-legend,
    .opc-work-legend {
        align-items: flex-start;
        gap: 8px 12px;
        padding: 10px 12px;
    }

    .opc-task-bar strong {
        font-size: .68rem;
    }

    .opc-pilotage > .opc-section-title > p {
        width: 100%;
        max-width: none;
    }

    .opc-pilotage-card-head > strong {
        min-width: 34px;
        height: 34px;
    }

    .opc-dependency-manage {
        padding: 10px 12px;
    }
}

@media (max-width: 520px) {
    .opc-row {
        grid-template-columns: 195px minmax(620px, 1fr);
    }

    .opc-time-scale {
        grid-template-columns: 195px minmax(620px, 1fr);
    }

    .opc-timeline-overlay {
        left: 195px;
    }

    .opc-row-info {
        padding: 10px;
    }

    .opc-row-title strong {
        font-size: .79rem;
    }
}

/* ===== OPC - impression / PDF ===== */

.opc-print-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 15px;
    border: 1px solid rgba(255, 255, 255, .34);
    border-radius: 12px;
    color: #fff;
    background: rgba(255, 255, 255, .13);
    font: inherit;
    font-weight: 800;
    cursor: pointer;
    transition:
        transform .18s ease,
        background .18s ease;
}

.opc-print-action:hover {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, .22);
}

.opc-print-meta {
    display: none;
}

@media print {
    @page {
        size: A4 landscape;
        margin: 9mm;
    }

    * {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    html,
    body {
        width: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
    }

    body {
        font-size: 9pt;
    }

    /*
     * Suppression du shell applicatif.
     */
    .org-shell {
        display: block !important;
        min-height: 0 !important;
        background: #fff !important;
    }

    .org-sidebar,
    .org-topbar,
    .flash {
        display: none !important;
    }

    .org-main {
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /*
     * En-tête du document.
     */
    .opc-page {
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .opc-hero {
        margin: 0 0 5mm !important;
        padding: 7mm 8mm !important;
        border-radius: 4mm !important;
        box-shadow: none !important;
    }

    .opc-hero h1 {
        margin-top: 1mm !important;
        font-size: 22pt !important;
    }

    .opc-hero p {
        margin-bottom: 2mm !important;
        font-size: 9pt !important;
    }

    .opc-hero-actions,
    .opc-view-tabs {
        display: none !important;
    }

    .opc-print-meta {
        display: flex !important;
        flex-wrap: wrap;
        gap: 2mm 5mm;
        margin-top: 3mm;
        padding-top: 3mm;
        border-top: 1px solid rgba(255, 255, 255, .32);
        color: #fff;
        font-size: 8pt;
    }

    .opc-print-meta strong {
        color: #fff;
    }

    /*
     * On ne doit jamais imprimer les formulaires de pilotage.
     * Les jalons et dépendances restent présents dans le Gantt
     * et dans le bloc de coordination.
     */
    .opc-pilotage {
        display: none !important;
    }

    /*
     * Cartes et titres.
     */
    .opc-board,
    .opc-work-planning,
    .opc-dependencies {
        overflow: visible !important;
        border-radius: 3mm !important;
        box-shadow: none !important;
    }

    .opc-board-header,
    .opc-section-title {
        padding: 4mm 5mm !important;
    }

    .opc-board-header h2,
    .opc-section-title h2 {
        font-size: 12pt !important;
    }

    .opc-legend,
    .opc-work-legend {
        gap: 2mm 4mm !important;
        padding: 2.5mm 4mm !important;
    }

    .opc-legend span,
    .opc-work-legend span {
        font-size: 7pt !important;
    }

    /*
     * Le Gantt ne doit plus défiler : il occupe toute
     * la largeur imprimable du paysage A4.
     */
    .opc-gantt-scroll {
        overflow: visible !important;
    }

    .opc-gantt {
        width: 100% !important;
        min-width: 0 !important;
        padding-bottom: 2mm !important;
    }

    .opc-row,
    .opc-time-scale {
        grid-template-columns:
            27%
            minmax(0, 73%) !important;
        width: 100% !important;
    }

    .opc-row {
        min-height: 16mm !important;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .opc-row-info {
        position: static !important;
        z-index: auto !important;
        padding: 2.5mm 3mm !important;
        box-shadow: none !important;
    }

    .opc-row-title {
        gap: 1mm 2mm !important;
    }

    .opc-row-title strong {
        font-size: 7.5pt !important;
        line-height: 1.2 !important;
    }

    .opc-row-meta {
        gap: 1mm 2mm !important;
        margin-top: 1mm !important;
        font-size: 6.5pt !important;
    }

    .opc-track {
        min-height: 16mm !important;
    }

    .opc-time-scale {
        min-height: 9mm !important;
        break-after: avoid;
    }

    .opc-time-scale-label {
        position: static !important;
        z-index: auto !important;
        padding: 0 3mm !important;
        box-shadow: none !important;
        font-size: 6.5pt !important;
    }

    .opc-time-scale-track {
        min-height: 9mm !important;
    }

    .opc-time-mark {
        top: 2.5mm !important;
        padding: 1mm !important;
        font-size: 5.7pt !important;
        box-shadow: none !important;
    }

    /*
     * Le début de l'overlay correspond à la colonne
     * descriptive de 27 %.
     */
    .opc-timeline-overlay {
        left: 27% !important;
    }

    .opc-today-line span {
        padding: 1mm 1.5mm !important;
        font-size: 5.5pt !important;
    }

    .opc-task-bar {
        top: 4mm !important;
        height: 7mm !important;
        min-width: 2mm !important;
        border-radius: 2mm !important;
        box-shadow: none !important;
    }

    .opc-task-bar strong {
        font-size: 6pt !important;
    }

    .opc-task-actual-bar {
        top: 12mm !important;
        height: 1.5mm !important;
        min-width: 2mm !important;
        box-shadow: none !important;
    }

    /*
     * Jalons prévu / réel.
     */
    .opc-milestone-track {
        min-height: 17mm !important;
    }

    .opc-milestone-planned {
        top: 3mm !important;
    }

    .opc-milestone-actual {
        top: 10mm !important;
    }

    .opc-badge,
    .opc-type-badge {
        padding: .7mm 1.5mm !important;
        font-size: 5.5pt !important;
    }

    /*
     * Planning travaux : ne pas imprimer les formulaires
     * de saisie de dates éventuels.
     */
    .opc-work-plan-form,
    .opc-work-row form {
        display: none !important;
    }

    .opc-work-row {
        grid-template-columns:
            minmax(0, 1.45fr)
            minmax(0, .8fr)
            minmax(0, .8fr) !important;
        gap: 3mm !important;
        padding: 3mm 4mm !important;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    /*
     * Dépendances : utiles dans le compte-rendu imprimé.
     */
    .opc-dependencies {
        margin-top: 5mm !important;
        padding-bottom: 0 !important;
        break-before: auto;
    }

    .opc-dependency-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;
        gap: 2mm !important;
        padding: 0 !important;
    }

    .opc-dependency-grid article {
        padding: 2.5mm !important;
        border-radius: 2mm !important;
        break-inside: avoid;
    }

    /*
     * Liens : on évite que le navigateur ajoute leur URL
     * à la suite du texte dans certains moteurs d'impression.
     */
    a[href]::after {
        content: none !important;
    }
}

@media print {
    .opc-task-type-filters a {
        color: #334155 !important;
        background: #fff !important;
        border-color: #cbd5e1 !important;
    }

    .opc-task-type-filters a.is-active {
        color: #fff !important;
        background: #2563eb !important;
        border-color: #2563eb !important;
    }
}

/* =========================================================
   CazLink - Documents & photos d'un projet général
   ========================================================= */

.project-files-page{
    display:grid;
    gap:22px;
}

.project-files-hero{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:30px;
    padding:34px;
    border-radius:26px;
    background:linear-gradient(135deg,#365f74,#587fa0);
    color:#fff;
    box-shadow:0 18px 45px rgba(36,70,89,.12);
}

.project-files-hero h1{
    margin:6px 0 10px;
    font-size:clamp(2rem,4vw,3.1rem);
}

.project-files-hero p{
    max-width:720px;
    margin:0;
    color:rgba(255,255,255,.82);
}

.project-files-hero .section-label{
    color:rgba(255,255,255,.72);
}

.project-files-back{
    flex:0 0 auto;
    padding:11px 15px;
    border:1px solid rgba(255,255,255,.25);
    border-radius:13px;
    background:rgba(255,255,255,.12);
    color:#fff;
    font-weight:800;
}

.project-files-stats{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}

.project-files-stats article{
    padding:18px 20px;
    border:1px solid #dce8eb;
    border-radius:18px;
    background:#fff;
    box-shadow:0 8px 24px rgba(32,67,78,.05);
}

.project-files-stats span,
.project-files-stats strong{
    display:block;
}

.project-files-stats span{
    color:#728486;
    font-size:.78rem;
    font-weight:700;
}

.project-files-stats strong{
    margin-top:4px;
    color:#244d5b;
    font-size:1.8rem;
}

.project-files-filters{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
}

.project-files-filters a{
    padding:9px 14px;
    border:1px solid #d8e4e7;
    border-radius:999px;
    background:#fff;
    color:#52696d;
    font-size:.82rem;
    font-weight:800;
}

.project-files-filters a.is-active{
    border-color:#4a7890;
    background:#4a7890;
    color:#fff;
}

.project-files-add{
    display:grid;
    grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr);
    gap:28px;
    padding:26px;
    border:1px solid #dbe7e9;
    border-radius:22px;
    background:linear-gradient(145deg,#f7fbfc,#fff);
}

.project-files-add h2{
    margin:4px 0 8px;
}

.project-files-add-copy p{
    color:#6c7f82;
}

.project-files-form{
    display:grid;
    gap:15px;
}

.project-files-form > label{
    display:grid;
    gap:7px;
    font-size:.82rem;
    font-weight:800;
}

.project-files-form input[type="text"]{
    width:100%;
    padding:12px 13px;
    border:1px solid #ccdadd;
    border-radius:12px;
    background:#fff;
}

.project-files-inputs{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}

.project-files-upload,
.project-files-camera{
    position:relative;
    display:grid;
    gap:5px;
    min-height:110px;
    padding:17px;
    border:1px dashed #b7cdd2;
    border-radius:16px;
    background:#fff;
    cursor:pointer;
}

.project-files-camera{
    border-color:#b8d8cc;
    background:#f2faf7;
}

.project-files-upload span,
.project-files-camera span{
    color:#718184;
    font-size:.74rem;
    font-weight:500;
}

.project-files-upload input,
.project-files-camera input{
    margin-top:6px;
    max-width:100%;
}

.project-files-form .primary-action{
    justify-self:start;
}

.project-files-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
}

.project-file-card{
    min-width:0;
    overflow:hidden;
    border:1px solid #dce7e9;
    border-radius:20px;
    background:#fff;
    box-shadow:0 9px 25px rgba(31,65,76,.06);
}

.project-file-preview{
    display:block;
    height:210px;
    overflow:hidden;
    background:#eef4f5;
}

.project-file-preview img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.project-file-document-icon{
    height:150px;
    display:grid;
    place-items:center;
    background:linear-gradient(145deg,#edf4f8,#f9fbfc);
    color:#42677c;
    font-size:1rem;
    font-weight:900;
}

.project-file-card-body{
    padding:17px;
}

.project-file-kind{
    display:inline-flex;
    padding:4px 8px;
    border-radius:999px;
    background:#eef5f7;
    color:#52707a;
    font-size:.65rem;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.project-file-card.is-photo .project-file-kind{
    background:#e8f6ef;
    color:#317158;
}

.project-file-card h3{
    margin:9px 0 3px;
    overflow-wrap:anywhere;
    font-size:1rem;
}

.project-file-original-name{
    display:block;
    overflow-wrap:anywhere;
    color:#829092;
}

.project-file-meta{
    display:flex;
    flex-wrap:wrap;
    gap:4px 10px;
    margin-top:10px;
    color:#7c8b8d;
    font-size:.7rem;
}

.project-file-actions{
    display:flex;
    align-items:center;
    gap:12px;
    margin-top:14px;
    padding-top:12px;
    border-top:1px solid #edf1f2;
}

.project-file-actions > a{
    color:#28707a;
    font-weight:800;
}

.project-file-actions form{
    margin-left:auto;
}

.project-file-actions button{
    border:0;
    padding:0;
    background:none;
    color:#a54a4a;
    font:inherit;
    font-weight:700;
    cursor:pointer;
}

.project-files-empty{
    display:flex;
    align-items:center;
    gap:20px;
    padding:34px;
    border:1px dashed #bfd0d3;
    border-radius:22px;
    background:#fff;
}

.project-files-empty-icon{
    width:58px;
    height:58px;
    display:grid;
    place-items:center;
    flex:0 0 58px;
    border-radius:18px;
    background:#eef5f6;
    font-size:1.6rem;
}

.project-files-empty h2{
    margin:0 0 5px;
}

.project-files-empty p{
    margin:0;
    color:#748487;
}

@media(max-width:900px){
    .project-files-add{
        grid-template-columns:1fr;
    }

    .project-files-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:620px){
    .project-files-hero{
        flex-direction:column;
        padding:24px;
    }

    .project-files-stats{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .project-files-stats article{
        padding:14px;
    }

    .project-files-stats strong{
        font-size:1.45rem;
    }

    .project-files-inputs,
    .project-files-grid{
        grid-template-columns:1fr;
    }

    .project-files-add{
        padding:18px;
    }

    .project-file-preview{
        height:240px;
    }

    .project-files-empty{
        align-items:flex-start;
        padding:22px;
    }
}

/* =========================================================
   Documents & photos projet - enrichissement visuel
   ========================================================= */

.project-files-page {
    display: grid;
    gap: 24px;
}

.project-files-hero {
    position: relative;
    overflow: hidden;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 28px;
    padding: 34px 36px;
    border: 0;
    border-radius: 28px;
    background:
        radial-gradient(
            circle at 88% 18%,
            rgba(255,255,255,.18),
            transparent 22%
        ),
        linear-gradient(
            135deg,
            #0f5b63 0%,
            #167f85 45%,
            #4ea4a6 100%
        );
    color: #fff;
    box-shadow: 0 22px 46px rgba(21, 80, 86, .18);
}

.project-files-hero::after {
    content: "";
    position: absolute;
    right: -55px;
    bottom: -80px;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: rgba(255,255,255,.09);
}

.project-files-hero > * {
    position: relative;
    z-index: 1;
}

.project-files-hero h1 {
    margin: 8px 0 12px;
    color: #fff;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.05;
}

.project-files-hero p {
    max-width: 720px;
    margin: 0;
    color: rgba(255,255,255,.88);
    font-size: 1rem;
}

.project-files-hero .section-label {
    color: #d8f5f2;
}

.project-files-back {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 10px 15px;
    border: 1px solid rgba(255,255,255,.32);
    border-radius: 13px;
    background: rgba(255,255,255,.14);
    color: #fff;
    font-weight: 800;
    backdrop-filter: blur(6px);
}

.project-files-back:hover {
    background: rgba(255,255,255,.22);
}

.project-files-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.project-files-stats article {
    position: relative;
    overflow: hidden;
    min-height: 108px;
    padding: 20px 22px;
    border-radius: 20px;
    border: 1px solid transparent;
    box-shadow: 0 10px 28px rgba(39, 74, 82, .07);
}

.project-files-stats article:nth-child(1) {
    background: linear-gradient(145deg, #edf9f7, #ffffff);
    border-color: #cce9e3;
}

.project-files-stats article:nth-child(2) {
    background: linear-gradient(145deg, #eef5ff, #ffffff);
    border-color: #d3e2f6;
}

.project-files-stats article:nth-child(3) {
    background: linear-gradient(145deg, #fff7e8, #ffffff);
    border-color: #f0dfba;
}

.project-files-stats article::after {
    content: "";
    position: absolute;
    right: -18px;
    bottom: -18px;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: rgba(255,255,255,.75);
}

.project-files-stats span {
    position: relative;
    z-index: 1;
    display: block;
    color: #687d82;
    font-size: .8rem;
    font-weight: 800;
}

.project-files-stats strong {
    position: relative;
    z-index: 1;
    display: block;
    margin-top: 4px;
    color: #214b57;
    font-size: 2rem;
}

.project-files-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.project-files-filters a {
    padding: 9px 15px;
    border-radius: 999px;
    border: 1px solid #d7e3e5;
    background: #fff;
    color: #5c7074;
    font-weight: 800;
    box-shadow: 0 4px 12px rgba(36, 70, 78, .04);
}

.project-files-filters a:nth-child(2) {
    border-color: #d8e6f6;
}

.project-files-filters a:nth-child(3) {
    border-color: #ecdcb8;
}

.project-files-filters a.is-active {
    border-color: #167f85;
    background: linear-gradient(135deg, #167f85, #2b9697);
    color: #fff;
    box-shadow: 0 7px 18px rgba(22, 127, 133, .18);
}

.project-files-add {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(220px, .68fr) minmax(0, 1.32fr);
    gap: 30px;
    padding: 28px;
    border-radius: 24px;
    border: 1px solid #dce9e9;
    background:
        linear-gradient(
            135deg,
            #f4fbfa 0%,
            #f8fbff 52%,
            #fffaf1 100%
        );
    box-shadow: 0 12px 34px rgba(31, 72, 78, .07);
}

.project-files-add::after {
    content: "";
    position: absolute;
    right: -55px;
    top: -70px;
    width: 180px;
    height: 180px;
    border-radius: 50%;
    background: rgba(69, 156, 153, .07);
}

.project-files-add > * {
    position: relative;
    z-index: 1;
}

.project-files-add-copy {
    padding: 8px 4px;
}

.project-files-add h2 {
    margin: 7px 0 10px;
    color: #214b57;
    font-size: 1.5rem;
}

.project-files-add-copy p {
    max-width: 360px;
    color: #6c8084;
    line-height: 1.55;
}

.project-files-form {
    display: grid;
    gap: 16px;
}

.project-files-form > label {
    display: grid;
    gap: 8px;
    color: #425d63;
    font-size: .82rem;
    font-weight: 800;
}

.project-files-form input[type="text"] {
    width: 100%;
    padding: 13px 14px;
    border: 1px solid #cddcde;
    border-radius: 13px;
    background: #fff;
    box-shadow: inset 0 1px 2px rgba(30,60,70,.03);
}

.project-files-inputs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.project-files-upload,
.project-files-camera {
    display: grid;
    align-content: start;
    gap: 7px;
    min-height: 130px;
    padding: 20px;
    border-radius: 18px;
    cursor: pointer;
    transition: transform .16s ease, box-shadow .16s ease;
}

.project-files-upload {
    border: 1px solid #c9dced;
    background: linear-gradient(145deg, #f3f8ff, #ffffff);
}

.project-files-camera {
    border: 1px solid #c8e5d7;
    background: linear-gradient(145deg, #effaf5, #ffffff);
}

.project-files-upload:hover,
.project-files-camera:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 22px rgba(41, 82, 88, .08);
}

.project-files-upload strong {
    color: #315f80;
}

.project-files-camera strong {
    color: #2f7a61;
}

.project-files-upload span,
.project-files-camera span {
    color: #738589;
    font-size: .75rem;
    line-height: 1.45;
}

.project-files-form .primary-action {
    justify-self: start;
    min-width: 170px;
    padding: 12px 18px;
    border: 0;
    border-radius: 13px;
    background: linear-gradient(135deg, #14727a, #1d8b8e);
    color: #fff;
    font-weight: 900;
    box-shadow: 0 9px 20px rgba(20, 114, 122, .18);
}

.project-files-empty {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 30px;
    border: 1px solid #dce9e8;
    border-radius: 22px;
    background: linear-gradient(145deg, #ffffff, #f7fbfb);
    box-shadow: 0 9px 24px rgba(31, 70, 78, .05);
}

.project-files-empty-icon {
    width: 62px;
    height: 62px;
    display: grid;
    place-items: center;
    flex: 0 0 62px;
    border-radius: 18px;
    background: linear-gradient(145deg, #e7f4f2, #f4f9f8);
    font-size: 1.7rem;
}

.project-files-empty h2 {
    margin: 0 0 6px;
    color: #254b56;
}

.project-files-empty p {
    margin: 0;
    color: #748689;
}

.project-files-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.project-file-card {
    overflow: hidden;
    border-radius: 21px;
    border: 1px solid #dce7e9;
    background: #fff;
    box-shadow: 0 12px 28px rgba(34, 71, 79, .07);
    transition: transform .16s ease, box-shadow .16s ease;
}

.project-file-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 16px 34px rgba(34, 71, 79, .11);
}

.project-file-card.is-photo {
    border-color: #cde5da;
}

.project-file-card.is-document {
    border-color: #d7e2f0;
}

.project-file-card.is-photo .project-file-card-body {
    background: linear-gradient(180deg, #ffffff, #f5fbf8);
}

.project-file-card.is-document .project-file-card-body {
    background: linear-gradient(180deg, #ffffff, #f7f9fd);
}

.project-file-document-icon {
    height: 150px;
    display: grid;
    place-items: center;
    background:
        radial-gradient(
            circle at 70% 25%,
            rgba(255,255,255,.8),
            transparent 30%
        ),
        linear-gradient(145deg, #eaf1fb, #f8fbff);
    color: #426783;
    font-size: 1rem;
    font-weight: 900;
}

.project-file-kind {
    display: inline-flex;
    padding: 5px 9px;
    border-radius: 999px;
    font-size: .66rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.project-file-card.is-photo .project-file-kind {
    background: #e5f5ec;
    color: #2e7658;
}

.project-file-card.is-document .project-file-kind {
    background: #e9f0fb;
    color: #456b88;
}

@media (max-width: 900px) {
    .project-files-add {
        grid-template-columns: 1fr;
    }

    .project-files-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .project-files-hero {
        flex-direction: column;
        padding: 25px;
    }

    .project-files-stats {
        grid-template-columns: 1fr;
    }

    .project-files-inputs,
    .project-files-grid {
        grid-template-columns: 1fr;
    }

    .project-files-add {
        padding: 19px;
    }
}

/* Finition Documents & photos projet */

.project-files-upload input[type="file"],
.project-files-camera input[type="file"] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.project-files-upload,
.project-files-camera {
    position: relative;
    cursor: pointer;
}

.project-files-upload::after,
.project-files-camera::after {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    justify-self: start;
    min-height: 34px;
    margin-top: 8px;
    padding: 7px 12px;
    border-radius: 10px;
    font-size: .76rem;
    font-weight: 900;
}

.project-files-upload::after {
    content: "Sélectionner un fichier";
    background: #e7f0fb;
    color: #315f80;
}

.project-files-camera::after {
    content: "Ouvrir l’appareil photo";
    background: #e5f5ec;
    color: #2f7a61;
}

.project-file-preview {
    height: 240px;
    padding: 8px;
    background: linear-gradient(145deg, #eef6f3, #f8fbfa);
}

.project-file-preview img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 13px;
}


/* ==========================================================
   CALENDRIER PARTAGÉ
   ========================================================== */

.shared-calendar-page {
    display: grid;
    gap: 1.35rem;
    padding-bottom: 3rem;
}

.calendar-hero {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 2rem 2.2rem;
    border-radius: 28px;
    color: #fff;
    background:
        radial-gradient(circle at 85% 15%, rgba(255,255,255,.22), transparent 28%),
        linear-gradient(135deg, #256f68 0%, #277f88 42%, #4f68b8 100%);
    box-shadow: 0 20px 45px rgba(40, 81, 109, .19);
}

.calendar-hero h1 {
    margin: .35rem 0 .55rem;
    font-size: clamp(2rem, 4vw, 3.5rem);
    line-height: 1;
}

.calendar-hero p {
    max-width: 760px;
    margin: 0;
    color: rgba(255,255,255,.9);
    font-size: 1rem;
}

.calendar-hero .section-label {
    color: rgba(255,255,255,.72);
}

.calendar-hero-date {
    flex: 0 0 auto;
    min-width: 108px;
    padding: 1rem;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 22px;
    text-align: center;
    background: rgba(255,255,255,.14);
    backdrop-filter: blur(12px);
}

.calendar-hero-date span {
    display: block;
    font-size: 2.6rem;
    line-height: 1;
    font-weight: 800;
}

.calendar-hero-date strong {
    display: block;
    margin-top: .3rem;
    font-size: .82rem;
    letter-spacing: .14em;
}

.calendar-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .9rem;
}

.calendar-summary-card {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: 1rem 1.15rem;
    border-radius: 20px;
    box-shadow: 0 10px 28px rgba(36, 55, 70, .08);
}

.calendar-summary-card strong,
.calendar-summary-card span {
    display: block;
}

.calendar-summary-card strong {
    font-size: 1.45rem;
}

.calendar-summary-icon {
    font-size: 1.55rem;
}

.calendar-summary-card.is-event {
    background: #e9f4ff;
    color: #2774a8;
}

.calendar-summary-card.is-task {
    background: #e9f8ef;
    color: #2f8a57;
}

.calendar-summary-card.is-meeting {
    background: #f3ecff;
    color: #7550b5;
}

.calendar-summary-card.is-milestone {
    background: #fff1e4;
    color: #bb6b25;
}

.calendar-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 1rem 1.15rem;
    border: 1px solid #e5ebef;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(32, 52, 67, .07);
}

.calendar-navigation {
    display: flex;
    align-items: center;
    gap: .7rem;
}

.calendar-current-month {
    min-width: 180px;
}

.calendar-current-month span {
    display: block;
    color: #87939d;
    font-size: .73rem;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.calendar-current-month h2 {
    margin: .15rem 0 0;
    font-size: 1.25rem;
}

.calendar-nav-button,
.calendar-today-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    border-radius: 14px;
    text-decoration: none;
    font-weight: 700;
}

.calendar-nav-button {
    width: 42px;
    color: #315b6e;
    background: #edf4f7;
}

.calendar-today-button {
    padding: 0 .9rem;
    color: #fff;
    background: linear-gradient(135deg, #2e8577, #5171ba);
}

.calendar-filters {
    display: flex;
    gap: .55rem;
    flex-wrap: wrap;
}

.calendar-filter {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .62rem .82rem;
    border: 1px solid transparent;
    border-radius: 999px;
    opacity: .45;
    cursor: pointer;
    font-weight: 700;
    transition: transform .18s ease, opacity .18s ease, box-shadow .18s ease;
}

.calendar-filter:hover {
    transform: translateY(-1px);
}

.calendar-filter.is-active {
    opacity: 1;
    box-shadow: 0 6px 15px rgba(40, 54, 70, .08);
}

.calendar-filter span {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: currentColor;
}

.calendar-filter.is-event {
    color: #2579ad;
    background: #e8f5ff;
}

.calendar-filter.is-task {
    color: #268253;
    background: #e7f7ed;
}

.calendar-filter.is-meeting {
    color: #7350b1;
    background: #f1eaff;
}

.calendar-filter.is-milestone {
    color: #b76420;
    background: #fff0df;
}

.calendar-board {
    overflow: visible;
    border: 1px solid #e4eaee;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 18px 40px rgba(37, 55, 67, .08);
}

.calendar-weekdays,
.calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.calendar-weekdays {
    border-bottom: 1px solid #e8edf0;
    background: linear-gradient(180deg, #f8fbfc, #f3f7f8);
    border-radius: 24px 24px 0 0;
}

.calendar-weekdays span {
    padding: .85rem .5rem;
    text-align: center;
    color: #647581;
    font-size: .78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.calendar-day {
    position: relative;
    min-width: 0;
    min-height: 148px;
    padding: .65rem;
    border-right: 1px solid #edf1f3;
    border-bottom: 1px solid #edf1f3;
    background: #fff;
}

.calendar-day:nth-child(7n) {
    border-right: 0;
}

.calendar-day.is-weekend {
    background: #fbfcfe;
}

.calendar-day.is-outside {
    background: #f8fafb;
}

.calendar-day.is-outside .calendar-day-number {
    color: #b8c0c6;
}

.calendar-day.is-today {
    z-index: 1;
    background:
        linear-gradient(180deg, rgba(226,248,241,.7), rgba(255,255,255,.95));
    box-shadow: inset 0 0 0 2px #58a99a;
}

.calendar-day-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 28px;
    margin-bottom: .4rem;
}

.calendar-day-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 10px;
    color: #3d4d57;
    font-weight: 800;
}

.calendar-day.is-today .calendar-day-number {
    color: #fff;
    background: #3b9282;
}

.calendar-today-label {
    color: #388d7d;
    font-size: .63rem;
    font-weight: 800;
    text-transform: uppercase;
}

.calendar-day-items {
    display: grid;
    gap: .34rem;
}

.calendar-item {
    position: relative;
    width: 100%;
    min-width: 0;
    padding: .45rem .5rem;
    border: 0;
    border-left: 4px solid currentColor;
    border-radius: 9px;
    text-align: left;
    cursor: pointer;
    font: inherit;
    transition: transform .15s ease, box-shadow .15s ease;
}

.calendar-item:hover,
.calendar-item.is-open {
    z-index: 20;
    transform: translateY(-1px);
    box-shadow: 0 7px 18px rgba(29, 46, 58, .12);
}

.calendar-item-main {
    display: flex;
    gap: .35rem;
    min-width: 0;
    align-items: baseline;
}

.calendar-item-main strong {
    flex: 0 0 auto;
    font-size: .66rem;
}

.calendar-item-main > span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .72rem;
    font-weight: 750;
}

.calendar-item-event {
    color: #2678a8;
    background: #e8f5ff;
}

.calendar-item-task {
    color: #277e50;
    background: #e7f7ed;
}

.calendar-item-meeting {
    color: #7050ac;
    background: #f1eaff;
}

.calendar-item-milestone {
    color: #b76625;
    background: #fff0e2;
}

.calendar-tooltip {
    position: absolute;
    z-index: 100;
    left: 50%;
    bottom: calc(100% + 10px);
    display: none;
    width: 260px;
    max-width: 80vw;
    padding: .85rem .9rem;
    border: 1px solid rgba(213, 222, 228, .95);
    border-radius: 14px;
    color: #34434c;
    background: rgba(255,255,255,.98);
    box-shadow: 0 16px 35px rgba(24, 40, 52, .19);
    transform: translateX(-50%);
}

.calendar-item:hover .calendar-tooltip,
.calendar-item.is-open .calendar-tooltip {
    display: grid;
    gap: .28rem;
}

.calendar-tooltip-title {
    color: #263942;
    font-size: .9rem;
}

.calendar-tooltip-type {
    margin-bottom: .15rem;
    color: currentColor;
    font-size: .69rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.calendar-tooltip > span:not(.calendar-tooltip-title) {
    font-size: .75rem;
    line-height: 1.35;
}

@media (max-width: 1100px) {
    .calendar-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .calendar-board {
        overflow-x: auto;
    }

    .calendar-weekdays,
    .calendar-grid {
        min-width: 880px;
    }
}

@media (max-width: 700px) {
    .calendar-hero {
        align-items: flex-start;
        padding: 1.45rem;
    }

    .calendar-hero-date {
        min-width: 80px;
    }

    .calendar-hero-date span {
        font-size: 2rem;
    }

    .calendar-summary {
        grid-template-columns: 1fr 1fr;
    }

    .calendar-toolbar {
        align-items: stretch;
    }

    .calendar-navigation {
        width: 100%;
    }

    .calendar-current-month {
        flex: 1;
        min-width: 0;
    }

    .calendar-filters {
        width: 100%;
    }

    .calendar-filter {
        flex: 1 1 45%;
        justify-content: center;
    }
}

.calendar-filter-all {
    color: #425466;
    background: #eef2f5;
}

.calendar-filter-all.is-active {
    color: #244b5a;
    background: #dfe9ee;
}


/* CALENDAR QUICK ADD 1B-A */

.calendar-day[data-calendar-day] {
    cursor: pointer;
}

.calendar-day[data-calendar-day]:focus-visible {
    outline: 3px solid rgba(37, 99, 235, 0.35);
    outline-offset: -3px;
}

.calendar-day[data-calendar-day]:hover {
    transform: translateY(-1px);
}

.calendar-modal-open {
    overflow: hidden;
}

.calendar-quick-add[hidden] {
    display: none;
}

.calendar-quick-add {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(15, 23, 42, 0.5);
    backdrop-filter: blur(5px);
}

.calendar-quick-add-panel {
    position: relative;
    width: min(560px, 100%);
    max-height: calc(100vh - 48px);
    overflow-y: auto;
    padding: 28px;
    border: 1px solid rgba(148, 163, 184, 0.25);
    border-radius: 26px;
    background: #ffffff;
    box-shadow:
        0 28px 70px rgba(15, 23, 42, 0.26),
        0 8px 24px rgba(15, 23, 42, 0.12);
}

.calendar-quick-add-heading {
    padding-right: 40px;
}

.calendar-quick-add-heading h2 {
    margin: 4px 0 4px;
}

.calendar-quick-add-heading p {
    margin: 0;
    color: #64748b;
}

.calendar-quick-add-heading p strong {
    color: #0f172a;
    text-transform: capitalize;
}

.calendar-quick-add-close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 50%;
    background: #f1f5f9;
    color: #334155;
    font-size: 25px;
    line-height: 1;
    cursor: pointer;
}

.calendar-quick-add-close:hover {
    background: #e2e8f0;
}

.calendar-quick-add-actions {
    display: grid;
    gap: 14px;
    margin-top: 24px;
}

.calendar-quick-action {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 14px;
    min-height: 78px;
    padding: 16px 18px;
    border-radius: 20px;
    text-decoration: none;
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease;
}

a.calendar-quick-action:hover {
    transform: translateY(-2px);
}

.calendar-quick-action.is-event {
    background:
        linear-gradient(
            135deg,
            rgba(219, 234, 254, 0.96),
            rgba(239, 246, 255, 0.96)
        );
    color: #1e40af;
    box-shadow: 0 10px 24px rgba(37, 99, 235, 0.11);
}

.calendar-quick-action.is-task {
    background:
        linear-gradient(
            135deg,
            rgba(220, 252, 231, 0.96),
            rgba(240, 253, 244, 0.96)
        );
    color: #166534;
}

.calendar-quick-action-icon {
    font-size: 22px;
}

.calendar-quick-action strong,
.calendar-quick-action small {
    display: block;
}

.calendar-quick-action strong {
    font-size: 1rem;
}

.calendar-quick-action small {
    margin-top: 3px;
    color: #64748b;
    font-size: 0.82rem;
    font-weight: 500;
}

.calendar-quick-task {
    overflow: hidden;
    border: 1px solid rgba(22, 163, 74, 0.15);
    border-radius: 20px;
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(22, 163, 74, 0.08);
}

.calendar-quick-task .calendar-quick-action {
    border-radius: 0;
}

.calendar-quick-task label {
    display: grid;
    gap: 7px;
    padding: 0 18px 15px;
    color: #475569;
    font-size: 0.82rem;
    font-weight: 700;
}

.calendar-quick-task select {
    width: 100%;
    min-height: 44px;
    padding: 8px 11px;
    border: 1px solid #cbd5e1;
    border-radius: 11px;
    background: #ffffff;
    color: #0f172a;
}

.calendar-quick-task-open {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 18px;
    background: #15803d;
    color: #ffffff;
    text-decoration: none;
    font-weight: 800;
}

.calendar-quick-task-open:hover {
    background: #166534;
}

.calendar-quick-add-empty {
    padding: 20px;
    border-radius: 18px;
    background: #f8fafc;
    color: #475569;
}

.calendar-quick-add-empty strong {
    color: #0f172a;
}

.calendar-quick-add-empty p {
    margin: 5px 0 0;
}

@media (max-width: 640px) {
    .calendar-quick-add {
        align-items: flex-end;
        padding: 12px;
    }

    .calendar-quick-add-panel {
        width: 100%;
        max-height: 86vh;
        padding: 22px 18px 18px;
        border-radius: 24px 24px 18px 18px;
    }
}


/* CALENDAR QUICK MEETING 1B-B */

.calendar-quick-meeting {
    overflow: hidden;
    border: 1px solid rgba(124, 58, 237, 0.16);
    border-radius: 20px;
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(124, 58, 237, 0.08);
}

.calendar-quick-meeting .calendar-quick-action {
    border-radius: 0;
}

.calendar-quick-action.is-meeting {
    background:
        linear-gradient(
            135deg,
            rgba(237, 233, 254, 0.98),
            rgba(245, 243, 255, 0.98)
        );
    color: #6d28d9;
}

.calendar-quick-meeting label {
    display: grid;
    gap: 7px;
    padding: 0 18px 15px;
    color: #475569;
    font-size: 0.82rem;
    font-weight: 700;
}

.calendar-quick-meeting select {
    width: 100%;
    min-height: 44px;
    padding: 8px 11px;
    border: 1px solid #cbd5e1;
    border-radius: 11px;
    background: #ffffff;
    color: #0f172a;
}

.calendar-quick-meeting-open {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 18px;
    background: #7c3aed;
    color: #ffffff;
    text-decoration: none;
    font-weight: 800;
}

.calendar-quick-meeting-open:hover {
    background: #6d28d9;
}

#meeting-\\:target,
.construction-meeting-card:target {
    scroll-margin-top: 24px;
}

.construction-meeting-card:target,
.project-task-card:target {
    outline: 3px solid rgba(37, 99, 235, 0.22);
    outline-offset: 4px;
}


/* CALENDAR WEEK VIEW 1C-1 */

.calendar-view-switch {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px;
    border: 1px solid #e3e9ed;
    border-radius: 15px;
    background: #f4f7f9;
}

.calendar-view-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0 0.85rem;
    border-radius: 11px;
    color: #61717b;
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 800;
    transition:
        background 0.18s ease,
        color 0.18s ease,
        box-shadow 0.18s ease;
}

.calendar-view-button:hover:not(.is-disabled) {
    color: #315e70;
    background: #ffffff;
}

.calendar-view-button.is-active {
    color: #ffffff;
    background: linear-gradient(135deg, #2e8577, #5171ba);
    box-shadow: 0 5px 13px rgba(55, 103, 132, 0.2);
}

.calendar-view-button.is-disabled {
    cursor: default;
    opacity: 0.42;
}

.calendar-board.is-week-view .calendar-day {
    min-height: 430px;
}

.calendar-board.is-week-view .calendar-day-header {
    margin-bottom: 0.7rem;
}

.calendar-board.is-week-view .calendar-day-number {
    width: 36px;
    height: 36px;
    border-radius: 12px;
    font-size: 1rem;
}

.calendar-board.is-week-view .calendar-day-items {
    gap: 0.5rem;
}

.calendar-board.is-week-view .calendar-item {
    padding: 0.6rem;
}

.calendar-board.is-week-view .calendar-item-main {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.16rem;
}

.calendar-board.is-week-view .calendar-item-main > span {
    width: 100%;
    white-space: normal;
    line-height: 1.3;
}

@media (max-width: 1100px) {
    .calendar-view-switch {
        order: 3;
    }

    .calendar-board.is-week-view .calendar-weekdays,
    .calendar-board.is-week-view .calendar-grid {
        min-width: 980px;
    }
}

@media (max-width: 700px) {
    .calendar-view-switch {
        width: 100%;
    }

    .calendar-view-button {
        flex: 1;
    }
}


/* CALENDAR AGENDA VIEW 1C-2 - CARDS */

.calendar-agenda {
    display: grid;
    grid-template-columns: repeat(
        3,
        minmax(0, 1fr)
    );
    gap: 1rem;
    align-items: start;
    padding: 1rem;
    border: 1px solid #dfe8ec;
    border-radius: 24px;
    background:
        linear-gradient(
            180deg,
            #eef5f7 0%,
            #f6fafb 100%
        );
}

.calendar-agenda-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 220px;
    overflow: hidden;
    border: 1px solid #d8e4e9;
    border-radius: 22px;
    background: #ffffff;
    box-shadow:
        0 12px 28px rgba(31, 49, 61, 0.08);
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        border-color 0.18s ease;
}

.calendar-agenda-card:hover {
    transform: translateY(-3px);
    border-color: #d4e1e6;
    box-shadow:
        0 16px 34px rgba(31, 49, 61, 0.11);
}

.calendar-agenda-card:focus-visible {
    outline: 3px solid rgba(51, 124, 157, 0.25);
    outline-offset: 3px;
}

.calendar-agenda-card.is-today {
    border-color: rgba(49, 146, 127, 0.55);
    box-shadow:
        0 14px 32px rgba(49, 146, 127, 0.13);
}

.calendar-agenda-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    min-height: 78px;
    padding: 1rem 1rem 0.9rem;
    border-bottom: 1px solid #edf1f3;
    background:
        linear-gradient(
            145deg,
            #f4f8fa 0%,
            #ffffff 100%
        );
    cursor: pointer;
}

.calendar-agenda-card.is-today
.calendar-agenda-card-header {
    background:
        linear-gradient(
            145deg,
            #e8f7f2 0%,
            #f8fcfb 100%
        );
}

.calendar-agenda-card-date {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    min-width: 0;
}

.calendar-agenda-card-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    align-self: flex-start;
    width: 46px;
    height: 46px;
    margin-top: 0.1rem;
    border-radius: 15px;
    color: #758b96;
    background: #e8f1f5;
    font-size: 1.05rem;
    line-height: 1;
    font-weight: 900;
}

.calendar-agenda-card.is-today
.calendar-agenda-card-number {
    color: #ffffff;
    background:
        linear-gradient(
            135deg,
            #248f7d,
            #416fa8
        );
    box-shadow:
        0 8px 18px rgba(47, 117, 128, 0.22);
}

.calendar-agenda-card-date > div > strong,
.calendar-agenda-card-date > div > span {
    display: block;
}

.calendar-agenda-card-date strong {
    color: #203843;
    font-size: 0.95rem;
    font-weight: 850;
}

.calendar-agenda-card-date span {
    margin-top: 0.12rem;
    color: #8a99a1;
    font-size: 0.72rem;
}

.calendar-agenda-today {
    flex: 0 0 auto;
    padding: 0.3rem 0.5rem;
    border-radius: 999px;
    color: #287664;
    background: #dff3ec;
    font-size: 0.63rem;
    font-weight: 900;
    text-transform: uppercase;
}

.calendar-agenda-card-items {
    display: grid;
    gap: 0.55rem;
    flex: 1;
    padding: 0.85rem;
}

.calendar-agenda-card-item {
    display: grid;
    grid-template-columns:
        9px
        minmax(0, 1fr)
        25px;
    align-items: center;
    gap: 0.55rem;
    min-width: 0;
    padding: 0.72rem;
    border-radius: 14px;
    color: #344952;
    text-decoration: none;
    transition:
        transform 0.15s ease,
        box-shadow 0.15s ease;
}

.calendar-agenda-card-item:hover {
    transform: translateY(-1px);
    box-shadow:
        0 7px 15px rgba(37, 55, 66, 0.07);
}

.calendar-agenda-card-item.is-event {
    color: #2477a7;
    background: #e9f5fd;
}

.calendar-agenda-card-item.is-task {
    color: #277c4d;
    background: #e8f7ed;
}

.calendar-agenda-card-item.is-meeting {
    color: #704cac;
    background: #f1eafd;
}

.calendar-agenda-card-item.is-milestone {
    color: #b96421;
    background: #fff0e1;
}

.calendar-agenda-card-dot {
    align-self: start;
    width: 8px;
    height: 8px;
    margin-top: 0.28rem;
    border-radius: 50%;
    background: currentColor;
}

.calendar-agenda-card-content {
    display: block;
    min-width: 0;
}

.calendar-agenda-card-content strong,
.calendar-agenda-card-content small,
.calendar-agenda-card-meta {
    display: block;
}

.calendar-agenda-card-meta {
    margin-bottom: 0.2rem;
    color: currentColor;
    font-size: 0.65rem;
    font-weight: 850;
}

.calendar-agenda-card-content strong {
    overflow: hidden;
    color: #263b45;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.82rem;
}

.calendar-agenda-card-content small {
    margin-top: 0.2rem;
    overflow: hidden;
    color: #71838c;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.68rem;
}

.calendar-agenda-card-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 25px;
    height: 25px;
    border-radius: 50%;
    color: currentColor;
    background: rgba(255, 255, 255, 0.7);
    font-size: 0.85rem;
    font-weight: 900;
}

.calendar-agenda-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.65rem 0.95rem;
    border-top: 1px solid #edf1f3;
    color: #89969d;
    background: #fbfcfd;
    font-size: 0.68rem;
    font-weight: 750;
}

.calendar-agenda-card-footer span:last-child {
    color: #397887;
}

.calendar-agenda-empty {
    grid-column: 1 / -1;
    display: grid;
    justify-items: center;
    gap: 0.35rem;
    padding: 3rem 1.5rem;
    border: 1px dashed #d7e1e6;
    border-radius: 22px;
    color: #718089;
    text-align: center;
    background: #fbfcfd;
}

.calendar-agenda-empty > span {
    font-size: 2rem;
}

.calendar-agenda-empty strong {
    color: #354a54;
}

.calendar-agenda-empty p {
    max-width: 480px;
    margin: 0;
    font-size: 0.82rem;
}

@media (max-width: 1250px) {
    .calendar-agenda {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .calendar-agenda {
        grid-template-columns: 1fr;
    }

    .calendar-agenda-card {
        min-height: auto;
    }

    .calendar-agenda-card-header {
        padding: 0.85rem;
    }

    .calendar-agenda-card-items {
        padding: 0.7rem;
    }
}



/* CALENDAR AGENDA STYLE BOOST 1C-2 */

.calendar-agenda {
    padding: 1.15rem;
    border: 1px solid #d8e5ea;
    border-radius: 26px;
    background:
        radial-gradient(
            circle at top right,
            rgba(96, 132, 210, 0.10),
            transparent 26%
        ),
        radial-gradient(
            circle at bottom left,
            rgba(53, 148, 129, 0.08),
            transparent 28%
        ),
        linear-gradient(
            180deg,
            #edf5f7 0%,
            #f7fbfc 100%
        );
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.85),
        0 10px 26px rgba(46, 72, 89, 0.05);
}

.calendar-agenda-card {
    border: 1px solid #d5e3e8;
    border-radius: 24px;
    box-shadow:
        0 12px 28px rgba(33, 56, 70, 0.08),
        0 2px 0 rgba(255, 255, 255, 0.85) inset;
}

.calendar-agenda-card:hover {
    transform: translateY(-4px);
    border-color: #c7dbe1;
    box-shadow:
        0 18px 38px rgba(33, 56, 70, 0.13),
        0 2px 0 rgba(255, 255, 255, 0.92) inset;
}

.calendar-agenda-card-header {
    padding: 1rem 1rem 0.95rem;
    background:
        linear-gradient(
            145deg,
            #eef5f8 0%,
            #fbfdfe 100%
        );
}

.calendar-agenda-card:nth-child(3n + 1) .calendar-agenda-card-header {
    background:
        linear-gradient(
            145deg,
            rgba(233, 244, 252, 0.95) 0%,
            rgba(250, 252, 255, 0.98) 100%
        );
}

.calendar-agenda-card:nth-child(3n + 2) .calendar-agenda-card-header {
    background:
        linear-gradient(
            145deg,
            rgba(235, 249, 241, 0.96) 0%,
            rgba(250, 253, 251, 0.98) 100%
        );
}

.calendar-agenda-card:nth-child(3n + 3) .calendar-agenda-card-header {
    background:
        linear-gradient(
            145deg,
            rgba(244, 239, 252, 0.96) 0%,
            rgba(252, 251, 255, 0.98) 100%
        );
}

.calendar-agenda-card.is-today {
    border-color: rgba(54, 150, 131, 0.50);
    box-shadow:
        0 18px 40px rgba(54, 150, 131, 0.16),
        0 0 0 3px rgba(54, 150, 131, 0.08);
}

.calendar-agenda-card.is-today .calendar-agenda-card-header {
    background:
        linear-gradient(
            135deg,
            rgba(230, 248, 242, 0.98) 0%,
            rgba(240, 248, 252, 0.98) 100%
        );
}

.calendar-agenda-card-number {
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.85),
        0 6px 14px rgba(70, 104, 124, 0.10);
}

.calendar-agenda-card-date strong {
    font-size: 1rem;
    font-weight: 900;
}

.calendar-agenda-card-date span {
    font-size: 0.74rem;
}

.calendar-agenda-card-items {
    gap: 0.65rem;
    padding: 0.95rem;
}

.calendar-agenda-card-item {
    border: 1px solid rgba(255, 255, 255, 0.85);
    border-radius: 16px;
    box-shadow:
        0 6px 14px rgba(37, 55, 66, 0.05);
}

.calendar-agenda-card-item:hover {
    transform: translateY(-2px);
    box-shadow:
        0 10px 20px rgba(37, 55, 66, 0.10);
}

.calendar-agenda-card-item.is-event {
    background:
        linear-gradient(
            135deg,
            #e8f4fd 0%,
            #f4faff 100%
        );
}

.calendar-agenda-card-item.is-task {
    background:
        linear-gradient(
            135deg,
            #e7f6eb 0%,
            #f4fbf6 100%
        );
}

.calendar-agenda-card-item.is-meeting {
    background:
        linear-gradient(
            135deg,
            #f1eafd 0%,
            #faf7ff 100%
        );
}

.calendar-agenda-card-item.is-milestone {
    background:
        linear-gradient(
            135deg,
            #fff0e2 0%,
            #fff8f1 100%
        );
}

.calendar-agenda-card-meta {
    font-size: 0.67rem;
    letter-spacing: 0.02em;
}

.calendar-agenda-card-content strong {
    font-size: 0.88rem;
}

.calendar-agenda-card-content small {
    font-size: 0.71rem;
}

.calendar-agenda-card-arrow {
    width: 28px;
    height: 28px;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

.calendar-agenda-card-footer {
    border-top: 1px solid #ebf0f3;
    background:
        linear-gradient(
            180deg,
            #fbfcfd 0%,
            #f5f8fa 100%
        );
    font-size: 0.70rem;
}

.calendar-agenda-card-footer span:last-child {
    font-weight: 850;
}



/* CALENDAR AGENDA BACKGROUND BOOST */

.calendar-agenda {
    padding: 1.2rem;
    border: 1px solid rgba(58, 145, 134, 0.42);
    border-radius: 26px;
    background:
        radial-gradient(
            circle at 8% 8%,
            rgba(58, 145, 134, 0.44),
            transparent 36%
        ),
        radial-gradient(
            circle at 92% 12%,
            rgba(78, 130, 174, 0.46),
            transparent 38%
        ),
        linear-gradient(
            135deg,
            rgba(58, 145, 134, 0.32) 0%,
            rgba(78, 130, 174, 0.33) 100%
        );
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.45),
        0 16px 36px rgba(50, 91, 105, 0.15);
}

/* CALENDAR RESPONSIVE 1C-3 */

/* ==========================================================
   TABLETTE
   ========================================================== */

@media (max-width: 1100px) {
    .shared-calendar-page {
        gap: 1rem;
    }

    .calendar-toolbar {
        align-items: stretch;
        gap: 0.9rem;
    }

    .calendar-navigation {
        flex-wrap: wrap;
    }

    .calendar-current-month {
        flex: 1 1 220px;
        min-width: 0;
    }

    .calendar-current-month h2 {
        font-size: 1.2rem;
    }

    .calendar-view-switch {
        order: initial;
        width: auto;
    }

    .calendar-filters {
        width: 100%;
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 0.2rem;
        scrollbar-width: thin;
    }

    .calendar-filter {
        flex: 0 0 auto;
        min-height: 40px;
    }

    /*
     * La vue semaine reste sur 7 colonnes en tablette,
     * mais sans imposer les 980 px actuels.
     */
    .calendar-board.is-week-view .calendar-weekdays,
    .calendar-board.is-week-view .calendar-grid {
        min-width: 720px;
    }

    .calendar-board.is-week-view .calendar-day {
        min-height: 330px;
    }

    /*
     * La vue mois reste compacte et scrollable seulement
     * sur tablette intermédiaire.
     */
    .calendar-board.is-month-view .calendar-weekdays,
    .calendar-board.is-month-view .calendar-grid {
        min-width: 720px;
    }

    .calendar-agenda {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .calendar-quick-add-panel {
        width: min(620px, calc(100vw - 32px));
    }
}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width: 700px) {
    .shared-calendar-page {
        gap: 0.85rem;
        padding-bottom: 2rem;
    }

    /*
     * HERO
     */

    .calendar-hero {
        align-items: flex-start;
        gap: 0.8rem;
        padding: 1.15rem;
        border-radius: 20px;
    }

    .calendar-hero h1 {
        font-size: 1.55rem;
    }

    .calendar-hero p {
        font-size: 0.83rem;
        line-height: 1.45;
    }

    .calendar-hero-date {
        flex: 0 0 auto;
        transform: scale(0.9);
        transform-origin: top right;
    }

    /*
     * STATISTIQUES
     */

    .calendar-summary {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
        gap: 0.65rem;
    }

    .calendar-summary-card {
        min-width: 0;
        padding: 0.8rem;
    }

    .calendar-summary-card strong {
        font-size: 1.2rem;
    }

    .calendar-summary-card span {
        font-size: 0.72rem;
    }

    /*
     * BARRE DE NAVIGATION
     */

    .calendar-toolbar {
        display: grid;
        gap: 0.75rem;
    }

    .calendar-navigation {
        display: grid;
        grid-template-columns:
            42px minmax(0, 1fr) 42px;
        gap: 0.5rem;
        width: 100%;
    }

    .calendar-nav-button {
        width: 42px;
        height: 42px;
        padding: 0;
    }

    .calendar-current-month {
        display: flex;
        flex-direction: column;
        justify-content: center;
        min-width: 0;
        text-align: center;
    }

    .calendar-current-month span {
        font-size: 0.67rem;
    }

    .calendar-current-month h2 {
        margin: 0.1rem 0 0;
        font-size: 1rem;
        line-height: 1.2;
    }

    .calendar-today-button {
        grid-column: 1 / -1;
        justify-self: stretch;
        min-height: 40px;
        text-align: center;
    }

    /*
     * MOIS / SEMAINE / AGENDA
     */

    .calendar-view-switch {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        width: 100%;
        padding: 4px;
    }

    .calendar-view-button {
        width: 100%;
        min-height: 42px;
        padding: 0.45rem;
        font-size: 0.76rem;
    }

    /*
     * FILTRES
     */

    .calendar-filters {
        display: flex;
        width: calc(100vw - 32px);
        max-width: 100%;
        gap: 0.45rem;
        overflow-x: auto;
        flex-wrap: nowrap;
        padding: 0 0 0.35rem;
        -webkit-overflow-scrolling: touch;
    }

    .calendar-filter {
        flex: 0 0 auto;
        min-height: 40px;
        padding-inline: 0.75rem;
        white-space: nowrap;
    }

    /*
     * MOIS + SEMAINE :
     * sur mobile, suppression de la grille 7 colonnes.
     * Chaque journée devient une card verticale.
     */

    .calendar-board {
        overflow: visible;
        border: 0;
        background: transparent;
    }

    .calendar-board .calendar-weekdays {
        display: none;
    }

    .calendar-board.is-month-view .calendar-grid,
    .calendar-board.is-week-view .calendar-grid {
        display: grid;
        grid-template-columns: 1fr;
        gap: 0.65rem;
        min-width: 0;
        border: 0;
        background: transparent;
    }

    .calendar-board.is-month-view .calendar-day,
    .calendar-board.is-week-view .calendar-day {
        min-height: 86px;
        overflow: visible;
        border: 1px solid #dde7eb;
        border-radius: 17px;
        background: #ffffff;
        box-shadow:
            0 7px 18px rgba(31, 49, 61, 0.06);
    }

    /*
     * Les jours hors mois n'apportent rien sur mobile.
     */
    .calendar-board.is-month-view .calendar-day.is-outside {
        display: none;
    }

    .calendar-board .calendar-day.is-today {
        border-color: rgba(49, 146, 127, 0.5);
        box-shadow:
            0 9px 22px rgba(49, 146, 127, 0.11);
    }

    .calendar-board .calendar-day-header {
        display: flex;
        align-items: center;
        gap: 0.55rem;
        margin: 0;
        padding: 0.7rem 0.8rem 0.45rem;
    }

    .calendar-board .calendar-day-number {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 34px;
        height: 34px;
        border-radius: 11px;
        font-size: 0.9rem;
    }

    .calendar-board .calendar-day-items {
        display: grid;
        gap: 0.45rem;
        padding: 0 0.7rem 0.7rem;
    }

    .calendar-board .calendar-item {
        min-height: 44px;
        padding: 0.65rem 0.7rem;
        border-radius: 12px;
    }

    .calendar-board .calendar-item-main {
        display: flex;
        align-items: center;
        flex-direction: row;
        gap: 0.5rem;
    }

    .calendar-board .calendar-item-main strong {
        flex: 0 0 auto;
    }

    .calendar-board .calendar-item-main > span {
        width: auto;
        min-width: 0;
        white-space: normal;
        line-height: 1.3;
    }

    /*
     * Les tooltips hover ne sont pas adaptés au tactile.
     * Le clic ouvre déjà le module source.
     */
    .calendar-board .calendar-tooltip {
        display: none !important;
    }

    /*
     * AGENDA
     */

    .calendar-agenda {
        grid-template-columns: 1fr;
        gap: 0.75rem;
        padding: 0.7rem;
        border-radius: 20px;
    }

    .calendar-agenda-card {
        min-height: auto;
        border-radius: 18px;
    }

    .calendar-agenda-card-header {
        min-height: auto;
        padding: 0.8rem;
    }

    .calendar-agenda-card-number {
        width: 42px;
        height: 42px;
        border-radius: 13px;
    }

    .calendar-agenda-card-items {
        gap: 0.5rem;
        padding: 0.7rem;
    }

    .calendar-agenda-card-item {
        min-height: 52px;
        padding: 0.65rem;
    }

    .calendar-agenda-card-content strong {
        white-space: normal;
        line-height: 1.25;
    }

    /*
     * AJOUT RAPIDE :
     * panneau quasi plein écran, pratique au doigt.
     */

    .calendar-quick-add {
        align-items: flex-end;
        padding: 0;
    }

    .calendar-quick-add-panel {
        width: 100%;
        max-height: 88vh;
        padding: 1.15rem;
        border-radius: 24px 24px 0 0;
    }

    .calendar-quick-add-close {
        width: 42px;
        height: 42px;
    }

    .calendar-quick-action,
    .calendar-quick-task-open,
    .calendar-quick-meeting-open {
        min-height: 48px;
    }
}


/* ==========================================================
   PETITS MOBILES
   ========================================================== */

@media (max-width: 430px) {
    .calendar-hero-date {
        display: none;
    }

    .calendar-summary {
        grid-template-columns: 1fr 1fr;
    }

    .calendar-summary-card {
        padding: 0.7rem;
    }

    .calendar-current-month h2 {
        font-size: 0.92rem;
    }

    .calendar-filter {
        font-size: 0.72rem;
    }

    .calendar-agenda {
        padding: 0.55rem;
    }

    .calendar-agenda-card-header {
        gap: 0.5rem;
    }

    .calendar-agenda-today {
        font-size: 0.56rem;
    }
}

/* CALENDAR RESPONSIVE 1C-3 FIX PROPORTIONS */

@media (max-width: 700px) {
    .shared-calendar-page,
    .calendar-toolbar,
    .calendar-navigation,
    .calendar-view-switch,
    .calendar-filters,
    .calendar-board,
    .calendar-agenda {
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    /*
     * BARRE HAUTE :
     * éviter tout dépassement horizontal.
     */
    .calendar-toolbar {
        width: 100%;
        padding: 0.8rem;
        overflow: hidden;
    }

    .calendar-navigation {
        width: 100%;
    }

    .calendar-view-switch {
        width: 100%;
    }

    .calendar-filters {
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        scrollbar-width: thin;
    }

    /*
     * VUE MOIS :
     * on garde un vrai calendrier 7 colonnes.
     */
    .calendar-board.is-month-view {
        overflow-x: auto;
        overflow-y: visible;
        border: 1px solid #dde6ea;
        border-radius: 18px;
        background: #ffffff;
        -webkit-overflow-scrolling: touch;
    }

    .calendar-board.is-month-view .calendar-weekdays {
        display: grid;
        grid-template-columns: repeat(7, minmax(82px, 1fr));
        min-width: 620px;
    }

    .calendar-board.is-month-view .calendar-grid {
        display: grid;
        grid-template-columns: repeat(7, minmax(82px, 1fr));
        gap: 0;
        min-width: 620px;
        background: #ffffff;
    }

    .calendar-board.is-month-view .calendar-day {
        display: block;
        min-height: 105px;
        padding: 0.45rem;
        border: 0;
        border-right: 1px solid #e7ecef;
        border-bottom: 1px solid #e7ecef;
        border-radius: 0;
        box-shadow: none;
    }

    .calendar-board.is-month-view .calendar-day.is-outside {
        display: block;
        background: #f7f9fa;
        opacity: 0.7;
    }

    .calendar-board.is-month-view .calendar-day-header {
        padding: 0;
        margin-bottom: 0.35rem;
    }

    .calendar-board.is-month-view .calendar-day-number {
        width: 28px;
        height: 28px;
        border-radius: 9px;
        font-size: 0.78rem;
    }

    .calendar-board.is-month-view .calendar-day-items {
        gap: 0.3rem;
        padding: 0;
    }

    .calendar-board.is-month-view .calendar-item {
        min-height: auto;
        padding: 0.32rem 0.4rem;
        border-radius: 8px;
        font-size: 0.68rem;
    }

    .calendar-board.is-month-view .calendar-item-main {
        display: block;
    }

    .calendar-board.is-month-view .calendar-item-main strong {
        display: inline;
        margin-right: 0.2rem;
    }

    .calendar-board.is-month-view .calendar-item-main > span {
        display: inline;
        font-size: 0.68rem;
        line-height: 1.2;
    }

    /*
     * VUE SEMAINE :
     * une colonne reste plus lisible,
     * mais on réduit les proportions.
     */
    .calendar-board.is-week-view .calendar-grid {
        gap: 0.5rem;
    }

    .calendar-board.is-week-view .calendar-day {
        min-height: auto;
        padding: 0.15rem;
        border-radius: 15px;
    }

    .calendar-board.is-week-view .calendar-day-header {
        padding: 0.6rem 0.7rem 0.35rem;
    }

    .calendar-board.is-week-view .calendar-day-items {
        padding: 0 0.6rem 0.6rem;
    }

    .calendar-board.is-week-view .calendar-item {
        min-height: 40px;
        padding: 0.55rem 0.6rem;
    }

    /*
     * AGENDA :
     * moins de marge pour éviter l'effet énorme.
     */
    .calendar-agenda {
        width: 100%;
        padding: 0.55rem;
        gap: 0.6rem;
    }

    .calendar-agenda-card {
        width: 100%;
        border-radius: 17px;
    }

    .calendar-agenda-card-header {
        padding: 0.7rem;
    }

    .calendar-agenda-card-items {
        padding: 0.6rem;
    }

    /*
     * STATS :
     * proportions plus adaptées au téléphone.
     */
    .calendar-summary {
        gap: 0.5rem;
    }

    .calendar-summary-card {
        min-height: 76px;
        padding: 0.7rem;
        border-radius: 17px;
    }

    /*
     * Empêche les éléments internes de pousser
     * toute la page au-delà du viewport.
     */
    .calendar-item,
    .calendar-agenda-card-item,
    .calendar-summary-card {
        min-width: 0;
    }
}

@media (max-width: 430px) {
    .calendar-board.is-month-view .calendar-weekdays,
    .calendar-board.is-month-view .calendar-grid {
        min-width: 590px;
    }

    .calendar-board.is-month-view .calendar-weekdays {
        grid-template-columns: repeat(7, minmax(78px, 1fr));
    }

    .calendar-board.is-month-view .calendar-grid {
        grid-template-columns: repeat(7, minmax(78px, 1fr));
    }
}

/* CALENDAR RESPONSIVE 1C-3 FINAL MOBILE */

@media (max-width: 700px) {

    /*
     * TOOLBAR
     */

    .calendar-toolbar {
        padding: 0.75rem;
        border-radius: 18px;
    }

    .calendar-navigation {
        grid-template-columns:
            40px minmax(0, 1fr) 40px;
    }

    .calendar-nav-button {
        width: 40px;
        height: 40px;
    }

    .calendar-today-button {
        min-height: 38px;
    }

    /*
     * FILTRES :
     * plus de bande coupée horizontalement.
     */

    .calendar-filters {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 0.4rem;
        width: 100%;
        overflow: visible;
        padding: 0;
    }

    .calendar-filter {
        flex: 0 0 auto;
        min-height: 36px;
        padding: 0.45rem 0.65rem;
        font-size: 0.69rem;
    }

    /*
     * VUE MOIS :
     * le calendrier complet tient dans l'écran.
     */

    .calendar-board.is-month-view {
        width: 100%;
        overflow: hidden;
        border-radius: 18px;
    }

    .calendar-board.is-month-view .calendar-weekdays,
    .calendar-board.is-month-view .calendar-grid {
        width: 100%;
        min-width: 0;
        grid-template-columns:
            repeat(7, minmax(0, 1fr));
    }

    .calendar-board.is-month-view .calendar-weekdays {
        height: 36px;
    }

    .calendar-board.is-month-view .calendar-weekdays span {
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0;
        font-size: 0.59rem;
        letter-spacing: 0.03em;
    }

    .calendar-board.is-month-view .calendar-day {
        min-width: 0;
        min-height: 78px;
        padding: 0.25rem;
    }

    .calendar-board.is-month-view .calendar-day-header {
        margin-bottom: 0.2rem;
    }

    .calendar-board.is-month-view .calendar-day-number {
        width: 23px;
        height: 23px;
        border-radius: 7px;
        font-size: 0.65rem;
    }

    .calendar-board.is-month-view .calendar-today-label {
        display: none;
    }

    .calendar-board.is-month-view .calendar-day-items {
        gap: 2px;
    }

    .calendar-board.is-month-view .calendar-item {
        display: block;
        min-width: 0;
        min-height: 5px;
        height: 5px;
        padding: 0;
        overflow: hidden;
        border-radius: 999px;
        font-size: 0;
    }

    .calendar-board.is-month-view .calendar-item-main,
    .calendar-board.is-month-view .calendar-item-main strong,
    .calendar-board.is-month-view .calendar-item-main > span {
        display: none;
    }

    /*
     * Les petites barres colorées suffisent sur mobile.
     * Le détail reste accessible dans Semaine / Agenda.
     */

    .calendar-board.is-month-view .calendar-item-event {
        background: #dcefff;
        border-left: 3px solid #2c83b5;
    }

    .calendar-board.is-month-view .calendar-item-task {
        background: #ddf3e4;
        border-left: 3px solid #288458;
    }

    .calendar-board.is-month-view .calendar-item-meeting {
        background: #eee4fd;
        border-left: 3px solid #7651b7;
    }

    .calendar-board.is-month-view .calendar-item-milestone {
        background: #ffead5;
        border-left: 3px solid #bd6827;
    }

    /*
     * SEMAINE
     */

    .calendar-board.is-week-view .calendar-grid {
        gap: 0.45rem;
    }

    .calendar-board.is-week-view .calendar-day {
        border-radius: 14px;
    }

    .calendar-board.is-week-view .calendar-day-header {
        padding:
            0.55rem
            0.65rem
            0.25rem;
    }

    .calendar-board.is-week-view .calendar-day-number {
        width: 30px;
        height: 30px;
        font-size: 0.82rem;
    }

    .calendar-board.is-week-view .calendar-day-items {
        padding:
            0
            0.55rem
            0.55rem;
    }

    .calendar-board.is-week-view .calendar-item {
        min-height: 38px;
        padding: 0.5rem 0.55rem;
        font-size: 0.73rem;
    }

    /*
     * AGENDA :
     * moins d'épaisseur autour des cards.
     */

    .calendar-agenda {
        padding: 0.4rem;
        gap: 0.55rem;
        border-radius: 18px;
    }

    .calendar-agenda-card {
        border-radius: 16px;
    }

    .calendar-agenda-card-header {
        min-height: 62px;
        padding: 0.65rem;
    }

    .calendar-agenda-card-number {
        width: 38px;
        height: 38px;
        border-radius: 11px;
        font-size: 0.86rem;
    }

    .calendar-agenda-card-date {
        gap: 0.55rem;
    }

    .calendar-agenda-card-date strong {
        font-size: 0.88rem;
    }

    .calendar-agenda-card-items {
        gap: 0.45rem;
        padding: 0.55rem;
    }

    .calendar-agenda-card-item {
        min-height: 48px;
        padding: 0.55rem;
        border-radius: 12px;
    }

    .calendar-agenda-card-footer {
        padding: 0.55rem 0.7rem;
    }
}


@media (max-width: 430px) {

    /*
     * Le calendrier mensuel reste entièrement visible
     * même sur les petits téléphones.
     */

    .calendar-board.is-month-view .calendar-day {
        min-height: 72px;
        padding: 0.2rem;
    }

    .calendar-board.is-month-view .calendar-weekdays span {
        font-size: 0.55rem;
    }

    .calendar-board.is-month-view .calendar-day-number {
        width: 21px;
        height: 21px;
        font-size: 0.61rem;
    }

    .calendar-filter {
        padding-inline: 0.55rem;
        font-size: 0.66rem;
    }
}

/* CALENDAR SHARED BACKGROUND HARMONY 1C-3 */

/*
 * Harmonisation visuelle :
 * la vue Mois et la vue Semaine reprennent
 * l'ambiance du fond Agenda.
 */
.calendar-board.is-month-view,
.calendar-board.is-week-view {
    padding: 1rem;
    border: 1px solid rgba(58, 145, 134, 0.32);
    border-radius: 26px;
    background:
        radial-gradient(
            circle at 8% 8%,
            rgba(58, 145, 134, 0.34),
            transparent 34%
        ),
        radial-gradient(
            circle at 92% 12%,
            rgba(78, 130, 174, 0.36),
            transparent 36%
        ),
        linear-gradient(
            135deg,
            rgba(58, 145, 134, 0.24) 0%,
            rgba(78, 130, 174, 0.24) 100%
        );
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.55),
        0 14px 32px rgba(50, 91, 105, 0.12);
}

/*
 * Le contenu interne reste clair pour préserver
 * la lisibilité du calendrier.
 */
.calendar-board.is-month-view .calendar-weekdays,
.calendar-board.is-week-view .calendar-weekdays {
    overflow: hidden;
    border-radius: 18px 18px 0 0;
    background: rgba(255, 255, 255, 0.82);
}

.calendar-board.is-month-view .calendar-grid,
.calendar-board.is-week-view .calendar-grid {
    overflow: hidden;
    border-radius: 0 0 18px 18px;
    background: rgba(255, 255, 255, 0.88);
}

/*
 * Sur mobile, on garde le même esprit
 * mais avec un peu moins d'épaisseur.
 */
@media (max-width: 700px) {
    .calendar-board.is-month-view,
    .calendar-board.is-week-view {
        padding: 0.45rem;
        border-radius: 20px;
    }

    .calendar-board.is-month-view .calendar-weekdays,
    .calendar-board.is-week-view .calendar-weekdays {
        border-radius: 14px 14px 0 0;
    }

    .calendar-board.is-month-view .calendar-grid,
    .calendar-board.is-week-view .calendar-grid {
        border-radius: 0 0 14px 14px;
    }
}

/* CALENDAR TOOLTIP OVERFLOW FIX 1C-3 */

@media (min-width: 701px) {
    /*
     * Les infobulles doivent pouvoir sortir de la grille.
     * Le fond arrondi reste porté par calendar-board.
     */
    .calendar-board.is-month-view,
    .calendar-board.is-week-view {
        overflow: visible;
    }

    .calendar-board.is-month-view .calendar-grid,
    .calendar-board.is-week-view .calendar-grid {
        overflow: visible;
    }

    /*
     * La journée survolée passe au-dessus des cellules
     * et de l'en-tête des jours.
     */
    .calendar-board .calendar-day {
        position: relative;
    }

    .calendar-board .calendar-day:hover {
        z-index: 200;
    }

    .calendar-board .calendar-item {
        position: relative;
    }

    .calendar-board .calendar-item:hover {
        z-index: 210;
    }

    .calendar-board .calendar-tooltip {
        z-index: 300;
    }
}


/* COMMUNITY POLLS 2A */

.poll-page,
.poll-detail-page {
    display: grid;
    gap: 1.25rem;
    padding-bottom: 3rem;
}

.poll-hero,
.poll-detail-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.8rem;
    border-radius: 26px;
    color: #ffffff;
    background:
        radial-gradient(
            circle at top right,
            rgba(255, 255, 255, 0.2),
            transparent 30%
        ),
        linear-gradient(
            135deg,
            #267d70,
            #496eb4
        );
    box-shadow:
        0 18px 42px rgba(48, 90, 112, 0.16);
}

.poll-hero h1,
.poll-detail-hero h1 {
    margin: 0.25rem 0 0.45rem;
}

.poll-hero p,
.poll-detail-hero p {
    max-width: 720px;
    margin: 0;
    opacity: 0.9;
}

.poll-hero-mark {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 76px;
    height: 76px;
    border: 1px solid rgba(255,255,255,0.32);
    border-radius: 22px;
    background: rgba(255,255,255,0.15);
    font-size: 2rem;
    font-weight: 900;
}

.poll-create-card,
.poll-vote-card,
.poll-results-card,
.poll-admin-bar {
    border: 1px solid #dfe8ec;
    border-radius: 22px;
    background: #ffffff;
    box-shadow:
        0 12px 30px rgba(34, 54, 66, 0.07);
}

.poll-create-card {
    padding: 1.25rem;
}

.poll-create-heading h2,
.poll-vote-card h2,
.poll-results-card h2 {
    margin: 0.25rem 0 1rem;
}

.poll-create-form {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.poll-create-form label {
    display: grid;
    gap: 0.4rem;
}

.poll-create-form label:nth-child(3) {
    grid-column: 1 / -1;
}

.poll-create-form label > span {
    font-size: 0.78rem;
    font-weight: 850;
}

.poll-create-form input,
.poll-create-form textarea,
.poll-create-form select {
    width: 100%;
    box-sizing: border-box;
}

.poll-create-form small {
    color: #7b8a93;
}

.poll-primary-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0.7rem 1rem;
    border: 0;
    border-radius: 13px;
    color: #ffffff;
    background:
        linear-gradient(135deg, #2d8b78, #4d72b6);
    font-weight: 850;
    cursor: pointer;
}

.poll-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.9rem;
}

.poll-section-heading h2 {
    margin: 0.2rem 0 0;
}

.poll-count {
    color: #70808a;
    font-size: 0.78rem;
    font-weight: 800;
}

.poll-grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.poll-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 1.1rem;
    border: 1px solid #dce7eb;
    border-radius: 20px;
    background:
        linear-gradient(
            145deg,
            #ffffff,
            #f8fbfc
        );
    box-shadow:
        0 10px 24px rgba(36, 55, 66, 0.06);
}

.poll-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.poll-card h3 {
    margin: 0.9rem 0 0.45rem;
}

.poll-card p {
    flex: 1;
    margin: 0;
    color: #657781;
    font-size: 0.82rem;
}

.poll-card footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    margin-top: 1rem;
    padding-top: 0.75rem;
    border-top: 1px solid #e8eef1;
    font-size: 0.75rem;
}

.poll-card footer a {
    color: #347383;
    font-weight: 850;
    text-decoration: none;
}

.poll-status,
.poll-voted-badge {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 0.25rem 0.55rem;
    border-radius: 999px;
    font-size: 0.67rem;
    font-weight: 900;
}

.poll-status.is-open {
    color: #237254;
    background: #dff4e8;
}

.poll-status.is-draft {
    color: #7a6a37;
    background: #f8efd3;
}

.poll-status.is-closed {
    color: #6d5c70;
    background: #eee7f0;
}

.poll-voted-badge {
    color: #326b92;
    background: #e3f1fb;
}

.poll-empty {
    padding: 2rem;
    border: 1px dashed #d6e1e6;
    border-radius: 20px;
    text-align: center;
    background: #f8fbfc;
}

.poll-empty p {
    margin-bottom: 0;
    color: #74838c;
}

.poll-back-link {
    width: fit-content;
    color: #477482;
    font-weight: 800;
    text-decoration: none;
}

.poll-detail-status-row {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.5rem;
}

.poll-detail-status-row > span:last-child {
    font-size: 0.75rem;
    opacity: 0.85;
}

.poll-admin-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.9rem 1rem;
}

.poll-admin-bar > div {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.poll-admin-bar form {
    margin: 0;
}

.poll-admin-bar button {
    min-height: 34px;
    padding: 0.35rem 0.7rem;
    border: 1px solid #d8e3e8;
    border-radius: 10px;
    background: #f6f9fa;
    cursor: pointer;
    font-weight: 800;
}

.poll-detail-layout {
    display: grid;
    grid-template-columns:
        minmax(0, 0.9fr)
        minmax(0, 1.1fr);
    gap: 1rem;
}

.poll-vote-card,
.poll-results-card {
    padding: 1.2rem;
}

.poll-vote-form {
    display: grid;
    gap: 0.7rem;
}

.poll-option {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    min-height: 48px;
    padding: 0.7rem 0.8rem;
    border: 1px solid #dce7eb;
    border-radius: 14px;
    background: #f8fbfc;
    cursor: pointer;
}

.poll-option:has(input:checked) {
    border-color: #5b9c90;
    background: #e9f7f2;
}

.poll-option input {
    flex: 0 0 auto;
}

.poll-already-voted {
    padding: 1rem;
    border-radius: 15px;
    color: #356173;
    background: #edf6f8;
}

.poll-already-voted p {
    margin-bottom: 0;
}

.poll-results {
    display: grid;
    gap: 0.9rem;
}

.poll-result {
    display: grid;
    gap: 0.45rem;
}

.poll-result-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
}

.poll-result-heading span {
    color: #71818a;
    font-size: 0.73rem;
    white-space: nowrap;
}

.poll-result-track {
    height: 12px;
    overflow: hidden;
    border-radius: 999px;
    background: #e8eef1;
}

.poll-result-track > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background:
        linear-gradient(90deg, #2e8a78, #5076b6);
}

@media (max-width: 1050px) {
    .poll-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .poll-hero,
    .poll-detail-hero {
        padding: 1.2rem;
        border-radius: 20px;
    }

    .poll-hero-mark {
        display: none;
    }

    .poll-create-form,
    .poll-detail-layout,
    .poll-grid {
        grid-template-columns: 1fr;
    }

    .poll-create-form label:nth-child(3) {
        grid-column: auto;
    }

    .poll-admin-bar,
    .poll-section-heading {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* COMMUNITY POLLS 2B VISUAL */

.poll-page-v2 {
    gap: 1.1rem;
}

/* HERO */

.poll-hero-v2 {
    position: relative;
    min-height: 150px;
    overflow: hidden;
    padding: 1.75rem 2rem;
    border: 1px solid rgba(255, 255, 255, .42);
    background:
        radial-gradient(
            circle at 82% 20%,
            rgba(255,255,255,.18),
            transparent 28%
        ),
        radial-gradient(
            circle at 10% 120%,
            rgba(63,198,160,.34),
            transparent 38%
        ),
        linear-gradient(
            125deg,
            #237e70 0%,
            #337e8f 48%,
            #5479bd 100%
        );
}

.poll-hero-content {
    position: relative;
    z-index: 2;
}

.poll-eyebrow,
.poll-section-kicker {
    display: block;
    color: #4a7c84;
    font-size: .69rem;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.poll-hero-v2 .poll-eyebrow {
    color: rgba(255,255,255,.72);
}

.poll-hero-v2 h1 {
    margin-top: .35rem;
    font-size: clamp(1.7rem, 2.5vw, 2.35rem);
}

.poll-hero-v2 p {
    max-width: 680px;
    font-size: .92rem;
}

.poll-hero-visual {
    position: relative;
    flex: 0 0 190px;
    height: 105px;
}

.poll-hero-bubble {
    position: absolute;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.38);
    border-radius: 20px;
    color: #fff;
    background: rgba(255,255,255,.14);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.28),
        0 10px 28px rgba(23,55,73,.14);
    font-weight: 900;
    backdrop-filter: blur(8px);
}

.poll-hero-bubble.is-one {
    right: 62px;
    top: 5px;
    width: 70px;
    height: 70px;
    font-size: 2rem;
    transform: rotate(-5deg);
}

.poll-hero-bubble.is-two {
    right: 0;
    bottom: 0;
    width: 52px;
    height: 52px;
    font-size: 1.2rem;
    transform: rotate(7deg);
}

.poll-hero-bubble.is-three {
    left: 0;
    bottom: 2px;
    width: 46px;
    height: 46px;
    font-size: .95rem;
    transform: rotate(5deg);
}


/* SUMMARY */

.poll-summary {
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
    gap: .8rem;
}

.poll-summary-card {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-height: 84px;
    padding: .9rem 1rem;
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 20px;
    box-shadow:
        0 10px 24px rgba(45,72,84,.07),
        inset 0 1px 0 rgba(255,255,255,.7);
}

.poll-summary-card.is-blue {
    background:
        linear-gradient(
            135deg,
            #edf7ff,
            #e8f1ff
        );
}

.poll-summary-card.is-green {
    background:
        linear-gradient(
            135deg,
            #edf9f1,
            #e4f6ec
        );
}

.poll-summary-card.is-purple {
    background:
        linear-gradient(
            135deg,
            #f5efff,
            #eee8fc
        );
}

.poll-summary-card.is-orange {
    background:
        linear-gradient(
            135deg,
            #fff6e9,
            #fcefdc
        );
}

.poll-summary-icon {
    display: grid;
    place-items: center;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    color: #477885;
    background: rgba(255,255,255,.72);
    box-shadow:
        0 6px 16px rgba(40,74,86,.08);
    font-weight: 900;
}

.poll-summary-card > div {
    display: grid;
    gap: .05rem;
}

.poll-summary-card strong {
    color: #24404c;
    font-size: 1.25rem;
    line-height: 1;
}

.poll-summary-card span:last-child {
    color: #68808a;
    font-size: .74rem;
}


/* LAYOUT */

.poll-dashboard-layout {
    display: grid;
    grid-template-columns:
        minmax(0, 1.55fr)
        minmax(310px, .65fr);
    align-items: start;
    gap: 1rem;
}


/* LISTE */

.poll-list-panel {
    min-width: 0;
    padding: 1.2rem;
    border: 1px solid #dfeaec;
    border-radius: 24px;
    background:
        radial-gradient(
            circle at 0 0,
            rgba(53,145,129,.08),
            transparent 30%
        ),
        linear-gradient(
            145deg,
            rgba(255,255,255,.96),
            rgba(247,251,251,.96)
        );
    box-shadow:
        0 14px 34px rgba(39,66,77,.07);
}

.poll-section-heading {
    align-items: center;
    margin-bottom: 1rem;
}

.poll-section-heading h2 {
    margin-top: .2rem;
    font-size: 1.22rem;
}

.poll-section-heading p {
    max-width: 580px;
    margin: .3rem 0 0;
    color: #71838c;
    font-size: .78rem;
}

.poll-count {
    padding: .45rem .7rem;
    border: 1px solid #dde8eb;
    border-radius: 999px;
    color: #50717d;
    background: rgba(255,255,255,.84);
}


/* EMPTY */

.poll-empty-v2 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    min-height: 240px;
    padding: 2rem;
    border: 1px dashed rgba(67,137,129,.35);
    background:
        linear-gradient(
            135deg,
            rgba(234,248,244,.72),
            rgba(238,244,252,.76)
        );
    text-align: left;
}

.poll-empty-icon {
    display: grid;
    place-items: center;
    flex: 0 0 64px;
    width: 64px;
    height: 64px;
    border-radius: 20px;
    color: #357f72;
    background: rgba(255,255,255,.9);
    box-shadow:
        0 10px 24px rgba(40,76,84,.08);
    font-size: 1.55rem;
    font-weight: 900;
}

.poll-empty-v2 strong {
    color: #294650;
    font-size: 1rem;
}

.poll-empty-v2 p {
    max-width: 360px;
    margin-top: .3rem;
}


/* CARDS */

.poll-grid-v2 {
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
}

.poll-card-v2 {
    position: relative;
    overflow: hidden;
    padding: 0;
    border-color: #dce8ea;
    border-radius: 20px;
    background: #fff;
    transition:
        transform .18s ease,
        box-shadow .18s ease,
        border-color .18s ease;
}

.poll-card-v2:hover {
    transform: translateY(-2px);
    border-color: rgba(65,145,132,.42);
    box-shadow:
        0 14px 30px rgba(37,66,78,.1);
}

.poll-card-accent {
    height: 6px;
    background:
        linear-gradient(
            90deg,
            #3b9a85,
            #5680c3
        );
}

.poll-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 1rem;
}

.poll-card-v2 h3 {
    margin: .85rem 0 .4rem;
    color: #263f49;
    font-size: 1rem;
}

.poll-card-v2 p {
    min-height: 42px;
    color: #697c85;
    line-height: 1.45;
}

.poll-card-muted {
    opacity: .72;
}

.poll-card-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    margin-top: 1rem;
    padding-top: .75rem;
    border-top: 1px solid #edf1f2;
    color: #819099;
    font-size: .68rem;
}

.poll-card-votes {
    display: flex;
    align-items: baseline;
    gap: .2rem;
}

.poll-card-votes strong {
    color: #317e71;
    font-size: 1rem;
}

.poll-card-footer {
    margin: 0;
    padding: 0;
    border: 0;
}

.poll-card-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    box-sizing: border-box;
    padding: .8rem 1rem;
    color: #31786f !important;
    background:
        linear-gradient(
            90deg,
            #edf8f4,
            #eef5fb
        );
    font-size: .76rem;
    font-weight: 900;
    text-decoration: none;
}


/* COLONNE CREATION */

.poll-side-column {
    display: grid;
    gap: .8rem;
    position: sticky;
    top: 1rem;
}

.poll-create-card-v2 {
    padding: 1.05rem;
    border-color: rgba(61,137,125,.25);
    background:
        radial-gradient(
            circle at 100% 0,
            rgba(79,126,184,.09),
            transparent 32%
        ),
        linear-gradient(
            145deg,
            #ffffff,
            #f5fbf9
        );
}

.poll-create-heading {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding-bottom: .9rem;
    border-bottom: 1px solid #e7eeee;
}

.poll-create-icon {
    display: grid;
    place-items: center;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    color: #fff;
    background:
        linear-gradient(
            135deg,
            #338a77,
            #527cbc
        );
    box-shadow:
        0 8px 18px rgba(48,108,111,.18);
    font-size: 1.35rem;
    font-weight: 500;
}

.poll-create-heading h2 {
    margin: .15rem 0 .2rem;
    font-size: 1.03rem;
}

.poll-create-heading p {
    margin: 0;
    color: #74868e;
    font-size: .72rem;
    line-height: 1.4;
}

.poll-create-form-v2 {
    display: grid;
    grid-template-columns: 1fr;
    gap: .72rem;
    margin-top: .9rem;
}

.poll-create-form-v2 label:nth-child(3) {
    grid-column: auto;
}

.poll-create-form-v2 label {
    gap: .32rem;
}

.poll-create-form-v2 label > span {
    color: #40545d;
    font-size: .7rem;
}

.poll-create-form-v2 input,
.poll-create-form-v2 textarea,
.poll-create-form-v2 select {
    min-height: 42px;
    padding: .68rem .72rem;
    border: 1px solid #dce6e9;
    border-radius: 12px;
    outline: none;
    color: #334b55;
    background: rgba(255,255,255,.94);
    font: inherit;
    font-size: .78rem;
    transition:
        border-color .16s ease,
        box-shadow .16s ease,
        background .16s ease;
}

.poll-create-form-v2 textarea {
    min-height: auto;
    resize: vertical;
}

.poll-create-form-v2 input:focus,
.poll-create-form-v2 textarea:focus,
.poll-create-form-v2 select:focus {
    border-color: #62a89b;
    background: #fff;
    box-shadow:
        0 0 0 3px rgba(68,151,136,.11);
}

.poll-create-form-v2 small {
    font-size: .65rem;
}

.poll-create-submit {
    display: flex;
    justify-content: space-between;
    width: 100%;
    margin-top: .15rem;
    min-height: 46px;
    padding-inline: .95rem;
}


/* ASTUCE */

.poll-tip-card {
    display: flex;
    gap: .7rem;
    padding: .85rem;
    border: 1px solid #eadfbf;
    border-radius: 18px;
    background:
        linear-gradient(
            135deg,
            #fffaf0,
            #fff6df
        );
}

.poll-tip-icon {
    display: grid;
    place-items: center;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border-radius: 11px;
    background: rgba(255,255,255,.76);
}

.poll-tip-card strong {
    color: #725f35;
    font-size: .75rem;
}

.poll-tip-card p {
    margin: .15rem 0 0;
    color: #887b5d;
    font-size: .68rem;
    line-height: 1.45;
}


/* PAGE DETAIL */

.poll-detail-page .poll-detail-hero {
    min-height: auto;
    padding: 1.45rem 1.6rem;
}

.poll-detail-page .poll-admin-bar {
    border-color: #dfe9eb;
    background:
        linear-gradient(
            90deg,
            #f7fbfa,
            #f5f8fc
        );
}

.poll-detail-page .poll-vote-card {
    background:
        linear-gradient(
            145deg,
            #ffffff,
            #f6fbf9
        );
}

.poll-detail-page .poll-results-card {
    background:
        linear-gradient(
            145deg,
            #ffffff,
            #f5f8fd
        );
}

.poll-option {
    transition:
        border-color .16s ease,
        background .16s ease,
        transform .16s ease;
}

.poll-option:hover {
    transform: translateX(2px);
    border-color: rgba(61,143,126,.42);
    background: #f2faf7;
}


/* TABLETTE */

@media (max-width: 1180px) {
    .poll-summary {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .poll-dashboard-layout {
        grid-template-columns:
            minmax(0, 1.2fr)
            minmax(280px, .8fr);
    }

    .poll-grid-v2 {
        grid-template-columns: 1fr;
    }
}


/* MOBILE */

@media (max-width: 760px) {
    .poll-hero-v2 {
        min-height: auto;
        padding: 1.25rem;
    }

    .poll-hero-visual {
        display: none;
    }

    .poll-summary {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
        gap: .55rem;
    }

    .poll-summary-card {
        min-height: 70px;
        padding: .7rem;
        border-radius: 16px;
    }

    .poll-summary-icon {
        flex-basis: 36px;
        width: 36px;
        height: 36px;
        border-radius: 12px;
    }

    .poll-dashboard-layout {
        grid-template-columns: 1fr;
    }

    .poll-side-column {
        position: static;
        order: -1;
    }

    .poll-create-card-v2,
    .poll-list-panel {
        border-radius: 20px;
    }

    .poll-grid-v2 {
        grid-template-columns: 1fr;
    }

    .poll-card-meta {
        align-items: flex-start;
        flex-direction: column;
    }

    .poll-empty-v2 {
        min-height: 180px;
        padding: 1.25rem;
    }
}

@media (max-width: 430px) {
    .poll-summary-card {
        gap: .5rem;
        padding: .6rem;
    }

    .poll-summary-card strong {
        font-size: 1.05rem;
    }

    .poll-summary-card span:last-child {
        font-size: .65rem;
    }

    .poll-list-panel,
    .poll-create-card-v2 {
        padding: .85rem;
    }
}

/* COMMUNITY POLLS PAGE BACKGROUND HARMONY */

.poll-page-v2,
.poll-detail-page {
    position: relative;
    padding: 1.1rem;
    border: 1px solid rgba(58, 145, 134, 0.28);
    border-radius: 28px;
    background:
        radial-gradient(
            circle at 8% 8%,
            rgba(58,145,134,.34),
            transparent 34%
        ),
        radial-gradient(
            circle at 92% 12%,
            rgba(78,130,174,.36),
            transparent 36%
        ),
        linear-gradient(
            135deg,
            rgba(58,145,134,.22) 0%,
            rgba(78,130,174,.23) 100%
        );
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.5),
        0 14px 34px rgba(50,91,105,.10);
}

@media (max-width: 760px) {
    .poll-page-v2,
    .poll-detail-page {
        padding: .55rem;
        border-radius: 20px;
    }
}

/* PUBLIC HOME ICON HARMONY */

.preview-icon,
.feature-symbol {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}

.preview-icon svg,
.feature-symbol svg {
    display: block;
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.preview-icon {
    width: 20px;
    height: 20px;
}

.feature-symbol {
    width: 26px;
    height: 26px;
}


/* POLL CHANGE VOTE */

.poll-current-choice {
    display: grid;
    gap: .25rem;
    margin-bottom: .85rem;
    padding: .85rem 1rem;
    border: 1px solid rgba(48, 143, 123, .30);
    border-radius: 15px;
    background:
        linear-gradient(
            135deg,
            rgba(223, 247, 238, .95),
            rgba(231, 241, 252, .95)
        );
}

.poll-current-choice > span {
    color: #53747c;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.poll-current-choice strong {
    color: #237a68;
    font-size: .95rem;
}

.poll-current-choice small {
    color: #6e8189;
    font-size: .7rem;
}


/* COMMUNITY POLLS CARD COLOR BOOST */

.poll-card-v2 {
    border-color: rgba(61, 143, 126, .28);
    background:
        radial-gradient(
            circle at 100% 0,
            rgba(89, 137, 196, .16),
            transparent 38%
        ),
        linear-gradient(
            145deg,
            #f2fbf7 0%,
            #edf6fb 100%
        );
    box-shadow:
        0 12px 28px rgba(43, 84, 92, .11);
}

.poll-card-v2:hover {
    border-color: rgba(61, 143, 126, .48);
    box-shadow:
        0 16px 34px rgba(43, 84, 92, .16);
}

.poll-card-body {
    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,.58),
            rgba(255,255,255,.24)
        );
}

.poll-card-link {
    border-top: 1px solid rgba(64, 126, 137, .14);
    background:
        linear-gradient(
            90deg,
            rgba(220, 243, 235, .78),
            rgba(224, 236, 250, .78)
        );
}

.poll-detail-page .poll-vote-card {
    border-color: rgba(57, 149, 119, .30);
    background:
        radial-gradient(
            circle at 90% 5%,
            rgba(74, 173, 139, .18),
            transparent 34%
        ),
        linear-gradient(
            145deg,
            #effaf4,
            #e8f5ef
        );
    box-shadow:
        0 12px 28px rgba(43, 105, 82, .11);
}

.poll-detail-page .poll-results-card {
    border-color: rgba(78, 123, 181, .28);
    background:
        radial-gradient(
            circle at 90% 5%,
            rgba(92, 139, 198, .18),
            transparent 34%
        ),
        linear-gradient(
            145deg,
            #f0f6fd,
            #e9f1fb
        );
    box-shadow:
        0 12px 28px rgba(52, 83, 124, .11);
}

.poll-option {
    background: rgba(255,255,255,.72);
}

.poll-option:has(input:checked) {
    border-color: #4a9f8c;
    background:
        linear-gradient(
            135deg,
            #dff4e9,
            #e2f0f8
        );
    box-shadow:
        inset 0 0 0 1px rgba(63, 147, 126, .10);
}


/* COMMUNITY POLLS STRONG CARD CONTRAST */

.poll-list-panel {
    background:
        linear-gradient(
            135deg,
            rgba(232, 247, 242, .95),
            rgba(231, 240, 250, .95)
        );
}

.poll-card-v2 {
    overflow: hidden;
    border: 1px solid rgba(48, 128, 116, .42);
    background:
        linear-gradient(
            145deg,
            #dff4ec 0%,
            #dcebf8 100%
        );
    box-shadow:
        0 16px 34px rgba(37, 83, 96, .18);
}

.poll-card-v2:hover {
    transform: translateY(-3px);
    border-color: rgba(44, 126, 111, .62);
    box-shadow:
        0 20px 42px rgba(37, 83, 96, .24);
}

.poll-card-accent {
    height: 9px;
    background:
        linear-gradient(
            90deg,
            #2f9a80 0%,
            #3f8fa0 45%,
            #5577c4 100%
        );
}

.poll-card-body {
    background:
        linear-gradient(
            145deg,
            rgba(239, 250, 246, .96),
            rgba(232, 243, 252, .96)
        );
}

.poll-card-v2 h3 {
    color: #214854;
}

.poll-card-v2 p {
    color: #54727d;
}

.poll-card-meta {
    border-top: 1px solid rgba(55, 123, 130, .18);
}

.poll-card-footer {
    border-top: 1px solid rgba(55, 123, 130, .18);
}

.poll-card-link {
    color: #246d69;
    background:
        linear-gradient(
            90deg,
            #ccebe2 0%,
            #d6e4f5 100%
        );
}

.poll-card-link:hover {
    background:
        linear-gradient(
            90deg,
            #bfe4d8 0%,
            #cadcf2 100%
        );
}

.poll-status.is-open {
    border: 1px solid rgba(45, 139, 104, .18);
    color: #1e6f53;
    background: #d1f0df;
}

.poll-voted-badge {
    border: 1px solid rgba(67, 124, 177, .18);
    color: #2d6e9c;
    background: #d7ebfa;
}


/* COMMUNITY POLLS EXTRA STRONG CONTRAST */

.poll-list-panel {
    border-color: rgba(48, 126, 116, .36);
    background:
        linear-gradient(
            135deg,
            #d9efe9 0%,
            #dbe8f5 100%
        );
}

.poll-card-v2 {
    border: 2px solid rgba(45, 119, 110, .52);
    background:
        linear-gradient(
            145deg,
            #cfeadf 0%,
            #cddff1 100%
        );
    box-shadow:
        0 18px 38px rgba(27, 72, 86, .24);
}

.poll-card-v2:hover {
    border-color: rgba(38, 111, 101, .72);
    box-shadow:
        0 24px 48px rgba(27, 72, 86, .30);
}

.poll-card-accent {
    height: 11px;
    background:
        linear-gradient(
            90deg,
            #248d73 0%,
            #327f91 45%,
            #4b67b2 100%
        );
}

.poll-card-body {
    background:
        linear-gradient(
            145deg,
            #e6f5ef 0%,
            #e1edf8 100%
        );
}

.poll-card-v2 h3 {
    color: #163f4c;
    font-weight: 900;
}

.poll-card-v2 p {
    color: #486873;
}

.poll-card-meta {
    border-top: 1px solid rgba(45, 112, 121, .28);
}

.poll-card-footer {
    border-top: 1px solid rgba(45, 112, 121, .28);
}

.poll-card-link {
    color: #155f5b;
    font-weight: 900;
    background:
        linear-gradient(
            90deg,
            #b8ded3 0%,
            #c2d7ee 100%
        );
}

.poll-card-link:hover {
    color: #124e4a;
    background:
        linear-gradient(
            90deg,
            #a8d4c7 0%,
            #b2cce8 100%
        );
}

.poll-status.is-open {
    color: #145f46;
    background: #bfe6d0;
}

.poll-voted-badge {
    color: #285f89;
    background: #c8dff2;
}


/* COMMUNITY CHECKLISTS */

.checklist-page {
    display: grid;
    gap: 1rem;
    padding: 1.1rem;
    border: 1px solid rgba(52, 139, 126, .28);
    border-radius: 28px;
    background:
        radial-gradient(circle at 8% 8%, rgba(63, 161, 139, .30), transparent 35%),
        radial-gradient(circle at 92% 10%, rgba(76, 126, 184, .30), transparent 34%),
        linear-gradient(135deg, rgba(216, 241, 233, .9), rgba(220, 232, 247, .9));
}

.checklist-hero,
.checklist-detail-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.65rem 1.9rem;
    border-radius: 24px;
    color: #fff;
    background:
        radial-gradient(circle at 85% 15%, rgba(255,255,255,.18), transparent 30%),
        linear-gradient(125deg, #318f78, #497cb8);
    box-shadow: 0 16px 36px rgba(37, 84, 98, .20);
}

.checklist-hero h1,
.checklist-detail-hero h1 {
    margin: .3rem 0 .45rem;
}

.checklist-hero p,
.checklist-detail-hero p {
    max-width: 690px;
    margin: 0;
    opacity: .9;
}

.checklist-eyebrow {
    color: #4b7781;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .09em;
}

.checklist-hero .checklist-eyebrow {
    color: rgba(255,255,255,.75);
}

.checklist-hero-mark {
    display: grid;
    place-items: center;
    width: 76px;
    height: 76px;
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 22px;
    font-size: 2rem;
    background: rgba(255,255,255,.14);
}

.checklist-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}

.checklist-summary article {
    display: grid;
    gap: .15rem;
    padding: .9rem 1rem;
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 17px;
    background: linear-gradient(135deg, #eefaf5, #e8f1fb);
    box-shadow: 0 8px 20px rgba(45, 79, 93, .08);
}

.checklist-summary strong {
    font-size: 1.25rem;
    color: #234650;
}

.checklist-summary span {
    color: #657c86;
    font-size: .72rem;
}

.checklist-dashboard,
.checklist-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(300px, .65fr);
    gap: 1rem;
    align-items: start;
}

.checklist-list-panel,
.checklist-items-card {
    padding: 1.1rem;
    border: 1px solid rgba(46, 128, 118, .36);
    border-radius: 22px;
    background: linear-gradient(135deg, #d9efe8, #dbe8f5);
}

.checklist-panel-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.checklist-panel-heading h2 {
    margin: .2rem 0 0;
}

.checklist-count {
    padding: .4rem .65rem;
    border-radius: 999px;
    background: rgba(255,255,255,.8);
    color: #4e7079;
    font-size: .72rem;
    font-weight: 800;
}

.checklist-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.checklist-card {
    overflow: hidden;
    border: 2px solid rgba(45, 119, 110, .48);
    border-radius: 20px;
    background: linear-gradient(145deg, #cfe9df, #ccdeef);
    box-shadow: 0 15px 32px rgba(31, 74, 87, .20);
}

.checklist-card.is-completed {
    opacity: .82;
}

.checklist-card-accent {
    height: 9px;
    background: linear-gradient(90deg, #249174, #347f92, #5369b2);
}

.checklist-card-body {
    padding: 1rem;
    background: linear-gradient(145deg, #e6f5ef, #e0ecf7);
}

.checklist-card-top,
.checklist-detail-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.checklist-status,
.checklist-visibility {
    display: inline-flex;
    padding: .27rem .58rem;
    border-radius: 999px;
    font-size: .66rem;
    font-weight: 900;
}

.checklist-status.is-active {
    color: #176348;
    background: #bee6d0;
}

.checklist-status.is-done {
    color: #5e5271;
    background: #e2d8ed;
}

.checklist-visibility {
    color: #2d648f;
    background: #cce1f3;
}

.checklist-card h3 {
    margin: .75rem 0 .35rem;
    color: #193f49;
}

.checklist-card p {
    min-height: 38px;
    color: #53707a;
    font-size: .8rem;
}

.checklist-muted {
    opacity: .75;
}

.checklist-progress-meta {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    margin: .9rem 0 .35rem;
    color: #52717b;
    font-size: .7rem;
}

.checklist-progress {
    height: 10px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255,255,255,.7);
}

.checklist-progress > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #2b9478, #5277bd);
}

.checklist-card-link {
    display: flex;
    justify-content: space-between;
    padding: .78rem 1rem;
    color: #155d59;
    font-weight: 900;
    text-decoration: none;
    background: linear-gradient(90deg, #b8ded2, #c3d7ee);
}

.checklist-create-card,
.checklist-add-card {
    position: sticky;
    top: 1rem;
    padding: 1.05rem;
    border: 1px solid rgba(60, 137, 125, .32);
    border-radius: 21px;
    background: linear-gradient(145deg, #edf9f3, #e7f0fa);
    box-shadow: 0 12px 28px rgba(38, 78, 91, .12);
}

.checklist-create-card h2,
.checklist-add-card h2 {
    margin: .25rem 0 .9rem;
}

.checklist-create-form {
    display: grid;
    gap: .7rem;
}

.checklist-create-form label {
    display: grid;
    gap: .3rem;
}

.checklist-create-form label > span {
    color: #405760;
    font-size: .7rem;
    font-weight: 850;
}

.checklist-create-form input,
.checklist-create-form textarea,
.checklist-create-form select {
    width: 100%;
    box-sizing: border-box;
    padding: .67rem .72rem;
    border: 1px solid #cfdee2;
    border-radius: 12px;
    background: rgba(255,255,255,.78);
}

.checklist-create-form button,
.checklist-admin-bar button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 43px;
    padding: .65rem .85rem;
    border: 0;
    border-radius: 12px;
    color: #fff;
    font-weight: 850;
    cursor: pointer;
    background: linear-gradient(90deg, #2d8c75, #4778b0);
}

.checklist-back {
    width: fit-content;
    color: #386f79;
    font-weight: 850;
    text-decoration: none;
}

.checklist-progress-ring {
    display: grid;
    place-items: center;
    width: 88px;
    height: 88px;
    border: 7px solid rgba(255,255,255,.25);
    border-radius: 50%;
    background: rgba(255,255,255,.12);
}

.checklist-progress-ring strong {
    font-size: 1.15rem;
}

.checklist-progress-ring span {
    font-size: .65rem;
    opacity: .8;
}

.checklist-admin-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .8rem 1rem;
    border: 1px solid rgba(57, 130, 120, .28);
    border-radius: 17px;
    background: linear-gradient(90deg, #e8f6f0, #e6eff8);
}

.checklist-admin-bar form {
    margin: 0;
}

.checklist-items {
    display: grid;
    gap: .65rem;
    margin-top: .9rem;
}

.checklist-item {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .78rem;
    border: 1px solid rgba(56, 128, 121, .24);
    border-radius: 15px;
    background: rgba(255,255,255,.75);
}

.checklist-item.is-completed {
    opacity: .68;
}

.checklist-item.is-completed .checklist-item-content strong {
    text-decoration: line-through;
}

.checklist-checkbox {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 2px solid #4a9b89;
    border-radius: 10px;
    color: #fff;
    cursor: pointer;
    background: #fff;
}

.checklist-item.is-completed .checklist-checkbox {
    background: #3c947d;
}

.checklist-item-content {
    flex: 1;
    min-width: 0;
}

.checklist-item-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin-top: .25rem;
    color: #71828a;
    font-size: .68rem;
}

.checklist-delete {
    border: 0;
    color: #956060;
    font-size: 1.2rem;
    cursor: pointer;
    background: transparent;
}

.checklist-progress-large {
    margin-bottom: .8rem;
}

.checklist-empty {
    padding: 2rem;
    border: 1px dashed rgba(66, 125, 126, .34);
    border-radius: 17px;
    text-align: center;
    background: rgba(255,255,255,.58);
}

.checklist-empty-small {
    padding: 1.2rem;
}

@media (max-width: 1050px) {
    .checklist-dashboard,
    .checklist-detail-layout {
        grid-template-columns: 1fr;
    }

    .checklist-create-card,
    .checklist-add-card {
        position: static;
    }
}

@media (max-width: 700px) {
    .checklist-page {
        padding: .55rem;
        border-radius: 20px;
    }

    .checklist-grid,
    .checklist-summary {
        grid-template-columns: 1fr;
    }

    .checklist-hero,
    .checklist-detail-hero {
        padding: 1.2rem;
    }

    .checklist-hero-mark,
    .checklist-progress-ring {
        display: none;
    }

    .checklist-panel-heading,
    .checklist-admin-bar {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* COMMUNITY CHECKLISTS FINAL CONTRAST */

.checklist-admin-bar {
    border-color: rgba(49, 132, 120, .38);
    background:
        linear-gradient(
            90deg,
            #d9eee7 0%,
            #dce8f5 100%
        );
    box-shadow:
        0 8px 20px rgba(42, 80, 94, .10);
}

.checklist-item {
    border-color: rgba(45, 124, 116, .34);
    background:
        linear-gradient(
            135deg,
            #eef9f5 0%,
            #edf4fb 100%
        );
    box-shadow:
        0 6px 16px rgba(45, 79, 92, .08);
}

.checklist-item:hover {
    border-color: rgba(45, 124, 116, .52);
    box-shadow:
        0 9px 20px rgba(45, 79, 92, .12);
}

.checklist-count {
    color: #2f6571;
    border: 1px solid rgba(58, 128, 126, .18);
    background:
        linear-gradient(
            135deg,
            #e7f5ef,
            #e4eef9
        );
}

.checklist-progress-large {
    height: 12px;
    background: rgba(255,255,255,.88);
    box-shadow:
        inset 0 1px 2px rgba(48, 82, 96, .10);
}


/* COMMUNITY IDEAS */

.idea-page {
    display: grid;
    gap: 1rem;
    padding: 1.1rem;
    border: 1px solid rgba(55, 142, 128, .28);
    border-radius: 28px;
    background:
        radial-gradient(circle at 8% 8%, rgba(55, 157, 137, .28), transparent 34%),
        radial-gradient(circle at 92% 10%, rgba(79, 126, 187, .30), transparent 34%),
        linear-gradient(135deg, #d9efe8, #dce8f5);
}

.idea-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.7rem 2rem;
    border-radius: 24px;
    color: #fff;
    background: linear-gradient(125deg, #318f78, #5078bd);
    box-shadow: 0 16px 34px rgba(39, 78, 94, .18);
}

.idea-hero h1 {
    margin: .25rem 0 .45rem;
}

.idea-hero p {
    max-width: 700px;
    margin: 0;
    opacity: .9;
}

.idea-eyebrow {
    color: #4a7780;
    font-size: .67rem;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.idea-hero .idea-eyebrow {
    color: rgba(255,255,255,.76);
}

.idea-hero-stack {
    display: flex;
    align-items: center;
}

.idea-hero-stack span {
    display: grid;
    place-items: center;
    width: 55px;
    height: 55px;
    margin-left: -8px;
    border: 1px solid rgba(255,255,255,.34);
    border-radius: 17px;
    background: rgba(255,255,255,.13);
}

.idea-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .7rem;
}

.idea-summary article {
    display: grid;
    gap: .15rem;
    padding: .85rem 1rem;
    border: 1px solid rgba(255,255,255,.7);
    border-radius: 17px;
    background: linear-gradient(135deg, #edf9f4, #e8f1fb);
}

.idea-summary strong {
    font-size: 1.2rem;
}

.idea-summary span {
    color: #637b85;
    font-size: .7rem;
}

.idea-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 1rem;
    align-items: start;
}

.idea-board {
    display: grid;
    grid-template-columns: repeat(4, minmax(220px, 1fr));
    gap: .75rem;
    overflow-x: auto;
}

.idea-column {
    min-height: 430px;
    padding: .75rem;
    border: 1px solid rgba(59, 127, 123, .25);
    border-radius: 19px;
    background: rgba(255,255,255,.38);
}

.idea-column-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .75rem;
}

.idea-column-heading small {
    display: block;
    margin-top: .15rem;
    color: #73858c;
    font-size: .62rem;
}

.idea-column-heading strong {
    display: grid;
    place-items: center;
    min-width: 30px;
    height: 30px;
    border-radius: 999px;
    background: rgba(255,255,255,.72);
}

.idea-column-cards {
    display: grid;
    gap: .75rem;
}

.idea-note {
    position: relative;
    padding: 1rem;
    border: 1px solid rgba(91, 91, 70, .18);
    border-radius: 7px 16px 10px 16px;
    box-shadow: 0 9px 20px rgba(45, 66, 75, .15);
    transform: rotate(-.35deg);
}

.idea-note:nth-child(even) {
    transform: rotate(.45deg);
}

.idea-note-yellow {
    background: linear-gradient(145deg, #fff2a9, #f7dda0);
}

.idea-note-green {
    background: linear-gradient(145deg, #c9efd6, #b7e3ce);
}

.idea-note-blue {
    background: linear-gradient(145deg, #cfe8fa, #bbd8f2);
}

.idea-note-pink {
    background: linear-gradient(145deg, #f5d4df, #edc2d2);
}

.idea-note-purple {
    background: linear-gradient(145deg, #e1d5f5, #d2c3ed);
}

.idea-note-pin {
    position: absolute;
    top: 7px;
    left: 50%;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: rgba(45, 70, 78, .38);
    box-shadow: 0 2px 4px rgba(0,0,0,.18);
}

.idea-note-badges {
    display: flex;
    justify-content: space-between;
    gap: .5rem;
    margin-top: .35rem;
    color: #54696f;
    font-size: .61rem;
}

.idea-note h3 {
    margin: .8rem 0 .4rem;
    color: #253d43;
}

.idea-note p {
    min-height: 54px;
    color: #4e6267;
    font-size: .76rem;
    line-height: 1.45;
}

.idea-note footer {
    display: flex;
    justify-content: space-between;
    gap: .4rem;
    padding-top: .6rem;
    border-top: 1px solid rgba(70, 89, 91, .15);
    color: #64777c;
    font-size: .62rem;
}

.idea-task-badge {
    font-weight: 900;
    color: #276b58;
}

.idea-actions {
    display: grid;
    gap: .45rem;
    margin-top: .75rem;
}

.idea-actions form,
.idea-actions select,
.idea-actions button {
    width: 100%;
}

.idea-actions select {
    min-height: 34px;
    padding: .35rem .45rem;
    border: 1px solid rgba(62, 98, 103, .2);
    border-radius: 8px;
    background: rgba(255,255,255,.62);
}

.idea-convert-form {
    display: grid;
    gap: .35rem;
}

.idea-convert-form button {
    min-height: 36px;
    border: 0;
    border-radius: 9px;
    color: #fff;
    font-size: .7rem;
    font-weight: 850;
    cursor: pointer;
    background: linear-gradient(90deg, #2d8b74, #4b76b5);
}

.idea-create-card {
    position: sticky;
    top: 1rem;
    padding: 1.05rem;
    border: 1px solid rgba(57, 136, 123, .3);
    border-radius: 21px;
    background: linear-gradient(145deg, #edf9f3, #e8f1fa);
    box-shadow: 0 12px 28px rgba(37, 77, 91, .12);
}

.idea-create-card h2 {
    margin: .25rem 0 .9rem;
}

.idea-create-form {
    display: grid;
    gap: .7rem;
}

.idea-create-form label {
    display: grid;
    gap: .3rem;
}

.idea-create-form label > span {
    color: #40575f;
    font-size: .69rem;
    font-weight: 850;
}

.idea-create-form input,
.idea-create-form textarea,
.idea-create-form select {
    width: 100%;
    box-sizing: border-box;
    padding: .65rem .7rem;
    border: 1px solid #cedee1;
    border-radius: 11px;
    background: rgba(255,255,255,.8);
}

.idea-create-form button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 44px;
    padding: .65rem .85rem;
    border: 0;
    border-radius: 11px;
    color: #fff;
    font-weight: 850;
    cursor: pointer;
    background: linear-gradient(90deg, #2d8c75, #4778b0);
}

@media (max-width: 1200px) {
    .idea-layout {
        grid-template-columns: 1fr;
    }

    .idea-create-card {
        position: static;
        order: -1;
    }
}

@media (max-width: 760px) {
    .idea-page {
        padding: .55rem;
        border-radius: 20px;
    }

    .idea-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .idea-hero {
        padding: 1.2rem;
    }

    .idea-hero-stack {
        display: none;
    }
}


/* ORGANIZATION RESOURCES */

.resource-page {
    display: grid;
    gap: 1rem;
    padding: 1.1rem;
    border: 1px solid rgba(52, 136, 125, .28);
    border-radius: 28px;
    background:
        radial-gradient(circle at 8% 8%, rgba(55, 157, 137, .26), transparent 34%),
        radial-gradient(circle at 92% 8%, rgba(74, 119, 181, .28), transparent 34%),
        linear-gradient(135deg, #d9efe8, #dce8f5);
}

.resource-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.7rem 2rem;
    border-radius: 24px;
    color: #fff;
    background: linear-gradient(125deg, #2f8d77, #4e79bb);
    box-shadow: 0 16px 34px rgba(39, 78, 94, .18);
}

.resource-hero h1 {
    margin: .25rem 0 .4rem;
}

.resource-hero p {
    margin: 0;
    max-width: 720px;
    opacity: .9;
}

.resource-eyebrow {
    color: #46737c;
    font-size: .67rem;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.resource-hero .resource-eyebrow {
    color: rgba(255,255,255,.78);
}

.resource-hero-icon {
    display: grid;
    place-items: center;
    width: 72px;
    height: 72px;
    border: 1px solid rgba(255,255,255,.32);
    border-radius: 20px;
    background: rgba(255,255,255,.12);
}

.resource-hero-icon svg {
    width: 37px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
}

.resource-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .7rem;
}

.resource-summary article {
    display: grid;
    gap: .15rem;
    padding: .9rem 1rem;
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 17px;
    background: linear-gradient(135deg, #ecf9f3, #e7f0fb);
}

.resource-summary strong {
    font-size: 1.22rem;
}

.resource-summary span {
    color: #647c84;
    font-size: .7rem;
}

.resource-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 1rem;
    align-items: start;
}

.resource-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.resource-card {
    display: grid;
    gap: .85rem;
    padding: 1rem;
    border: 1px solid rgba(49, 129, 118, .3);
    border-radius: 20px;
    background:
        linear-gradient(145deg, #edf9f4, #e7f0fa);
    box-shadow: 0 11px 25px rgba(39, 78, 91, .1);
}

.resource-card-head {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: .7rem;
    align-items: center;
}

.resource-type-icon {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 14px;
    background: rgba(255,255,255,.7);
    font-size: 1.35rem;
}

.resource-card-title h2 {
    margin: .15rem 0 0;
    font-size: 1rem;
}

.resource-status {
    padding: .35rem .55rem;
    border-radius: 999px;
    font-size: .62rem;
    font-weight: 900;
}

.resource-status.is-available {
    color: #256853;
    background: #cfecdd;
}

.resource-status.is-unavailable {
    color: #9b4b42;
    background: #f4d4d0;
}

.resource-description,
.resource-location {
    margin: 0;
    color: #5e747c;
    font-size: .73rem;
}

.resource-status-form select {
    width: 100%;
    padding: .5rem .6rem;
    border: 1px solid #cadbdd;
    border-radius: 10px;
    background: rgba(255,255,255,.76);
}

.resource-reservations {
    display: grid;
    gap: .5rem;
    padding-top: .65rem;
    border-top: 1px solid rgba(62, 115, 112, .18);
}

.resource-section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #36565e;
    font-size: .72rem;
}

.resource-section-title > span {
    display: grid;
    place-items: center;
    min-width: 26px;
    height: 26px;
    border-radius: 999px;
    background: rgba(255,255,255,.78);
}

.resource-reservation-row {
    display: flex;
    justify-content: space-between;
    gap: .6rem;
    align-items: center;
    padding: .65rem;
    border: 1px solid rgba(52, 124, 117, .18);
    border-radius: 12px;
    background: rgba(255,255,255,.62);
}

.resource-reservation-row > div {
    display: grid;
    gap: .1rem;
}

.resource-reservation-row strong {
    font-size: .72rem;
}

.resource-reservation-row span,
.resource-reservation-row small {
    color: #667d84;
    font-size: .61rem;
}

.resource-cancel-button {
    border: 0;
    border-radius: 8px;
    padding: .4rem .55rem;
    color: #8b4841;
    background: #f5dddd;
    cursor: pointer;
    font-size: .62rem;
    font-weight: 800;
}

.resource-book-form {
    display: grid;
    gap: .6rem;
    padding: .8rem;
    border-radius: 15px;
    background: linear-gradient(135deg, #dcefe7, #dbe8f5);
}

.resource-book-form label,
.resource-create-form label {
    display: grid;
    gap: .25rem;
}

.resource-book-form label > span,
.resource-create-form label > span {
    color: #405a62;
    font-size: .65rem;
    font-weight: 850;
}

.resource-book-form input,
.resource-book-form textarea,
.resource-create-form input,
.resource-create-form textarea,
.resource-create-form select {
    width: 100%;
    box-sizing: border-box;
    padding: .58rem .65rem;
    border: 1px solid #cadbdd;
    border-radius: 10px;
    background: rgba(255,255,255,.82);
}

.resource-dates {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .55rem;
}

.resource-book-form button,
.resource-create-form button {
    min-height: 40px;
    border: 0;
    border-radius: 10px;
    color: #fff;
    font-weight: 850;
    cursor: pointer;
    background: linear-gradient(90deg, #2e8b75, #4b77b5);
}

.resource-create-card {
    position: sticky;
    top: 1rem;
    padding: 1.05rem;
    border: 1px solid rgba(57, 136, 123, .3);
    border-radius: 21px;
    background: linear-gradient(145deg, #edf9f3, #e8f1fa);
    box-shadow: 0 12px 28px rgba(37, 77, 91, .12);
}

.resource-create-card h2 {
    margin: .25rem 0 .9rem;
}

.resource-create-form {
    display: grid;
    gap: .7rem;
}

.resource-create-form button {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.resource-empty {
    padding: .65rem;
    border-radius: 10px;
    color: #6c8187;
    background: rgba(255,255,255,.48);
    font-size: .68rem;
}

.resource-empty-large {
    min-height: 180px;
    display: grid;
    place-items: center;
    border: 1px dashed rgba(61, 122, 117, .3);
}

@media (max-width: 1100px) {
    .resource-layout {
        grid-template-columns: 1fr;
    }

    .resource-create-card {
        position: static;
        order: -1;
    }
}

@media (max-width: 780px) {
    .resource-page {
        padding: .55rem;
        border-radius: 20px;
    }

    .resource-grid,
    .resource-summary {
        grid-template-columns: 1fr;
    }

    .resource-dates {
        grid-template-columns: 1fr;
    }

    .resource-hero {
        padding: 1.2rem;
    }

    .resource-hero-icon {
        display: none;
    }
}


/* COMMUNITY MESSAGING */

.messaging-page {
    display: grid;
    gap: 1rem;
    padding: 1.1rem;
    border: 1px solid rgba(52, 136, 125, .28);
    border-radius: 28px;
    background:
        radial-gradient(circle at 8% 8%, rgba(55,157,137,.25), transparent 34%),
        radial-gradient(circle at 92% 8%, rgba(74,119,181,.27), transparent 34%),
        linear-gradient(135deg, #d9efe8, #dce8f5);
}

.messaging-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.7rem 2rem;
    border-radius: 24px;
    color: #fff;
    background: linear-gradient(125deg, #2f8d77, #4e79bb);
    box-shadow: 0 16px 34px rgba(39,78,94,.18);
}

.messaging-hero h1,
.messaging-thread-header h1 {
    margin: .25rem 0 .4rem;
}

.messaging-hero p {
    margin: 0;
    opacity: .9;
}

.messaging-eyebrow {
    color: #46737c;
    font-size: .67rem;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.messaging-hero .messaging-eyebrow {
    color: rgba(255,255,255,.78);
}

.messaging-hero-icon {
    display: grid;
    place-items: center;
    width: 72px;
    height: 72px;
    border: 1px solid rgba(255,255,255,.32);
    border-radius: 20px;
    background: rgba(255,255,255,.12);
}

.messaging-hero-icon svg {
    width: 39px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
}

.messaging-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 1rem;
    align-items: start;
}

.messaging-list-panel,
.messaging-thread,
.messaging-new-card {
    border: 1px solid rgba(49,129,118,.3);
    border-radius: 21px;
    background: linear-gradient(145deg, #edf9f4, #e7f0fa);
    box-shadow: 0 11px 25px rgba(39,78,91,.10);
}

.messaging-list-panel,
.messaging-new-card {
    padding: 1rem;
}

.messaging-panel-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: .85rem;
}

.messaging-panel-title h2,
.messaging-new-card h2 {
    margin: .2rem 0;
}

.messaging-panel-title > strong {
    display: grid;
    place-items: center;
    min-width: 34px;
    height: 34px;
    border-radius: 999px;
    background: rgba(255,255,255,.78);
}

.messaging-conversation-list {
    display: grid;
    gap: .65rem;
}

.messaging-conversation-card {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .75rem;
    align-items: center;
    padding: .8rem;
    border: 1px solid rgba(62,115,112,.18);
    border-radius: 15px;
    color: inherit;
    text-decoration: none;
    background: rgba(255,255,255,.62);
}

.messaging-conversation-card.has-unread {
    border-color: rgba(47,141,119,.55);
    box-shadow: inset 4px 0 0 #2f8d77;
    background: linear-gradient(90deg, #e0f3ea, #edf4fb);
}

.messaging-avatar {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    color: #fff;
    font-weight: 900;
    background: linear-gradient(135deg, #3d947e, #527bb8);
}

.messaging-conversation-main > div {
    display: flex;
    align-items: center;
    gap: .45rem;
}

.messaging-conversation-main p {
    margin: .25rem 0;
    color: #5c727a;
    font-size: .72rem;
}

.messaging-conversation-main small {
    color: #829198;
    font-size: .62rem;
}

.messaging-unread {
    display: grid;
    place-items: center;
    min-width: 21px;
    height: 21px;
    padding: 0 .25rem;
    border-radius: 999px;
    color: #fff;
    font-size: .6rem;
    font-weight: 900;
    background: #2f8d77;
}

.messaging-new-card {
    position: sticky;
    top: 1rem;
}

.messaging-new-card > p {
    color: #687d84;
    font-size: .72rem;
    line-height: 1.5;
}

.messaging-new-card form {
    display: grid;
    gap: .75rem;
}

.messaging-new-card label {
    display: grid;
    gap: .3rem;
}

.messaging-new-card label > span,
.messaging-composer label > span {
    color: #405a62;
    font-size: .67rem;
    font-weight: 850;
}

.messaging-new-card select,
.messaging-composer textarea {
    width: 100%;
    box-sizing: border-box;
    padding: .65rem;
    border: 1px solid #cadbdd;
    border-radius: 11px;
    background: rgba(255,255,255,.82);
}

.messaging-new-card button,
.messaging-composer button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 42px;
    padding: .6rem .8rem;
    border: 0;
    border-radius: 10px;
    color: #fff;
    font-weight: 850;
    cursor: pointer;
    background: linear-gradient(90deg, #2e8b75, #4b77b5);
}

.messaging-thread-header {
    display: flex;
    gap: 1rem;
    align-items: center;
    padding: 1rem 1.2rem;
    border-radius: 20px;
    background: linear-gradient(135deg, #dcefe7, #dce8f5);
}

.messaging-back {
    padding: .5rem .65rem;
    border-radius: 10px;
    color: #356c70;
    text-decoration: none;
    background: rgba(255,255,255,.72);
}

.messaging-thread {
    overflow: hidden;
}

.messaging-messages {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    min-height: 360px;
    max-height: 620px;
    overflow-y: auto;
    padding: 1rem 1.1rem;
    background:
        radial-gradient(circle at 10% 10%, rgba(47,141,119,.08), transparent 28%),
        radial-gradient(circle at 90% 12%, rgba(78,121,187,.10), transparent 30%),
        linear-gradient(135deg, #edf8f4, #eef4fb);
}

.messaging-message {
    width: fit-content;
    max-width: 72%;
    padding: .7rem .85rem;
    border-radius: 18px;
    box-shadow: 0 7px 16px rgba(48,88,96,.10);
}

.messaging-message.is-mine {
    align-self: flex-end;
    color: #fff;
    border-bottom-right-radius: 6px;
    background: linear-gradient(135deg, #2f927a, #4b78b8);
}

.messaging-message.is-other {
    align-self: flex-start;
    border: 1px solid rgba(64,118,114,.16);
    border-bottom-left-radius: 6px;
    background: rgba(255,255,255,.92);
}

.messaging-message-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    font-size: .61rem;
    opacity: .8;
    white-space: nowrap;
}

.messaging-message p {
    margin: .35rem 0 0;
    font-size: .8rem;
    line-height: 1.42;
}

.messaging-composer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 130px;
    gap: .7rem;
    padding: .85rem;
    border-top: 1px solid rgba(58,116,111,.18);
    background: linear-gradient(135deg, #d7eee6, #dce9f6);
}

.messaging-composer label {
    display: grid;
    gap: .3rem;
}

.messaging-empty {
    padding: 1rem;
    border: 1px dashed rgba(61,122,117,.28);
    border-radius: 13px;
    color: #6c8187;
    text-align: center;
    background: rgba(255,255,255,.42);
}

.messaging-empty-thread {
    align-self: center;
}

@media (max-width: 900px) {
    .messaging-layout {
        grid-template-columns: 1fr;
    }

    .messaging-new-card {
        position: static;
        order: -1;
    }
}

@media (max-width: 700px) {
    .messaging-page {
        padding: .55rem;
        border-radius: 20px;
    }

    .messaging-hero {
        padding: 1.2rem;
    }

    .messaging-hero-icon {
        display: none;
    }

    .messaging-message {
        max-width: 88%;
    }

    .messaging-composer {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================
   SIDEBAR — DENSITE & DEFILEMENT
   ========================================================== */

@media (min-width: 901px) {

    .org-sidebar {
        height: 100vh;
        max-height: 100vh;
        overflow: hidden;
        display: flex;
        flex-direction: column;
    }

    .org-brand {
        flex: 0 0 auto;
        margin-bottom: .55rem;
    }

    .org-current {
        flex: 0 0 auto;
        padding: .8rem 1rem;
        margin-bottom: .55rem;
    }

    .org-current small {
        margin-bottom: .15rem;
    }

    .org-nav {
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
        overflow-x: hidden;

        display: flex;
        flex-direction: column;
        gap: .12rem;

        padding-right: .3rem;
        padding-bottom: .4rem;

        scrollbar-width: thin;
        scrollbar-color:
            rgba(255,255,255,.24)
            transparent;
    }

    .org-nav::-webkit-scrollbar {
        width: 5px;
    }

    .org-nav::-webkit-scrollbar-track {
        background: transparent;
    }

    .org-nav::-webkit-scrollbar-thumb {
        border-radius: 999px;
        background: rgba(255,255,255,.22);
    }

    .org-nav a {
        min-height: 38px;
        padding: .42rem .62rem;
        gap: .65rem;
        border-radius: 10px;
        line-height: 1.1;
    }

    .org-nav .nav-icon {
        width: 19px;
        height: 19px;
        flex: 0 0 19px;
    }

    .org-nav .nav-icon svg {
        width: 18px;
        height: 18px;
    }

    .org-nav a span:last-child {
        font-size: .91rem;
    }

    .org-sidebar-footer {
        flex: 0 0 auto;
        margin-top: .45rem;
        padding-top: .55rem;
    }

    .org-sidebar-footer a {
        padding: .28rem .25rem;
    }
}



/* MESSAGING GROUP CONVERSATIONS */

.messaging-create-sections {
    display: grid;
    gap: .8rem;
}

.messaging-create-block {
    padding: .75rem;
    border: 1px solid rgba(54,126,117,.18);
    border-radius: 15px;
    background: rgba(255,255,255,.48);
}

.messaging-create-block.is-group {
    background:
        linear-gradient(
            135deg,
            rgba(217,241,232,.86),
            rgba(222,233,248,.88)
        );
}

.messaging-create-heading {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin-bottom: .7rem;
}

.messaging-create-heading > div {
    display: grid;
    gap: .08rem;
}

.messaging-create-heading strong {
    font-size: .78rem;
}

.messaging-create-heading small {
    color: #6d8086;
    font-size: .62rem;
}

.messaging-create-icon {
    display: grid;
    place-items: center;
    width: 35px;
    height: 35px;
    border-radius: 11px;
    background: rgba(255,255,255,.82);
}

.messaging-create-block form {
    display: grid;
    gap: .65rem;
}

.messaging-create-block input[type="text"] {
    width: 100%;
    box-sizing: border-box;
    padding: .65rem;
    border: 1px solid #cadbdd;
    border-radius: 11px;
    background: rgba(255,255,255,.88);
}

.messaging-member-picker {
    display: grid;
    gap: .35rem;
}

.messaging-member-picker > span {
    color: #405a62;
    font-size: .67rem;
    font-weight: 850;
}

.messaging-member-picker > small {
    color: #74878d;
    font-size: .6rem;
}

.messaging-member-options {
    display: grid;
    gap: .3rem;
    max-height: 150px;
    overflow-y: auto;
    padding: .45rem;
    border: 1px solid rgba(66,126,120,.16);
    border-radius: 10px;
    background: rgba(255,255,255,.62);
}

.messaging-member-options label {
    display: flex;
    align-items: center;
    gap: .45rem;
    padding: .38rem .42rem;
    border-radius: 8px;
    cursor: pointer;
}

.messaging-member-options label:hover {
    background: rgba(54,139,118,.09);
}

.messaging-member-options input {
    accent-color: #338c77;
}

.messaging-member-options span {
    font-size: .68rem;
}

.messaging-group-badge {
    padding: .18rem .38rem;
    border-radius: 999px;
    color: #416c75;
    font-size: .54rem;
    font-weight: 850;
    background: #dcece9;
}

.messaging-thread-members {
    margin-top: .18rem;
    color: #668087;
    font-size: .65rem;
    line-height: 1.4;
}

@media (max-width: 900px) {
    .messaging-member-options {
        max-height: 190px;
    }
}

/* ==========================================================
   MESSAGERIE GROUPE — ALIGNEMENT DES MEMBRES
   ========================================================== */

.messaging-member-options {
    display: grid;
    gap: .42rem;
    max-height: 190px;
    overflow-y: auto;
    padding: .5rem;
    border: 1px solid rgba(66,126,120,.16);
    border-radius: 11px;
    background: rgba(255,255,255,.58);
}

.messaging-member-options label {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    width: 100%;
    box-sizing: border-box;
    padding: .55rem .65rem;
    margin: 0;
    border: 1px solid rgba(67,125,122,.13);
    border-radius: 10px;
    background: rgba(255,255,255,.56);
    cursor: pointer;
}

.messaging-member-options label:hover {
    border-color: rgba(54,139,118,.30);
    background: rgba(255,255,255,.88);
}

.messaging-member-options label span {
    flex: 1 1 auto;
    order: 1;
    font-size: .72rem;
    font-weight: 750;
    line-height: 1.2;
    color: #385860;
}

.messaging-member-options label input[type="checkbox"] {
    order: 2;
    flex: 0 0 auto;
    width: 17px;
    height: 17px;
    margin: 0;
    padding: 0;
    accent-color: #338c77;
    cursor: pointer;
}


/* MESSAGERIE GROUPE — LISTE MEMBRES EXTENSIBLE */

.messaging-member-picker-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .7rem;
}

.messaging-member-picker-title > span {
    color: #405a62;
    font-size: .67rem;
    font-weight: 850;
}

.messaging-member-picker-title > strong {
    padding: .22rem .45rem;
    border-radius: 999px;
    color: #36736e;
    font-size: .58rem;
    font-weight: 850;
    background: rgba(255,255,255,.78);
}

.messaging-member-search {
    display: flex;
    align-items: center;
    gap: .4rem;
    margin-top: .25rem;
    padding: .18rem .5rem;
    border: 1px solid rgba(64,119,116,.18);
    border-radius: 10px;
    background: rgba(255,255,255,.82);
}

.messaging-member-search > span {
    color: #5c7b7c;
    font-size: 1rem;
}

.messaging-member-search input {
    width: 100%;
    min-width: 0;
    padding: .45rem .15rem;
    border: 0;
    outline: 0;
    color: #385860;
    background: transparent;
}

.messaging-member-options [hidden] {
    display: none !important;
}

.messaging-member-picker-footer {
    display: grid;
    gap: .4rem;
}

.messaging-member-picker-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .45rem;
    flex-wrap: wrap;
}

.messaging-member-toggle,
.messaging-member-clear {
    padding: .3rem .45rem;
    border: 0;
    border-radius: 8px;
    cursor: pointer;
    font-size: .6rem;
    font-weight: 800;
}

.messaging-member-toggle {
    margin-left: auto;
    color: #356e73;
    background: rgba(255,255,255,.8);
}

.messaging-member-toggle:hover {
    background: #fff;
}

.messaging-member-clear {
    color: #84625c;
    background: rgba(255,255,255,.58);
}

.messaging-member-no-result {
    padding: .6rem;
    border: 1px dashed rgba(63,121,117,.25);
    border-radius: 9px;
    color: #6e8186;
    font-size: .65rem;
    text-align: center;
    background: rgba(255,255,255,.45);
}

@media (max-width: 700px) {
    .messaging-member-picker-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .messaging-member-toggle,
    .messaging-member-clear {
        width: 100%;
        margin-left: 0;
    }
}

/* MESSAGERIE — RESPECT DES ELEMENTS MASQUES */

.messaging-member-picker [hidden] {
    display: none !important;
}

/* ==========================================================
   SIDEBAR — PAGE ACTIVE
   ========================================================== */

.org-nav a {
    position: relative;
}

.org-nav a.is-active {
    color: #ffffff;
    background:
        linear-gradient(
            90deg,
            rgba(68, 167, 145, .28),
            rgba(86, 132, 189, .20)
        );
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.08),
        0 5px 14px rgba(0,0,0,.08);
}

.org-nav a.is-active::before {
    content: "";
    position: absolute;
    left: 0;
    top: 7px;
    bottom: 7px;
    width: 4px;
    border-radius: 0 999px 999px 0;
    background: linear-gradient(
        180deg,
        #63d0ac,
        #73a5e2
    );
}

.org-nav a.is-active .nav-icon {
    color: #ffffff;
}

.org-nav a.is-active span:last-child {
    font-weight: 850;
}


/* DASHBOARD TODAY */

.today-dashboard {
    display: grid;
    gap: 1rem;
    margin: 1rem 0;
    padding: 1rem;
    border: 1px solid rgba(54,125,126,.22);
    border-radius: 25px;
    background:
        radial-gradient(circle at 0 0, rgba(250,202,88,.20), transparent 29%),
        radial-gradient(circle at 100% 0, rgba(128,104,204,.16), transparent 30%),
        linear-gradient(135deg, #e9f6ef, #e8eff9);
    box-shadow: 0 13px 30px rgba(46,79,89,.09);
}

.today-dashboard-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
}

.today-dashboard-heading h2 {
    margin: .15rem 0;
    font-size: 1.35rem;
    color: #284e58;
}

.today-dashboard-heading p {
    margin: 0;
    color: #657c83;
    font-size: .75rem;
}

.today-dashboard-eyebrow {
    color: #3d827a;
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .1em;
}

.today-dashboard-date {
    padding: .45rem .7rem;
    border-radius: 999px;
    color: #4c6a73;
    font-size: .67rem;
    font-weight: 850;
    background: rgba(255,255,255,.72);
}

.today-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
}

.today-summary-card {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .7rem;
    align-items: center;
    min-height: 86px;
    padding: .8rem;
    border-radius: 18px;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 9px 20px rgba(45,78,88,.10);
    transition: transform .18s ease, box-shadow .18s ease;
}

.today-summary-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 13px 25px rgba(45,78,88,.15);
}

.today-summary-tasks {
    background: linear-gradient(135deg, #d4f1df, #bde4d7);
}

.today-summary-messages {
    background: linear-gradient(135deg, #dce9ff, #c9dcfb);
}

.today-summary-notifications {
    background: linear-gradient(135deg, #ede0ff, #ddcdf9);
}

.today-summary-reservations {
    background: linear-gradient(135deg, #ffe6bd, #ffd2ad);
}

.today-summary-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 13px;
    font-size: 1.1rem;
    font-weight: 900;
    background: rgba(255,255,255,.72);
}

.today-summary-card > div {
    display: grid;
    gap: .08rem;
}

.today-summary-card strong {
    color: #284d57;
    font-size: 1.25rem;
    line-height: 1;
}

.today-summary-card span:not(.today-summary-icon) {
    color: #395b64;
    font-size: .69rem;
    font-weight: 850;
}

.today-summary-card small {
    color: #647a80;
    font-size: .58rem;
}

.today-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
}

.today-panel {
    overflow: hidden;
    border-radius: 19px;
    box-shadow: 0 8px 18px rgba(44,76,85,.08);
}

.today-panel-tasks {
    border: 1px solid rgba(44,143,109,.22);
    background: linear-gradient(145deg, #f0fbf4, #dff3e8);
}

.today-panel-checklists {
    border: 1px solid rgba(217,161,55,.24);
    background: linear-gradient(145deg, #fff9df, #faedbf);
}

.today-panel-reservations {
    border: 1px solid rgba(73,121,183,.22);
    background: linear-gradient(145deg, #edf5ff, #dbe9fa);
}

.today-panel-notifications {
    border: 1px solid rgba(130,91,184,.22);
    background: linear-gradient(145deg, #f7efff, #e9dcf8);
}

.today-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    padding: .8rem .9rem .55rem;
}

.today-panel-head span {
    color: #688087;
    font-size: .55rem;
    font-weight: 900;
    letter-spacing: .09em;
}

.today-panel-head h3 {
    margin: .1rem 0 0;
    color: #2e515b;
    font-size: .87rem;
}

.today-panel-head a {
    color: #45747a;
    font-size: .61rem;
    font-weight: 850;
    text-decoration: none;
}

.today-list {
    display: grid;
    gap: .38rem;
    padding: 0 .7rem .7rem;
}

.today-list-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .55rem;
    align-items: center;
    min-height: 45px;
    padding: .48rem .58rem;
    border: 1px solid rgba(73,112,116,.11);
    border-radius: 11px;
    background: rgba(255,255,255,.66);
}

.today-list-item > div {
    display: grid;
    gap: .08rem;
}

.today-list-item strong {
    color: #36545c;
    font-size: .69rem;
}

.today-list-item small {
    color: #75868b;
    font-size: .56rem;
}

.today-list-dot,
.today-notification-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
}

.today-list-dot {
    background: #42a47d;
    box-shadow: 0 0 0 4px rgba(66,164,125,.13);
}

.today-notification-dot {
    background: #946dc1;
    box-shadow: 0 0 0 4px rgba(148,109,193,.13);
}

.today-check-box {
    width: 13px;
    height: 13px;
    border: 2px solid #d6a63c;
    border-radius: 4px;
    background: rgba(255,255,255,.6);
}

.today-calendar-day {
    display: grid;
    place-items: center;
    width: 31px;
    height: 31px;
    border-radius: 9px;
    color: #fff;
    font-size: .66rem;
    font-weight: 900;
    background: linear-gradient(135deg, #4c89bf, #5b6bb6);
}

.today-pill {
    padding: .2rem .38rem;
    border-radius: 999px;
    font-size: .52rem;
}

.today-pill-danger {
    color: #8b3535;
    background: #ffd8d4;
}

.today-pill-warning {
    color: #856024;
    background: #ffe5ae;
}

.today-empty {
    padding: .8rem;
    border: 1px dashed rgba(79,122,123,.20);
    border-radius: 11px;
    color: #6a8185;
    font-size: .66rem;
    text-align: center;
    background: rgba(255,255,255,.40);
}

@media (max-width: 1050px) {
    .today-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .today-dashboard-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .today-summary-grid,
    .today-detail-grid {
        grid-template-columns: 1fr;
    }
}

/* DASHBOARD — BLOCS COMMUNAUTAIRES COMPACTS */

.org-grid-dashboard {
    align-items: start;
}

.dashboard-feed-card {
    align-self: start;
    height: auto;
    min-height: 0;
}

.dashboard-feed-card .dashboard-feed-post:last-child {
    margin-bottom: 0;
}


/* NOTIFICATIONS — NOUVEAUX MODULES */

.notification-type-poll {
    color: #6556a8;
    background: #ece7ff;
}

.notification-type-checklist {
    color: #a06e18;
    background: #fff0c8;
}

.notification-type-idea {
    color: #a05284;
    background: #f8dff0;
}

.notification-type-reservation {
    color: #376fa3;
    background: #dfeeff;
}


/* DOCUMENTS — RECHERCHE FILTRES PAGINATION */

.documents-filter-card {
    display: grid;
    grid-template-columns:
        minmax(220px, 1.6fr)
        minmax(150px, .8fr)
        minmax(150px, .8fr)
        minmax(130px, .65fr)
        auto;
    gap: .65rem;
    align-items: center;
    margin-bottom: .65rem;
    padding: .8rem;
    border: 1px solid rgba(40,103,107,.16);
    border-radius: 17px;
    background:
        linear-gradient(
            135deg,
            rgba(221,244,235,.86),
            rgba(226,236,250,.82)
        );
    box-shadow: 0 7px 18px rgba(34,76,81,.06);
}

.documents-search-field {
    position: relative;
}

.documents-search-field svg {
    position: absolute;
    top: 50%;
    left: .72rem;
    width: 16px;
    height: 16px;
    transform: translateY(-50%);
    fill: none;
    stroke: #628087;
    stroke-width: 1.8;
    stroke-linecap: round;
}

.documents-search-field input,
.documents-filter-card select {
    width: 100%;
    min-height: 40px;
    border: 1px solid rgba(73,113,118,.20);
    border-radius: 11px;
    background: rgba(255,255,255,.88);
    color: #34555c;
    font: inherit;
    font-size: .72rem;
}

.documents-search-field input {
    padding: .65rem .7rem .65rem 2.25rem;
}

.documents-filter-card select {
    padding: .55rem .65rem;
}

.documents-search-field input:focus,
.documents-filter-card select:focus {
    outline: 2px solid rgba(50,145,133,.18);
    border-color: #62a99d;
}

.documents-filter-submit,
.documents-filter-reset {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .55rem .85rem;
    border-radius: 11px;
    font-size: .68rem;
    font-weight: 850;
    text-decoration: none;
    white-space: nowrap;
}

.documents-filter-submit {
    border: 0;
    color: #fff;
    cursor: pointer;
    background: linear-gradient(135deg, #247d73, #347ea3);
    box-shadow: 0 6px 14px rgba(37,111,112,.18);
}

.documents-filter-reset {
    grid-column: 1 / -1;
    justify-self: end;
    min-height: auto;
    padding: .28rem .2rem;
    color: #5d7479;
}

.documents-results-summary {
    display: flex;
    align-items: baseline;
    gap: .28rem;
    margin: .3rem 0 .85rem;
    color: #6d8186;
    font-size: .66rem;
}

.documents-results-summary strong {
    color: #315e62;
    font-size: .8rem;
}

.documents-results-summary span {
    color: #91a0a3;
}

.documents-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .8rem;
    margin-top: 1rem;
    padding: .65rem;
}

.documents-pagination a,
.documents-pagination span {
    min-height: 35px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-size: .65rem;
    font-weight: 800;
}

.documents-pagination a {
    padding: 0 .85rem;
    color: #fff;
    text-decoration: none;
    background: linear-gradient(135deg, #347f76, #527cad);
    box-shadow: 0 5px 12px rgba(42,91,100,.12);
}

.documents-pagination span {
    padding: 0 .75rem;
    color: #5b7479;
    background: #edf4f3;
}

.documents-pagination span strong {
    margin: 0 .2rem;
    color: #315a60;
}

.documents-empty-reset {
    display: inline-flex;
    margin-top: .65rem;
    padding: .55rem .8rem;
    border-radius: 10px;
    color: #fff;
    font-size: .68rem;
    font-weight: 850;
    text-decoration: none;
    background: linear-gradient(135deg, #33887b, #477eaf);
}

@media (max-width: 1180px) {
    .documents-filter-card {
        grid-template-columns:
            minmax(220px, 1fr)
            repeat(2, minmax(140px, .7fr));
    }

    .documents-filter-card select[name="sort"] {
        grid-column: 1 / 2;
    }

    .documents-filter-submit {
        justify-self: stretch;
    }
}

@media (max-width: 760px) {
    .documents-filter-card {
        grid-template-columns: 1fr;
    }

    .documents-filter-card select[name="sort"] {
        grid-column: auto;
    }

    .documents-filter-reset {
        grid-column: auto;
        justify-self: stretch;
    }

    .documents-pagination {
        flex-wrap: wrap;
    }
}


/* EVENEMENTS — RECHERCHE FILTRES PAGINATION */

.events-filter-card {
    display: grid;
    grid-template-columns:
        minmax(220px, 1.5fr)
        minmax(120px, .65fr)
        minmax(145px, .75fr)
        minmax(155px, .8fr)
        minmax(145px, .7fr)
        auto;
    gap: .65rem;
    align-items: center;
    margin: 1rem 0 .6rem;
    padding: .8rem;
    border: 1px solid rgba(48,105,110,.16);
    border-radius: 17px;
    background:
        linear-gradient(
            135deg,
            rgba(223,244,236,.88),
            rgba(226,236,250,.84)
        );
    box-shadow: 0 7px 18px rgba(34,76,81,.06);
}

.events-search-field {
    position: relative;
}

.events-search-field svg {
    position: absolute;
    top: 50%;
    left: .72rem;
    width: 16px;
    height: 16px;
    transform: translateY(-50%);
    fill: none;
    stroke: #628087;
    stroke-width: 1.8;
    stroke-linecap: round;
}

.events-search-field input,
.events-filter-card select {
    width: 100%;
    min-height: 40px;
    border: 1px solid rgba(73,113,118,.20);
    border-radius: 11px;
    background: rgba(255,255,255,.9);
    color: #34555c;
    font: inherit;
    font-size: .7rem;
}

.events-search-field input {
    padding: .65rem .7rem .65rem 2.25rem;
}

.events-filter-card select {
    padding: .55rem .6rem;
}

.events-search-field input:focus,
.events-filter-card select:focus {
    outline: 2px solid rgba(50,145,133,.18);
    border-color: #62a99d;
}

.events-filter-submit,
.events-filter-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: .55rem .8rem;
    border-radius: 11px;
    font-size: .67rem;
    font-weight: 850;
    text-decoration: none;
    white-space: nowrap;
}

.events-filter-submit {
    border: 0;
    color: #fff;
    cursor: pointer;
    background: linear-gradient(
        135deg,
        #247d73,
        #347ea3
    );
    box-shadow: 0 6px 14px rgba(37,111,112,.18);
}

.events-filter-reset {
    grid-column: 1 / -1;
    justify-self: end;
    min-height: auto;
    padding: .25rem;
    color: #5d7479;
}

.events-results-summary {
    display: flex;
    align-items: baseline;
    gap: .28rem;
    margin: 0 0 .75rem;
    color: #6d8186;
    font-size: .66rem;
}

.events-results-summary strong {
    color: #315e62;
    font-size: .8rem;
}

.events-results-summary span {
    color: #91a0a3;
}

.events-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .8rem;
    padding: .9rem 0 .2rem;
}

.events-pagination a,
.events-pagination span {
    min-height: 35px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-size: .65rem;
    font-weight: 800;
}

.events-pagination a {
    padding: 0 .85rem;
    color: #fff;
    text-decoration: none;
    background: linear-gradient(
        135deg,
        #347f76,
        #527cad
    );
    box-shadow: 0 5px 12px rgba(42,91,100,.12);
}

.events-pagination span {
    padding: 0 .75rem;
    color: #5b7479;
    background: #edf4f3;
}

.events-pagination span strong {
    margin: 0 .2rem;
    color: #315a60;
}

.events-empty-reset {
    display: inline-flex;
    margin-top: .7rem;
    padding: .55rem .8rem;
    border-radius: 10px;
    color: #fff;
    font-size: .67rem;
    font-weight: 850;
    text-decoration: none;
    background: linear-gradient(
        135deg,
        #33887b,
        #477eaf
    );
}

@media (max-width: 1250px) {
    .events-filter-card {
        grid-template-columns:
            minmax(220px, 1fr)
            repeat(2, minmax(145px, .7fr));
    }

    .events-filter-submit {
        justify-self: stretch;
    }
}

@media (max-width: 760px) {
    .events-filter-card {
        grid-template-columns: 1fr;
    }

    .events-filter-reset {
        grid-column: auto;
        justify-self: stretch;
    }

    .events-pagination {
        flex-wrap: wrap;
    }
}


/* GROUPES — RECHERCHE FILTRES PAGINATION */

.groups-filter-card {
    display: grid;
    grid-template-columns:
        minmax(240px, 1.5fr)
        minmax(175px, .75fr)
        minmax(150px, .65fr)
        auto;
    gap: .65rem;
    align-items: center;
    margin: 1rem 0 .6rem;
    padding: .8rem;
    border: 1px solid rgba(48,105,110,.16);
    border-radius: 17px;
    background:
        linear-gradient(
            135deg,
            rgba(223,244,236,.88),
            rgba(226,236,250,.84)
        );
    box-shadow:
        0 7px 18px rgba(34,76,81,.06);
}

.groups-search-field {
    position: relative;
}

.groups-search-field svg {
    position: absolute;
    top: 50%;
    left: .72rem;
    width: 16px;
    height: 16px;
    transform: translateY(-50%);
    fill: none;
    stroke: #628087;
    stroke-width: 1.8;
}

.groups-search-field input,
.groups-filter-card select {
    width: 100%;
    min-height: 40px;
    border: 1px solid rgba(73,113,118,.20);
    border-radius: 11px;
    background: rgba(255,255,255,.9);
    color: #34555c;
    font: inherit;
    font-size: .7rem;
}

.groups-search-field input {
    padding:
        .65rem
        .7rem
        .65rem
        2.25rem;
}

.groups-filter-card select {
    padding: .55rem .65rem;
}

.groups-filter-submit,
.groups-filter-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: .55rem .85rem;
    border-radius: 11px;
    font-size: .67rem;
    font-weight: 850;
    text-decoration: none;
    white-space: nowrap;
}

.groups-filter-submit {
    border: 0;
    color: #fff;
    cursor: pointer;
    background:
        linear-gradient(
            135deg,
            #247d73,
            #347ea3
        );
}

.groups-filter-reset {
    grid-column: 1 / -1;
    justify-self: end;
    min-height: auto;
    padding: .2rem;
    color: #5d7479;
}

.groups-results-summary {
    display: flex;
    align-items: baseline;
    gap: .28rem;
    margin: 0 0 .75rem;
    color: #6d8186;
    font-size: .66rem;
}

.groups-results-summary strong {
    color: #315e62;
    font-size: .8rem;
}

.groups-results-summary span {
    color: #91a0a3;
}

.groups-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .8rem;
    padding: 1rem 0 .15rem;
}

.groups-pagination a,
.groups-pagination span {
    min-height: 35px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-size: .65rem;
    font-weight: 800;
}

.groups-pagination a {
    padding: 0 .85rem;
    color: #fff;
    text-decoration: none;
    background:
        linear-gradient(
            135deg,
            #347f76,
            #527cad
        );
}

.groups-pagination span {
    padding: 0 .75rem;
    color: #5b7479;
    background: #edf4f3;
}

.groups-pagination span strong {
    margin: 0 .2rem;
    color: #315a60;
}

.groups-empty-reset {
    display: inline-flex;
    margin-top: .5rem;
    padding: .5rem .75rem;
    border-radius: 10px;
    color: #fff;
    font-size: .67rem;
    font-weight: 850;
    text-decoration: none;
    background:
        linear-gradient(
            135deg,
            #33887b,
            #477eaf
        );
}

@media (max-width: 950px) {
    .groups-filter-card {
        grid-template-columns:
            minmax(220px, 1fr)
            minmax(160px, .7fr);
    }

    .groups-filter-submit {
        justify-self: stretch;
    }
}

@media (max-width: 650px) {
    .groups-filter-card {
        grid-template-columns: 1fr;
    }

    .groups-filter-reset {
        grid-column: auto;
        justify-self: stretch;
    }

    .groups-pagination {
        flex-wrap: wrap;
    }
}


/* GROUPE — PAGINATION DU FIL */

.group-feed-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .8rem;
    margin-top: 1rem;
    padding: .8rem 0 .2rem;
}

.group-feed-pagination a,
.group-feed-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 800;
}

.group-feed-pagination a {
    padding: 0 .9rem;
    color: #fff;
    text-decoration: none;
    background:
        linear-gradient(
            135deg,
            #347f76,
            #527cad
        );
    box-shadow:
        0 5px 12px rgba(42,91,100,.12);
}

.group-feed-pagination a:hover {
    transform: translateY(-1px);
}

.group-feed-pagination span {
    padding: 0 .8rem;
    color: #5b7479;
    background: #edf4f3;
}

.group-feed-pagination span strong {
    margin: 0 .2rem;
    color: #315a60;
}

@media (max-width: 700px) {
    .group-feed-pagination {
        flex-wrap: wrap;
    }

    .group-feed-pagination a {
        flex: 1 1 auto;
    }
}


/* FORMULAIRES — RECHERCHE FILTRES PAGINATION */

.forms-filter-card {
    display: grid;
    grid-template-columns:
        minmax(250px, 1.5fr)
        minmax(165px, .7fr)
        minmax(150px, .65fr)
        auto;
    gap: .65rem;
    align-items: center;
    margin: 1rem 0 .6rem;
    padding: .8rem;
    border: 1px solid rgba(48,105,110,.16);
    border-radius: 17px;
    background:
        linear-gradient(
            135deg,
            rgba(223,244,236,.88),
            rgba(226,236,250,.84)
        );
    box-shadow:
        0 7px 18px rgba(34,76,81,.06);
}

.forms-search-field {
    position: relative;
}

.forms-search-field svg {
    position: absolute;
    top: 50%;
    left: .72rem;
    width: 16px;
    height: 16px;
    transform: translateY(-50%);
    fill: none;
    stroke: #628087;
    stroke-width: 1.8;
    stroke-linecap: round;
}

.forms-search-field input,
.forms-filter-card select {
    width: 100%;
    min-height: 40px;
    border: 1px solid rgba(73,113,118,.20);
    border-radius: 11px;
    background: rgba(255,255,255,.9);
    color: #34555c;
    font: inherit;
    font-size: .7rem;
}

.forms-search-field input {
    padding:
        .65rem
        .7rem
        .65rem
        2.25rem;
}

.forms-filter-card select {
    padding: .55rem .65rem;
}

.forms-filter-submit,
.forms-filter-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: .55rem .85rem;
    border-radius: 11px;
    font-size: .67rem;
    font-weight: 850;
    text-decoration: none;
    white-space: nowrap;
}

.forms-filter-submit {
    border: 0;
    color: #fff;
    cursor: pointer;
    background:
        linear-gradient(
            135deg,
            #247d73,
            #347ea3
        );
}

.forms-filter-reset {
    grid-column: 1 / -1;
    justify-self: end;
    min-height: auto;
    padding: .2rem;
    color: #5d7479;
}

.forms-results-summary {
    display: flex;
    align-items: baseline;
    gap: .28rem;
    margin: 0 0 .75rem;
    color: #6d8186;
    font-size: .66rem;
}

.forms-results-summary strong {
    color: #315e62;
    font-size: .8rem;
}

.forms-results-summary span {
    color: #91a0a3;
}

.forms-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .8rem;
    padding: 1rem 0 .15rem;
}

.forms-pagination a,
.forms-pagination span {
    min-height: 35px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-size: .65rem;
    font-weight: 800;
}

.forms-pagination a {
    padding: 0 .85rem;
    color: #fff;
    text-decoration: none;
    background:
        linear-gradient(
            135deg,
            #347f76,
            #527cad
        );
}

.forms-pagination span {
    padding: 0 .75rem;
    color: #5b7479;
    background: #edf4f3;
}

.forms-pagination span strong {
    margin: 0 .2rem;
    color: #315a60;
}

.forms-empty-reset {
    display: inline-flex;
    margin-top: .65rem;
    padding: .55rem .8rem;
    border-radius: 10px;
    color: #fff;
    font-size: .67rem;
    font-weight: 850;
    text-decoration: none;
    background:
        linear-gradient(
            135deg,
            #33887b,
            #477eaf
        );
}

@media (max-width: 950px) {
    .forms-filter-card {
        grid-template-columns:
            minmax(220px, 1fr)
            minmax(160px, .7fr);
    }

    .forms-filter-submit {
        justify-self: stretch;
    }
}

@media (max-width: 650px) {
    .forms-filter-card {
        grid-template-columns: 1fr;
    }

    .forms-filter-reset {
        grid-column: auto;
        justify-self: stretch;
    }

    .forms-pagination {
        flex-wrap: wrap;
    }
}


/* SONDAGES — RECHERCHE FILTRES PAGINATION */

.poll-filter-card {
    display: grid;
    grid-template-columns:
        minmax(230px, 1.4fr)
        minmax(140px, .65fr)
        minmax(165px, .75fr)
        minmax(145px, .65fr)
        auto;
    gap: .65rem;
    align-items: center;
    margin: 1rem 0 .6rem;
    padding: .8rem;
    border: 1px solid rgba(48,105,110,.16);
    border-radius: 17px;
    background:
        linear-gradient(
            135deg,
            rgba(223,244,236,.88),
            rgba(226,236,250,.84)
        );
    box-shadow:
        0 7px 18px rgba(34,76,81,.06);
}

.poll-search-field {
    position: relative;
}

.poll-search-field svg {
    position: absolute;
    top: 50%;
    left: .72rem;
    width: 16px;
    height: 16px;
    transform: translateY(-50%);
    fill: none;
    stroke: #628087;
    stroke-width: 1.8;
}

.poll-search-field input,
.poll-filter-card select {
    width: 100%;
    min-height: 40px;
    border: 1px solid rgba(73,113,118,.20);
    border-radius: 11px;
    background: rgba(255,255,255,.9);
    color: #34555c;
    font: inherit;
    font-size: .7rem;
}

.poll-search-field input {
    padding:
        .65rem
        .7rem
        .65rem
        2.25rem;
}

.poll-filter-card select {
    padding: .55rem .65rem;
}

.poll-filter-submit,
.poll-filter-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: .55rem .85rem;
    border-radius: 11px;
    font-size: .67rem;
    font-weight: 850;
    text-decoration: none;
    white-space: nowrap;
}

.poll-filter-submit {
    border: 0;
    color: #fff;
    cursor: pointer;
    background:
        linear-gradient(
            135deg,
            #247d73,
            #347ea3
        );
}

.poll-filter-reset {
    grid-column: 1 / -1;
    justify-self: end;
    min-height: auto;
    padding: .2rem;
    color: #5d7479;
}

.poll-results-summary {
    display: flex;
    align-items: baseline;
    gap: .28rem;
    margin: 0 0 .75rem;
    color: #6d8186;
    font-size: .66rem;
}

.poll-results-summary strong {
    color: #315e62;
    font-size: .8rem;
}

.poll-results-summary span {
    color: #91a0a3;
}

.poll-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .8rem;
    padding: 1rem 0 .1rem;
}

.poll-pagination a,
.poll-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 35px;
    border-radius: 999px;
    font-size: .65rem;
    font-weight: 800;
}

.poll-pagination a {
    padding: 0 .85rem;
    color: #fff;
    text-decoration: none;
    background:
        linear-gradient(
            135deg,
            #347f76,
            #527cad
        );
}

.poll-pagination span {
    padding: 0 .75rem;
    color: #5b7479;
    background: #edf4f3;
}

.poll-pagination span strong {
    margin: 0 .2rem;
    color: #315a60;
}

.poll-empty-reset {
    display: inline-flex;
    margin-top: .65rem;
    padding: .55rem .8rem;
    border-radius: 10px;
    color: #fff;
    font-size: .67rem;
    font-weight: 850;
    text-decoration: none;
    background:
        linear-gradient(
            135deg,
            #33887b,
            #477eaf
        );
}

@media (max-width: 1150px) {
    .poll-filter-card {
        grid-template-columns:
            minmax(220px, 1fr)
            repeat(2, minmax(145px, .7fr));
    }
}

@media (max-width: 700px) {
    .poll-filter-card {
        grid-template-columns: 1fr;
    }

    .poll-filter-reset {
        grid-column: auto;
        justify-self: stretch;
    }

    .poll-pagination {
        flex-wrap: wrap;
    }
}


/* LISTES — RECHERCHE FILTRES PAGINATION */

.checklist-filter-card {
    display: grid;
    grid-template-columns:
        minmax(230px, 1.4fr)
        minmax(135px, .6fr)
        minmax(155px, .7fr)
        minmax(170px, .75fr)
        auto;
    gap: .65rem;
    align-items: center;
    margin: 1rem 0 .6rem;
    padding: .8rem;
    border: 1px solid rgba(48,105,110,.16);
    border-radius: 17px;
    background:
        linear-gradient(
            135deg,
            rgba(223,244,236,.88),
            rgba(226,236,250,.84)
        );
    box-shadow:
        0 7px 18px rgba(34,76,81,.06);
}

.checklist-search-field {
    position: relative;
}

.checklist-search-field svg {
    position: absolute;
    top: 50%;
    left: .72rem;
    width: 16px;
    height: 16px;
    transform: translateY(-50%);
    fill: none;
    stroke: #628087;
    stroke-width: 1.8;
}

.checklist-search-field input,
.checklist-filter-card select {
    width: 100%;
    min-height: 40px;
    border: 1px solid rgba(73,113,118,.20);
    border-radius: 11px;
    background: rgba(255,255,255,.9);
    color: #34555c;
    font: inherit;
    font-size: .7rem;
}

.checklist-search-field input {
    padding:
        .65rem
        .7rem
        .65rem
        2.25rem;
}

.checklist-filter-card select {
    padding: .55rem .65rem;
}

.checklist-filter-submit,
.checklist-filter-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: .55rem .85rem;
    border-radius: 11px;
    font-size: .67rem;
    font-weight: 850;
    text-decoration: none;
    white-space: nowrap;
}

.checklist-filter-submit {
    border: 0;
    color: #fff;
    cursor: pointer;
    background:
        linear-gradient(
            135deg,
            #247d73,
            #347ea3
        );
}

.checklist-filter-reset {
    grid-column: 1 / -1;
    justify-self: end;
    min-height: auto;
    padding: .2rem;
    color: #5d7479;
}

.checklist-results-summary {
    display: flex;
    align-items: baseline;
    gap: .28rem;
    margin: 0 0 .75rem;
    color: #6d8186;
    font-size: .66rem;
}

.checklist-results-summary strong {
    color: #315e62;
    font-size: .8rem;
}

.checklist-results-summary span {
    color: #91a0a3;
}

.checklist-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .8rem;
    padding: 1rem 0 .1rem;
}

.checklist-pagination a,
.checklist-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 35px;
    border-radius: 999px;
    font-size: .65rem;
    font-weight: 800;
}

.checklist-pagination a {
    padding: 0 .85rem;
    color: #fff;
    text-decoration: none;
    background:
        linear-gradient(
            135deg,
            #347f76,
            #527cad
        );
}

.checklist-pagination span {
    padding: 0 .75rem;
    color: #5b7479;
    background: #edf4f3;
}

.checklist-pagination span strong {
    margin: 0 .2rem;
    color: #315a60;
}

.checklist-empty-reset {
    display: inline-flex;
    margin-top: .65rem;
    padding: .55rem .8rem;
    border-radius: 10px;
    color: #fff;
    font-size: .67rem;
    font-weight: 850;
    text-decoration: none;
    background:
        linear-gradient(
            135deg,
            #33887b,
            #477eaf
        );
}

@media (max-width: 1150px) {
    .checklist-filter-card {
        grid-template-columns:
            minmax(220px, 1fr)
            repeat(2, minmax(145px, .7fr));
    }
}

@media (max-width: 700px) {
    .checklist-filter-card {
        grid-template-columns: 1fr;
    }

    .checklist-filter-reset {
        grid-column: auto;
        justify-self: stretch;
    }

    .checklist-pagination {
        flex-wrap: wrap;
    }
}


/* CHECKLIST DETAIL — FILTRES PAGINATION */

.checklist-items-filter {
    display: grid;
    grid-template-columns:
        minmax(220px, 1fr)
        minmax(145px, .45fr)
        auto;
    gap: .6rem;
    align-items: center;
    margin: .9rem 0 .45rem;
    padding: .7rem;
    border: 1px solid rgba(48,105,110,.14);
    border-radius: 15px;
    background:
        linear-gradient(
            135deg,
            rgba(226,245,239,.82),
            rgba(229,238,249,.78)
        );
}

.checklist-items-search {
    position: relative;
}

.checklist-items-search svg {
    position: absolute;
    left: .7rem;
    top: 50%;
    width: 15px;
    height: 15px;
    transform: translateY(-50%);
    fill: none;
    stroke: #658086;
    stroke-width: 1.8;
}

.checklist-items-search input,
.checklist-items-filter select {
    width: 100%;
    min-height: 39px;
    border: 1px solid rgba(73,113,118,.2);
    border-radius: 10px;
    background: rgba(255,255,255,.92);
    color: #34555c;
    font: inherit;
    font-size: .7rem;
}

.checklist-items-search input {
    padding: .6rem .7rem .6rem 2.2rem;
}

.checklist-items-filter select {
    padding: .55rem .65rem;
}

.checklist-items-filter > button {
    min-height: 39px;
    padding: 0 .85rem;
    border: 0;
    border-radius: 10px;
    color: #fff;
    cursor: pointer;
    font-size: .67rem;
    font-weight: 850;
    background:
        linear-gradient(
            135deg,
            #247d73,
            #347ea3
        );
}

.checklist-items-reset {
    grid-column: 1 / -1;
    justify-self: end;
    color: #5d7479;
    font-size: .65rem;
    font-weight: 750;
    text-decoration: none;
}

.checklist-items-results {
    display: flex;
    gap: .28rem;
    align-items: baseline;
    margin-bottom: .65rem;
    color: #6d8186;
    font-size: .65rem;
}

.checklist-items-results strong {
    color: #315e62;
    font-size: .78rem;
}

.checklist-items-results span {
    color: #91a0a3;
}

.checklist-items-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: .75rem;
    padding: 1rem 0 .1rem;
}

.checklist-items-pagination a,
.checklist-items-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 35px;
    border-radius: 999px;
    font-size: .65rem;
    font-weight: 800;
}

.checklist-items-pagination a {
    padding: 0 .85rem;
    color: #fff;
    text-decoration: none;
    background:
        linear-gradient(
            135deg,
            #347f76,
            #527cad
        );
}

.checklist-items-pagination span {
    padding: 0 .75rem;
    color: #5b7479;
    background: #edf4f3;
}

.checklist-items-pagination span strong {
    margin: 0 .2rem;
    color: #315a60;
}

@media (max-width: 700px) {
    .checklist-items-filter {
        grid-template-columns: 1fr;
    }

    .checklist-items-reset {
        grid-column: auto;
        justify-self: stretch;
        text-align: center;
    }

    .checklist-items-pagination {
        flex-wrap: wrap;
    }
}


/* IDEES — RECHERCHE FILTRES PAGINATION */

.idea-filter-card {
    display: grid;
    grid-template-columns:
        minmax(225px, 1.35fr)
        minmax(135px, .62fr)
        minmax(145px, .68fr)
        minmax(135px, .62fr)
        minmax(145px, .66fr)
        auto;
    gap: .6rem;
    align-items: center;
    margin: 1rem 0 .55rem;
    padding: .8rem;
    border: 1px solid rgba(48,105,110,.16);
    border-radius: 17px;
    background:
        linear-gradient(
            135deg,
            rgba(223,244,236,.88),
            rgba(226,236,250,.84)
        );
    box-shadow:
        0 7px 18px rgba(34,76,81,.06);
}

.idea-search-field {
    position: relative;
}

.idea-search-field svg {
    position: absolute;
    top: 50%;
    left: .72rem;
    width: 16px;
    height: 16px;
    transform: translateY(-50%);
    fill: none;
    stroke: #628087;
    stroke-width: 1.8;
}

.idea-search-field input,
.idea-filter-card select {
    width: 100%;
    min-height: 40px;
    border: 1px solid rgba(73,113,118,.20);
    border-radius: 11px;
    background: rgba(255,255,255,.9);
    color: #34555c;
    font: inherit;
    font-size: .7rem;
}

.idea-search-field input {
    padding: .65rem .7rem .65rem 2.25rem;
}

.idea-filter-card select {
    padding: .55rem .65rem;
}

.idea-filter-submit,
.idea-filter-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: .55rem .8rem;
    border-radius: 11px;
    font-size: .67rem;
    font-weight: 850;
    text-decoration: none;
    white-space: nowrap;
}

.idea-filter-submit {
    border: 0;
    color: #fff;
    cursor: pointer;
    background:
        linear-gradient(
            135deg,
            #247d73,
            #347ea3
        );
}

.idea-filter-reset {
    grid-column: 1 / -1;
    justify-self: end;
    min-height: auto;
    padding: .2rem;
    color: #5d7479;
}

.idea-results-summary {
    display: flex;
    align-items: baseline;
    gap: .28rem;
    margin: 0 0 .75rem;
    color: #6d8186;
    font-size: .66rem;
}

.idea-results-summary strong {
    color: #315e62;
    font-size: .8rem;
}

.idea-results-summary span {
    color: #91a0a3;
}

.idea-filter-empty {
    grid-column: 1 / -1;
    padding: 1.1rem;
    margin-bottom: .8rem;
    border: 1px dashed rgba(72,113,118,.28);
    border-radius: 16px;
    text-align: center;
    background: rgba(255,255,255,.58);
}

.idea-filter-empty strong {
    display: block;
    color: #294f55;
    margin-bottom: .3rem;
}

.idea-filter-empty p {
    margin: 0 0 .65rem;
    color: #6f8286;
    font-size: .72rem;
}

.idea-filter-empty a {
    display: inline-flex;
    padding: .5rem .75rem;
    border-radius: 10px;
    color: #fff;
    font-size: .67rem;
    font-weight: 850;
    text-decoration: none;
    background:
        linear-gradient(
            135deg,
            #33887b,
            #477eaf
        );
}

.idea-pagination {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .8rem;
    padding: 1rem 0 .1rem;
}

.idea-pagination a,
.idea-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 35px;
    border-radius: 999px;
    font-size: .65rem;
    font-weight: 800;
}

.idea-pagination a {
    padding: 0 .85rem;
    color: #fff;
    text-decoration: none;
    background:
        linear-gradient(
            135deg,
            #347f76,
            #527cad
        );
}

.idea-pagination span {
    padding: 0 .75rem;
    color: #5b7479;
    background: #edf4f3;
}

.idea-pagination span strong {
    margin: 0 .2rem;
    color: #315a60;
}

@media (max-width: 1250px) {
    .idea-filter-card {
        grid-template-columns:
            minmax(220px, 1fr)
            repeat(2, minmax(145px, .7fr));
    }
}

@media (max-width: 700px) {
    .idea-filter-card {
        grid-template-columns: 1fr;
    }

    .idea-filter-reset {
        grid-column: auto;
        justify-self: stretch;
    }

    .idea-pagination {
        flex-wrap: wrap;
    }
}


/* IDEES — AJUSTEMENT VISUEL HERO */

.idea-hero-stack {
    gap: .65rem;
}

.idea-hero-stack span {
    flex: 0 0 auto;
    width: 48px;
    height: 48px;
    border-radius: 14px;
}

/* ===== INSCRIPTION — ACCEPTATION CGU ===== */

.auth-terms {
    margin-top: 2px;
}

.auth-terms-row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 10px;
}

.auth-form .auth-terms .auth-terms-row input[type="checkbox"] {
    flex: 0 0 18px;
    width: 18px;
    min-width: 18px;
    max-width: 18px;
    height: 18px;
    min-height: 18px;
    max-height: 18px;
    margin: 2px 0 0;
    padding: 0;
    border-radius: 4px;
    box-shadow: none;
    accent-color: #197f7a;
    cursor: pointer;
}

.auth-form .auth-terms .auth-terms-row input[type="checkbox"]:focus {
    box-shadow: 0 0 0 3px rgba(20, 107, 114, .12);
}

.auth-terms-row label {
    flex: 1 1 auto;
    margin: 0;
    color: #334d52;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.45;
    cursor: pointer;
}

.auth-terms-row a {
    color: var(--brand);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.auth-terms-row a:hover {
    text-decoration-thickness: 2px;
}

@media (max-width: 560px) {
    .auth-terms-row {
        gap: 8px;
    }

    .auth-terms-row label {
        font-size: 12px;
    }
}

/* ===== PROFIL — DONNÉES PERSONNELLES ===== */

.profile-data-card {
    grid-column: 2;
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 16px;
    align-items: center;
    border-color: rgba(23, 91, 97, .12);
    box-shadow: 0 14px 34px rgba(23, 56, 59, .07);
    background:
        linear-gradient(135deg, rgba(230, 244, 242, .8), #fff 58%);
}

.profile-data-icon {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    background: #dff2ee;
    color: #176e73;
}

.profile-data-icon svg {
    width: 27px;
    height: 27px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.profile-data-copy h2 {
    margin: 2px 0 5px;
}

.profile-data-copy p {
    margin: 0;
    color: var(--muted);
    line-height: 1.5;
    font-size: 13px;
}

.profile-data-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 17px;
    border-radius: 13px;
    background: var(--brand);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
    transition: .18s ease;
}

.profile-data-action:hover {
    background: var(--brand-dark);
    transform: translateY(-1px);
}

@media (max-width: 980px) {
    .profile-data-card {
        grid-column: 1;
    }
}

@media (max-width: 620px) {
    .profile-data-card {
        grid-template-columns: 46px 1fr;
    }

    .profile-data-icon {
        width: 46px;
        height: 46px;
    }

    .profile-data-action {
        grid-column: 1 / -1;
        width: 100%;
    }
}

/* ===== PROFIL — ACTIONS DONNÉES ===== */

.profile-data-actions {
    grid-column: 2;
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: flex-end;
    margin-top: -8px;
}

.profile-data-actions .profile-data-action,
.profile-data-actions .profile-data-danger-link {
    min-width: 190px;
}

.profile-data-danger-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 16px;
    border: 1px solid rgba(181, 58, 58, .22);
    border-radius: 13px;
    background: #fff6f5;
    color: #a73b3b;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
    transition: .18s ease;
}

.profile-data-danger-link:hover {
    background: #fdeceb;
    border-color: rgba(181, 58, 58, .38);
    transform: translateY(-1px);
}

/* ===== FERMETURE DE COMPTE ===== */

.account-close-page {
    min-height: calc(100vh - 80px);
    padding: 44px 20px;
    display: flex;
    justify-content: center;
    background:
        radial-gradient(circle at 85% 10%, rgba(224, 104, 91, .10), transparent 30%),
        radial-gradient(circle at 15% 5%, rgba(23, 110, 115, .10), transparent 34%),
        #f7faf9;
}

.account-close-card {
    width: min(760px, 100%);
    padding: 34px;
    border: 1px solid rgba(23, 91, 97, .12);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 18px 44px rgba(23, 56, 59, .09);
}

.account-close-card h1 {
    margin: 6px 0 12px;
}

.account-close-card > p {
    margin: 0 0 22px;
    color: var(--muted);
    line-height: 1.65;
}

.account-close-info,
.account-close-warning {
    margin: 18px 0;
    padding: 18px 20px;
    border-radius: 16px;
    line-height: 1.6;
}

.account-close-info {
    background: #f2f8f7;
    border: 1px solid rgba(23, 110, 115, .12);
}

.account-close-warning {
    background: #fff5f3;
    border: 1px solid rgba(181, 58, 58, .18);
    color: #7f3030;
}

.account-close-info ul,
.account-close-warning ul {
    margin: 10px 0 0;
    padding-left: 20px;
}

.account-close-form {
    margin-top: 24px;
    display: grid;
    gap: 10px;
}

.account-close-form label {
    font-weight: 800;
}

.account-close-form input[type="password"] {
    min-height: 48px;
    padding: 0 14px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fff;
}

.account-close-form input[type="password"]:focus {
    outline: none;
    border-color: #176e73;
    box-shadow: 0 0 0 3px rgba(23, 110, 115, .10);
}

.account-close-password-help {
    margin: 0 0 8px;
    color: var(--muted);
    font-size: 13px;
}

.account-close-danger {
    min-height: 48px;
    padding: 0 18px;
    border: 0;
    border-radius: 13px;
    background: #b53a3a;
    color: #fff;
    font-weight: 800;
    cursor: pointer;
}

.account-close-danger:hover {
    background: #9d3030;
}

.account-close-back {
    display: inline-flex;
    margin-top: 22px;
    color: #176e73;
    font-weight: 700;
    text-decoration: none;
}

.account-close-back:hover {
    text-decoration: underline;
}

.account-close-blocked-form {
    display: none;
}

@media (max-width: 620px) {
    .profile-data-actions {
        grid-column: 1;
        width: 100%;
        flex-direction: column;
        align-items: stretch;
        margin-top: -4px;
    }

    .profile-data-actions .profile-data-action,
    .profile-data-actions .profile-data-danger-link {
        width: 100%;
        min-width: 0;
    }

    .account-close-page {
        padding: 22px 14px;
    }

    .account-close-card {
        padding: 24px 20px;
        border-radius: 18px;
    }
}


/* ===== PROFIL — COLONNE MES DONNÉES ===== */

.profile-data-column {
    grid-area: data;
    display: grid;
    gap: 12px;
    align-self: end;
}

.profile-data-column .profile-data-card {
    grid-column: auto;
    grid-template-columns: 54px minmax(0, 1fr);
}

.profile-data-column .profile-data-actions {
    grid-column: auto;
    margin-top: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
}

.profile-data-column .profile-data-actions .profile-data-action,
.profile-data-column .profile-data-actions .profile-data-danger-link {
    width: 100%;
    min-width: 0;
}

@media (max-width: 980px) {
    .profile-data-column {
        grid-column: 1;
    }
}
