:root{--color-primary: #1f6f5c;--color-primary-dark: #165445;--color-primary-light: #e6f2ee;--color-accent: #d98a3d;--color-accent-2: #7c6fd9;--color-accent-2-light: #eeecfa;--color-bg: #f4f6f5;--color-surface: #ffffff;--color-surface-alt: #fbfaf7;--color-border: #e3e7e3;--color-border-strong: #cdd4cd;--color-text: #1c2521;--color-text-muted: #667169;--color-text-faint: #97a099;--color-danger: #b3261e;--color-danger-bg: #fbe9e7;--color-success: #1f6b28;--color-success-bg: #e4f3e4;--color-warning: #8a5300;--color-warning-bg: #fdecd2;--color-info: #164a8c;--color-info-bg: #e2edfb;--radius-sm: 6px;--radius: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(20, 30, 25, 0.06);--shadow: 0 2px 8px rgba(20, 30, 25, 0.06), 0 1px 2px rgba(20, 30, 25, 0.05);--shadow-lg: 0 12px 32px rgba(20, 30, 25, 0.12);--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-display: "Fraunces", Georgia, "Times New Roman", serif}::view-transition-old(root),::view-transition-new(root){animation-duration:.15s}.turbo-progress-bar{height:3px;background:linear-gradient(90deg, var(--color-primary), var(--color-accent))}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{margin:0;font-family:var(--font-body);background:var(--color-bg);color:var(--color-text);line-height:1.5}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-0.01em;color:var(--color-text)}h1{font-size:1.9rem;margin:0 0 4px}h2{font-size:1.3rem;margin:0 0 16px}h3{font-size:1.05rem}p{margin:0 0 10px}a{color:var(--color-primary);text-decoration:none;transition:color .15s ease}a:hover{color:var(--color-primary-dark);text-decoration:underline}ul{padding-left:20px}li{margin-bottom:6px}::selection{background:var(--color-primary-light);color:var(--color-primary-dark)}.container{max-width:1120px;margin:0 auto;padding:32px 24px 72px}.auth-main{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}body.auth-page{background:radial-gradient(circle at 15% 15%, rgba(31, 111, 92, 0.16), transparent 45%),radial-gradient(circle at 85% 85%, rgba(217, 138, 61, 0.14), transparent 45%),var(--color-bg)}.landing-main{padding:0}.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}.reveal-visible{opacity:1;transform:translateY(0)}.feature-grid>.reveal:nth-child(1){transition-delay:0ms}.feature-grid>.reveal:nth-child(2){transition-delay:70ms}.feature-grid>.reveal:nth-child(3){transition-delay:140ms}.feature-grid>.reveal:nth-child(4){transition-delay:210ms}.feature-grid>.reveal:nth-child(5){transition-delay:280ms}.feature-grid>.reveal:nth-child(6){transition-delay:350ms}.landing-why>.reveal:nth-child(1){transition-delay:0ms}.landing-why>.reveal:nth-child(2){transition-delay:100ms}.landing-why>.reveal:nth-child(3){transition-delay:200ms}.landing-header{position:sticky;top:0;z-index:20;background:rgba(13,36,30,.82);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.08)}.landing-header-inner{max-width:1120px;margin:0 auto;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.landing-header .brand-name{color:#fff}.landing-header-menu{display:contents}.landing-header-toggle{display:none;flex-direction:column;justify-content:center;gap:4px;width:36px;height:36px;padding:0;border:none;background:rgba(0,0,0,0);cursor:pointer}.landing-header-toggle span{display:block;width:100%;height:2px;border-radius:1px;background:#fff}.landing-header-links{display:flex;align-items:center;gap:24px;font-weight:500;font-size:.92rem}.landing-header-links a:not(.btn){color:rgba(244,246,245,.75)}.landing-header-links a:not(.btn):hover{color:#fff}.landing-header-links .btn-secondary{background:rgba(0,0,0,0);border-color:rgba(255,255,255,.3);color:#fff}.landing-header-links .btn-secondary:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.5);color:#fff}.landing-hero{position:relative;overflow:hidden;padding:112px 24px 122px;background:radial-gradient(circle at 12% -10%, rgba(217, 138, 61, 0.2), transparent 48%),radial-gradient(circle at 88% 8%, rgba(124, 111, 217, 0.16), transparent 42%),radial-gradient(circle at 85% 105%, rgba(159, 202, 163, 0.16), transparent 48%),linear-gradient(165deg, #081713 0%, #0d241e 38%, #123830 62%, #1f6f5c 100%)}.landing-hero::after{content:"";position:absolute;inset:0;z-index:0;opacity:.045;mix-blend-mode:overlay;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.landing-hero-blob{position:absolute;z-index:0;border-radius:50%;filter:blur(70px);pointer-events:none}.landing-hero-blob-1{width:420px;height:420px;top:-160px;left:-120px;background:rgba(217,138,61,.18)}.landing-hero-blob-2{width:380px;height:380px;bottom:-180px;right:-100px;background:rgba(159,202,163,.14)}.landing-hero-grid{position:relative;z-index:1;max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:56px}.landing-hero-copy{text-align:left}.landing-eyebrow{display:inline-flex;align-items:center;gap:7px;padding:6px 16px 6px 12px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(6px);color:#f3c98a;font-size:.76rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:26px;box-shadow:0 1px 0 rgba(255,255,255,.08) inset}.landing-eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--color-accent);box-shadow:0 0 0 3px rgba(217,138,61,.25)}.landing-hero h1{font-size:clamp(2.4rem,3.9vw,3.4rem);font-weight:500;line-height:1.12;letter-spacing:-0.015em;margin-bottom:22px;color:#fff;background:linear-gradient(135deg, #ffffff 35%, #d9e8e1 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:rgba(0,0,0,0)}.landing-lede{font-size:1.12rem;color:rgba(244,246,245,.72);max-width:480px;margin:0 0 38px;line-height:1.6}.landing-cta-row{display:flex;gap:14px;flex-wrap:wrap}.landing-hero .btn,.landing-header-links .btn:not(.btn-secondary){background:linear-gradient(135deg, #e49a4f, var(--color-accent));border-color:var(--color-accent);box-shadow:0 10px 28px -6px rgba(217,138,61,.5),0 1px 0 rgba(255,255,255,.25) inset}.landing-hero .btn:hover,.landing-header-links .btn:not(.btn-secondary):hover{background:linear-gradient(135deg, #d68b3f, #c17a2f);border-color:#c17a2f}.landing-hero .btn-secondary{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.25);color:#fff;backdrop-filter:blur(6px);box-shadow:none}.landing-hero .btn-secondary:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.5);color:#fff}.btn.btn-lg{padding:13px 26px;font-size:.95rem}.landing-hero-shot{position:relative}.landing-hero-shot::before{content:"";position:absolute;inset:-30px;z-index:0;background:radial-gradient(circle at 30% 20%, rgba(217, 138, 61, 0.32), transparent 55%),radial-gradient(circle at 75% 80%, rgba(124, 111, 217, 0.24), transparent 55%);filter:blur(36px)}.browser-frame{position:relative;z-index:1;background:var(--color-surface);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-lg);box-shadow:0 40px 80px -24px rgba(0,0,0,.55),0 12px 28px -12px rgba(0,0,0,.35),0 0 0 1px rgba(255,255,255,.08);overflow:hidden;transform:rotate(1deg);transition:transform .35s cubic-bezier(0.16, 1, 0.3, 1),box-shadow .35s ease}.browser-frame:hover{transform:rotate(0deg) scale(1.015) translateY(-2px);box-shadow:0 48px 96px -20px rgba(0,0,0,.6),0 16px 32px -10px rgba(0,0,0,.4),0 0 0 1px rgba(255,255,255,.1)}.browser-frame-bar{display:flex;gap:6px;padding:10px 14px;background:var(--color-surface-alt);border-bottom:1px solid var(--color-border)}.browser-frame-bar span{width:9px;height:9px;border-radius:50%;background:var(--color-border-strong)}.browser-frame-bar span:nth-child(1){background:#e5978e}.browser-frame-bar span:nth-child(2){background:#ecc78b}.browser-frame-bar span:nth-child(3){background:#9fcaa3}.browser-frame img,.browser-frame video{display:block;width:100%;height:auto}@media(max-width: 860px){.landing-hero-grid{grid-template-columns:1fr;text-align:center}.landing-hero-copy{text-align:center}.landing-lede{margin:0 auto 36px}.landing-cta-row{justify-content:center}.browser-frame{transform:none}.landing-header-links{gap:14px;font-size:.85rem}}.landing-section{padding:72px 24px;scroll-margin-top:80px}.landing-section-alt{background:var(--color-surface-alt);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.landing-section-inner{max-width:1120px;margin:0 auto}.landing-section-title{text-align:center;font-size:1.9rem;font-weight:500;letter-spacing:-0.01em;margin-bottom:48px}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));gap:22px}.feature-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:30px 28px;box-shadow:var(--shadow-sm);transition:transform .25s cubic-bezier(0.16, 1, 0.3, 1),box-shadow .25s ease,border-color .25s ease}.feature-card:hover{transform:translateY(-5px);box-shadow:0 24px 40px -16px rgba(20,30,25,.16);border-color:rgba(31,111,92,.2)}.feature-icon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:15px;background:linear-gradient(135deg, var(--color-primary-light), #ffffff);color:var(--color-primary-dark);box-shadow:0 6px 16px rgba(31,111,92,.16),inset 0 0 0 1px rgba(31,111,92,.1);margin-bottom:18px}.feature-icon svg{width:22px;height:22px}.feature-card h3{margin:0 0 8px;font-size:1.1rem}.feature-card p{color:var(--color-text-muted);font-size:.9rem;margin:0;line-height:1.55}.feature-grid .feature-card:nth-child(3n+2) .feature-icon,.landing-why-item:nth-child(3n+2) .feature-icon{background:linear-gradient(135deg, #fdf0e0, #ffffff);color:#a5631f;box-shadow:0 6px 16px rgba(217,138,61,.18),inset 0 0 0 1px rgba(217,138,61,.14)}.feature-grid .feature-card:nth-child(3n) .feature-icon,.landing-why-item:nth-child(3n) .feature-icon{background:linear-gradient(135deg, var(--color-accent-2-light), #ffffff);color:#5346a8;box-shadow:0 6px 16px rgba(124,111,217,.18),inset 0 0 0 1px rgba(124,111,217,.14)}.landing-why{display:grid;grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));gap:32px;text-align:center}.landing-why-item h3{margin-bottom:8px}.landing-why-item p{color:var(--color-text-muted);font-size:.9rem;margin:0}.landing-pricing{text-align:center}.pricing-card{position:relative;max-width:380px;margin:0 auto;background:radial-gradient(circle at 15% 0%, rgba(217, 138, 61, 0.08), transparent 55%),radial-gradient(circle at 100% 100%, rgba(124, 111, 217, 0.07), transparent 50%),linear-gradient(180deg, var(--color-surface) 0%, var(--color-surface-alt) 100%);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:48px 32px 38px;box-shadow:0 28px 60px -18px rgba(20,30,25,.18),var(--shadow-lg);overflow:hidden;transition:transform .3s cubic-bezier(0.16, 1, 0.3, 1)}.pricing-card:hover{transform:translateY(-3px)}.pricing-card::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg, var(--color-primary), var(--color-accent), var(--color-accent-2))}.pricing-badge{display:inline-block;padding:4px 14px;border-radius:999px;background:var(--color-primary-light);color:var(--color-primary-dark);font-size:.72rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;margin-bottom:18px}.pricing-amount{font-family:var(--font-display);font-size:3.3rem;font-weight:500;color:var(--color-primary-dark);letter-spacing:-0.01em}.pricing-period{font-size:1rem;color:var(--color-text-muted);font-weight:500;margin-left:4px}.pricing-desc{color:var(--color-text-muted);margin:14px 0 28px}.landing-showcase{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}.landing-showcase-shot .browser-frame{transform:rotate(-1deg);box-shadow:var(--shadow-lg)}.landing-showcase-shot .browser-frame:hover{transform:rotate(0deg) scale(1.01)}.landing-showcase-copy h2{font-size:1.7rem;margin-bottom:14px}.landing-showcase-copy p{color:var(--color-text-muted)}.landing-why-item .feature-icon{margin:0 auto 16px}.landing-demo{max-width:480px;text-align:center}.landing-demo-lede{color:var(--color-text-muted);margin-bottom:32px}.demo-form{text-align:left}.demo-form input[type=submit]{width:100%;justify-content:center;margin-top:6px}@media(max-width: 860px){.landing-showcase{grid-template-columns:1fr;text-align:center}.landing-showcase-shot{order:-1}}.landing-footer{text-align:center;padding:56px 24px 40px;border-top:1px solid var(--color-border);color:var(--color-text-faint);font-size:.85rem}.landing-footer-brand{display:inline-flex;align-items:center;gap:10px;margin-bottom:20px;color:var(--color-text)}.landing-footer-brand .brand-mark{width:32px;height:32px}.landing-footer-brand .brand-mark svg{width:20px;height:20px}.landing-footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 24px;margin-bottom:24px;font-size:.88rem}.landing-footer-links a{color:var(--color-text-muted);font-weight:500}.landing-footer-links a:hover{color:var(--color-primary)}.landing-footer-legal{padding-top:20px;border-top:1px solid var(--color-border)}.navbar{position:sticky;top:0;z-index:20;border-bottom:1px solid var(--color-border)}.navbar::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(255,255,255,.92);backdrop-filter:blur(8px)}.navbar-inner{max-width:1120px;margin:0 auto;display:flex;align-items:center;gap:18px;padding:12px 24px;flex-wrap:wrap}.navbar-brand{display:flex;align-items:center;gap:10px}.navbar-brand a{display:flex;align-items:center;gap:10px;color:var(--color-text)}.navbar-brand a:hover{text-decoration:none}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));color:#fff;font-family:var(--font-display);font-weight:600;font-size:.95rem;box-shadow:var(--shadow-sm);flex-shrink:0}.brand-mark svg{width:32px;height:32px}.brand-name{font-family:var(--font-display);font-weight:600;font-size:1.15rem;letter-spacing:-0.01em}.navbar-links{display:flex;align-items:center;gap:4px;flex:1;flex-wrap:wrap}.navbar-links a{color:var(--color-text-muted);font-size:.88rem;font-weight:500;padding:7px 10px;border-radius:var(--radius-sm);transition:background .15s ease,color .15s ease}.navbar-links a:hover{background:var(--color-primary-light);color:var(--color-primary-dark);text-decoration:none}.navbar-links a.active{background:var(--color-primary);color:#fff}.nav-dropdown{position:relative}.nav-dropdown summary{list-style:none;cursor:pointer;color:var(--color-text-muted);font-size:.88rem;font-weight:500;padding:7px 10px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;gap:5px;user-select:none;transition:background .15s ease,color .15s ease}.nav-dropdown summary::-webkit-details-marker{display:none}.nav-dropdown summary::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.6}.nav-dropdown summary:hover,.nav-dropdown[open] summary{background:var(--color-primary-light);color:var(--color-primary-dark)}.nav-dropdown summary.active{background:var(--color-primary);color:#fff}.nav-dropdown-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:180px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:6px;display:flex;flex-direction:column;gap:2px;z-index:30}.nav-dropdown-menu a{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--color-text);font-size:.87rem;font-weight:500;padding:8px 10px;border-radius:var(--radius-sm);white-space:nowrap}.nav-dropdown-menu a:hover{background:var(--color-primary-light);color:var(--color-primary-dark);text-decoration:none}.nav-dropdown-menu a.active{background:var(--color-primary);color:#fff}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;margin-left:6px;padding:0 4px;border-radius:999px;background:var(--color-danger);color:#fff;font-size:.68rem;font-weight:700;line-height:1}.navbar-user{display:flex;align-items:center;gap:14px}.navbar-menu{display:contents}.navbar-toggle{display:none;flex-direction:column;justify-content:center;gap:4px;width:36px;height:36px;padding:0;border:none;background:none;cursor:pointer;flex-shrink:0}.navbar-toggle span{display:block;width:100%;height:2px;border-radius:1px;background:var(--color-text)}.user-chip{display:flex;align-items:center;gap:9px}.user-avatar{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--color-primary-light);color:var(--color-primary-dark);font-size:.72rem;font-weight:700;text-transform:uppercase;flex-shrink:0}.user-info{display:flex;flex-direction:column;line-height:1.25}.user-name{font-size:.83rem;font-weight:600;color:var(--color-text)}.btn-link{background:none;border:none;padding:0;color:var(--color-text-faint);font-size:.8rem;cursor:pointer;font-family:inherit;text-decoration:underline;text-underline-offset:2px}.btn-link:hover{color:var(--color-danger)}.badge{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;width:fit-content}.badge-gestionnaire{background:var(--color-primary-light);color:var(--color-primary-dark)}.badge-occupant{background:var(--color-warning-bg);color:var(--color-warning)}.badge-super_admin{background:var(--color-danger-bg);color:var(--color-danger)}.flash{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-radius:var(--radius);margin-bottom:20px;font-size:.9rem;font-weight:500;box-shadow:var(--shadow-sm);animation:flash-in .25s ease;transition:opacity .2s ease,transform .2s ease,margin .2s ease,padding .2s ease}.flash.notice{background:var(--color-success-bg);color:var(--color-success)}.flash.alert{background:var(--color-danger-bg);color:var(--color-danger)}.flash-dismissing{opacity:0;transform:translateY(-6px);margin-bottom:0;padding-top:0;padding-bottom:0}.flash-close{flex-shrink:0;background:none;border:none;padding:0 2px;font-size:1.2rem;line-height:1;color:currentColor;opacity:.55;cursor:pointer;transition:opacity .15s ease}.flash-close:hover{opacity:1}@keyframes flash-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.page-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:24px;flex-wrap:wrap;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.page-header h1{margin:0}.page-header h2{margin:0}.tabs-nav{display:flex;gap:4px;margin-bottom:24px;border-bottom:1px solid var(--color-border);overflow-x:auto}.tabs-tab{background:none;border:none;border-bottom:2px solid rgba(0,0,0,0);padding:10px 16px;font-family:inherit;font-size:.92rem;font-weight:600;color:var(--color-text-muted);cursor:pointer;white-space:nowrap;transition:color .15s ease,border-color .15s ease}.tabs-tab:hover{color:var(--color-text)}.tabs-tab.active{color:var(--color-primary-dark);border-bottom-color:var(--color-primary)}.wizard-progress{display:flex;align-items:center;gap:10px;margin-bottom:28px}.wizard-step{display:flex;align-items:center;gap:8px;font-size:.88rem;font-weight:600;color:var(--color-text-faint);white-space:nowrap}.wizard-step-num{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;flex-shrink:0;border-radius:50%;background:var(--color-surface-alt);border:1px solid var(--color-border-strong);color:var(--color-text-muted);font-size:.78rem}.wizard-step.active{color:var(--color-text)}.wizard-step.active .wizard-step-num{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.wizard-step.done{color:var(--color-primary-dark)}.wizard-step.done .wizard-step-num{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary-dark)}.wizard-step-line{flex:1;height:1px;min-width:24px;max-width:60px;background:var(--color-border)}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;border:1px solid var(--color-primary);cursor:pointer;font-family:inherit;font-size:.87rem;font-weight:600;transition:background .15s ease,border-color .15s ease,transform .1s ease,box-shadow .15s ease;box-shadow:var(--shadow-sm)}.btn:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark);text-decoration:none;transform:translateY(-1px);box-shadow:var(--shadow)}.btn:active{transform:translateY(0)}.btn.btn-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border-strong);box-shadow:none}.btn.btn-secondary:hover{background:var(--color-surface-alt);border-color:var(--color-text-faint);color:var(--color-text)}.btn.btn-danger{background:var(--color-danger);border-color:var(--color-danger)}.btn.btn-danger:hover{background:#8f1d17;border-color:#8f1d17}.btn:focus-visible,.btn-secondary:focus-visible,.btn-link:focus-visible,input[type=submit]:focus-visible,a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn.is-loading,input[type=submit].is-loading{cursor:wait;opacity:.85}.btn.is-loading{position:relative;color:rgba(0,0,0,0) !important}.btn.is-loading::after{content:"";position:absolute;top:50%;left:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:btn-spin .6s linear infinite}.btn.btn-secondary.is-loading::after{border-color:rgba(28,37,33,.2);border-top-color:var(--color-text)}@keyframes btn-spin{to{transform:rotate(360deg)}}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;margin-bottom:20px;box-shadow:var(--shadow-sm)}.card>h2:first-child,.card>.page-header:first-child{margin-top:0}table.data-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}table.data-table th,table.data-table td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--color-border);font-size:.9rem}table.data-table th{background:var(--color-surface-alt);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}table.data-table tbody tr{transition:background .12s ease}table.data-table tbody tr:hover{background:var(--color-surface-alt)}table.data-table tr:last-child td{border-bottom:none}table.data-table .actions{display:flex;gap:8px;flex-wrap:wrap}table.data-table .actions .btn{padding:6px 12px;font-size:.8rem}form .field{position:relative;margin-bottom:18px;display:flex;flex-direction:column;gap:6px}form.inline-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}form.inline-form .field{margin-bottom:0}form label{font-weight:600;font-size:.83rem;color:var(--color-text)}form input[type=text],form input[type=email],form input[type=password],form input[type=number],form input[type=date],form select,form textarea,form input[type=file]{padding:10px 12px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:.92rem;font-family:inherit;background:var(--color-surface);color:var(--color-text);transition:border-color .15s ease,box-shadow .15s ease}form input:focus,form select:focus,form textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}form input[type=file]{padding:8px}form textarea{resize:vertical}form .field_with_errors input,form .field_with_errors select,form .field_with_errors textarea{border-color:var(--color-danger)}form .field_with_errors input:focus,form .field_with_errors select:focus,form .field_with_errors textarea:focus{box-shadow:0 0 0 3px var(--color-danger-bg)}.autocomplete-list{position:absolute;top:100%;left:0;right:0;z-index:20;margin-top:4px;max-height:220px;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);list-style:none;padding:4px}.autocomplete-list:empty{display:none}.autocomplete-list li+li{margin-top:2px}.autocomplete-list button{display:block;width:100%;padding:8px 10px;border:none;background:none;border-radius:var(--radius-sm);font-size:.88rem;font-family:inherit;color:var(--color-text);text-align:left;cursor:pointer}.autocomplete-list button:hover,.autocomplete-list button:focus-visible{background:var(--color-primary-light);outline:none}.error-explanation{background:var(--color-danger-bg);border:1px solid rgba(179,38,30,.25);border-radius:var(--radius);padding:14px 18px;margin-bottom:20px;color:var(--color-danger);font-size:.88rem}.error-explanation h2{font-family:var(--font-body);font-size:.9rem;margin:0}.actions-row{display:flex;gap:10px;margin-top:24px;align-items:center}.status-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 11px;border-radius:999px;font-size:.72rem;font-weight:700;text-transform:capitalize}.status-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status-nouvelle{background:var(--color-warning-bg);color:var(--color-warning)}.status-en_cours{background:var(--color-info-bg);color:var(--color-info)}.status-resolue,.status-fermee{background:var(--color-success-bg);color:var(--color-success)}.status-traitee{background:var(--color-success-bg);color:var(--color-success)}.status-a_payer{background:var(--color-warning-bg);color:var(--color-warning)}.status-payee{background:var(--color-success-bg);color:var(--color-success)}.status-en_retard{background:var(--color-danger-bg);color:var(--color-danger)}.status-active{background:var(--color-success-bg);color:var(--color-success)}.status-trialing{background:var(--color-info-bg);color:var(--color-info)}.status-past_due,.status-unpaid{background:var(--color-danger-bg);color:var(--color-danger)}.status-canceled,.status-incomplete,.status-incomplete_expired,.status-paused{background:var(--color-warning-bg);color:var(--color-warning)}.priority-basse{color:var(--color-text-faint)}.priority-normale{color:var(--color-text-muted)}.priority-haute{color:var(--color-accent);font-weight:600}.priority-urgente{color:var(--color-danger);font-weight:700}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));gap:16px;margin-bottom:28px}.chart-container{position:relative;height:260px;margin:8px 0 28px}.occupant-breakdown{display:flex;flex-direction:column;gap:14px}.occupant-breakdown-row{display:grid;grid-template-columns:10px 1fr auto 52px;align-items:center;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--color-border)}.occupant-breakdown-row:last-child{border-bottom:none;padding-bottom:0}.occupant-breakdown-dot{width:10px;height:10px;border-radius:50%}.occupant-breakdown-label{color:var(--color-text);font-weight:500}.occupant-breakdown-count{font-family:var(--font-display);font-size:1.3rem;font-weight:600;color:var(--color-primary-dark)}.occupant-breakdown-pct{color:var(--color-text-faint);font-size:.85rem;text-align:right}.chart-row{display:grid;grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));gap:24px;align-items:start}.chart-row .chart-container{margin:8px 0 0}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:22px;box-shadow:var(--shadow-sm);transition:transform .15s ease,box-shadow .15s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.stat-card .stat-value{font-family:var(--font-display);font-size:2.1rem;font-weight:600;color:var(--color-primary-dark);line-height:1.1}.stat-card .stat-label{color:var(--color-text-muted);font-size:.8rem;font-weight:500;margin-top:4px}#map{height:560px;border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);isolation:isolate}.map-legend{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--color-text-muted)}.map-legend .legend-dot{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--color-primary)}#occupants-map{height:420px;border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);isolation:isolate}.occupant-marker{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--color-primary);color:#fff;font-family:var(--font-body);font-size:.68rem;font-weight:700;border:2px solid var(--color-surface);box-shadow:var(--shadow);cursor:pointer;transition:transform .12s ease}.occupant-marker:hover{transform:scale(1.12)}.occupant-marker-proprietaire{background:var(--color-primary)}.occupant-marker-locataire{background:var(--color-accent)}.leaflet-popup-content-wrapper{border-radius:var(--radius);box-shadow:var(--shadow-lg)}.leaflet-popup-content{font-family:var(--font-body);margin:12px 14px}.occupant-popup .popup-title{font-family:var(--font-display);font-weight:600;font-size:1rem;margin-bottom:4px}.occupant-popup .popup-badge{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px;color:#fff}.occupant-popup .popup-badge-proprietaire{background:var(--color-primary)}.occupant-popup .popup-badge-locataire{background:var(--color-accent)}.occupant-popup .popup-row{font-size:.82rem;color:var(--color-text-muted);margin-bottom:3px}.occupant-popup .popup-link{display:inline-block;margin-top:8px;font-size:.82rem;font-weight:600}.cheque-preview{display:flex;gap:20px;align-items:flex-start;margin-bottom:20px;flex-wrap:wrap}.cheque-preview img{max-width:260px;max-height:200px;object-fit:contain;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-alt)}.cheque-preview>div{flex:1;min-width:220px}.auth-brand{display:inline-flex;align-items:center;gap:12px;margin-bottom:28px;text-decoration:none;color:var(--color-text)}.auth-brand .brand-mark{width:40px;height:40px}.auth-brand .brand-mark svg{width:24px;height:24px}.auth-card{width:100%;max-width:420px;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:32px}.auth-card h1{text-align:center;margin-bottom:22px}.auth-card .actions-row{justify-content:center;margin-bottom:4px}.auth-card .btn{width:100%;justify-content:center}.auth-card p{text-align:center;font-size:.85rem;color:var(--color-text-muted)}.auth-card p a{font-weight:600}.auth-card em{font-size:.78rem;color:var(--color-text-faint)}.empty-state{text-align:center;padding:32px 16px;color:var(--color-text-muted);font-size:.9rem}@media(max-width: 720px){.navbar-inner{position:relative;gap:12px}.navbar-toggle{display:flex}.navbar-menu{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-lg);padding:12px 16px 16px;max-height:calc(100vh - 60px);overflow-y:auto}.navbar-menu.open{display:flex}.navbar-links{flex-direction:column;align-items:stretch;width:100%;gap:2px}.nav-dropdown-menu{position:static;margin:0 0 4px 12px;box-shadow:none;border:none;padding:0}.navbar-user{flex-direction:column;align-items:stretch;gap:10px;margin-top:10px;padding-top:12px;border-top:1px solid var(--color-border)}.user-info{display:flex !important}.container{padding:20px 16px 56px}.card:has(>table.data-table){overflow-x:auto}table.data-table{min-width:540px}.page-header{align-items:flex-start}.landing-header-inner{position:relative}.landing-header-toggle{display:flex}.landing-header-menu{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:rgba(13,36,30,.97);border-bottom:1px solid rgba(255,255,255,.08);padding:12px 24px 16px}.landing-header-menu.open{display:flex}.landing-header-links{flex-direction:column;align-items:stretch;width:100%;gap:10px}}.icon{flex:none;vertical-align:-0.2em}.page-subtitle{margin:4px 0 0;color:var(--color-text-muted);font-size:.95rem}.muted{color:var(--color-text-muted)}.small{font-size:.82rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.btn.btn-icon{gap:7px}.btn.btn-sm{padding:6px 12px;font-size:.8rem}.btn-link-strong{font-weight:600;font-size:.88rem}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}form .field.field-check{flex-direction:row;align-items:center;gap:10px}form .field.field-check label{margin:0;font-weight:500}form input[type=datetime-local],form input[type=search]{padding:10px 12px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:.92rem;font-family:inherit;background:var(--color-surface);color:var(--color-text)}.field-hint{color:var(--color-text-muted);font-size:.78rem}.plain-list{list-style:none;padding:0;margin:0}.plain-list li{display:flex;align-items:center;gap:8px;margin-bottom:8px}.two-col{display:grid;grid-template-columns:minmax(0, 1fr) 320px;gap:20px;align-items:start}@media(max-width: 860px){.two-col{grid-template-columns:1fr}}.detail-card h2{font-size:1.1rem}.detail-row{display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--color-border)}.detail-row:last-child{border-bottom:none}.detail-row p{margin:0 0 6px}.detail-icon{flex:none;width:36px;height:36px;border-radius:10px;background:var(--color-primary-light);color:var(--color-primary-dark);display:inline-flex;align-items:center;justify-content:center}.detail-list{display:grid;grid-template-columns:auto 1fr;gap:10px 16px;margin:0}.detail-list dt{color:var(--color-text-muted);font-size:.82rem}.detail-list dd{margin:0;font-weight:600;font-size:.9rem}.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.chip-filter{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;background:var(--color-surface);border:1px solid var(--color-border-strong);color:var(--color-text);font-size:.85rem;font-weight:600;transition:all .15s ease}.chip-filter span{background:var(--color-bg);border-radius:999px;padding:1px 8px;font-size:.75rem;color:var(--color-text-muted)}.chip-filter:hover{text-decoration:none;border-color:var(--color-primary);color:var(--color-primary-dark)}.chip-filter.is-active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.chip-filter.is-active span{background:rgba(255,255,255,.22);color:#fff}.search-bar{display:flex;align-items:center;gap:10px;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius);padding:6px 8px 6px 14px;margin-bottom:14px;color:var(--color-text-muted)}.search-bar input[type=search]{flex:1;border:none !important;box-shadow:none !important;padding:8px 4px;background:rgba(0,0,0,0)}.cal-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;margin-bottom:16px}.cal-nav{display:flex;align-items:center;gap:10px}.cal-title{margin:0;font-size:1.5rem;min-width:190px;text-align:center}.cal-nav-btn{width:38px;height:38px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--color-surface);border:1px solid var(--color-border-strong);color:var(--color-text);transition:all .15s ease}.cal-nav-btn:hover{background:var(--color-primary-light);color:var(--color-primary-dark);text-decoration:none}.cal-filters{display:flex;flex-wrap:wrap;gap:8px}.cal-filter{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;cursor:pointer;background:var(--color-surface);border:1px solid var(--color-border-strong);color:var(--color-text-muted);font:inherit;font-size:.8rem;font-weight:600;transition:all .15s ease}.cal-filter-dot{width:9px;height:9px;border-radius:50%;background:var(--kind-color);opacity:.35;transition:opacity .15s ease}.cal-filter.is-on{color:var(--color-text);border-color:var(--kind-color);background:color-mix(in srgb, var(--kind-color) 9%, #fff)}.cal-filter.is-on .cal-filter-dot{opacity:1}.cal-layout{display:grid;grid-template-columns:minmax(0, 1fr) 330px;gap:20px;align-items:start}@media(max-width: 1000px){.cal-layout{grid-template-columns:1fr}}.cal-card{padding:0;overflow:hidden;margin-bottom:0}.cal-weekdays{display:grid;grid-template-columns:repeat(7, 1fr);background:var(--color-surface-alt);border-bottom:1px solid var(--color-border)}.cal-weekdays div{padding:10px 8px;text-align:center;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.cal-grid{display:grid;grid-template-columns:repeat(7, minmax(0, 1fr))}.cal-day{min-height:118px;padding:6px 6px 8px;border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:4px;cursor:pointer;transition:background .12s ease;position:relative}.cal-day:nth-child(7n){border-right:none}.cal-day:hover{background:var(--color-surface-alt)}.cal-day.is-weekend{background:#fcfcfa}.cal-day.is-outside{background:#f8f9f8}.cal-day.is-outside .cal-day-num{color:var(--color-text-faint)}.cal-day.is-selected{box-shadow:inset 0 0 0 2px var(--color-primary)}.cal-day-head{display:flex;justify-content:space-between;align-items:center;min-height:26px}.cal-day-num{font-size:.85rem;font-weight:700;color:var(--color-text);display:inline-flex;align-items:baseline;gap:4px;padding:1px 7px;border-radius:999px}.cal-day-num small{font-weight:600;color:var(--color-text-muted);text-transform:uppercase;font-size:.66rem}.cal-day.is-today .cal-day-num{background:var(--color-primary);color:#fff}.cal-day.is-today .cal-day-num small{color:rgba(255,255,255,.85)}.cal-add{opacity:0;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--color-primary-light);color:var(--color-primary-dark);transition:opacity .12s ease}.cal-day:hover .cal-add,.cal-add:focus-visible{opacity:1}.cal-add:hover{text-decoration:none;background:var(--color-primary);color:#fff}.cal-events{display:flex;flex-direction:column;gap:3px;min-width:0}.cal-pill{display:flex;align-items:center;gap:5px;min-width:0;padding:2px 7px;border-radius:6px;font-size:.74rem;font-weight:600;line-height:1.35;color:color-mix(in srgb, var(--kind-color) 70%, #000);background:color-mix(in srgb, var(--kind-color) 13%, #fff);border-left:3px solid var(--kind-color);transition:transform .1s ease,background .12s ease}.cal-pill:hover{text-decoration:none;background:color-mix(in srgb, var(--kind-color) 24%, #fff);transform:translateX(1px)}.cal-pill.is-alert{background:color-mix(in srgb, var(--kind-color) 22%, #fff)}.cal-pill-dot{display:none;width:7px;height:7px;border-radius:50%;background:var(--kind-color)}.cal-pill-time{font-variant-numeric:tabular-nums;opacity:.8;flex:none}.cal-pill-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-pill.is-filtered,.cal-pill.is-overflow{display:none}.cal-more{font-size:.7rem;font-weight:700;color:var(--color-text-muted);padding:0 4px}.cal-agenda{padding:20px;margin-bottom:0;max-height:760px;overflow-y:auto;position:sticky;top:76px}.cal-agenda-title{display:flex;align-items:center;gap:8px;font-size:1.05rem;margin:0 0 14px}.cal-agenda-day{display:grid;grid-template-columns:46px 1fr;gap:12px;padding:10px 6px;border-radius:var(--radius);transition:background .2s ease}.cal-agenda-day+.cal-agenda-day{border-top:1px solid var(--color-border)}.cal-agenda-day.is-selected{background:var(--color-primary-light)}.cal-agenda-day.is-past{opacity:.6}.cal-agenda-date{display:flex;flex-direction:column;align-items:center;line-height:1.1}.cal-agenda-num{font-family:var(--font-display);font-weight:600;font-size:1.5rem;color:var(--color-text)}.cal-agenda-day.is-today .cal-agenda-num{color:var(--color-primary)}.cal-agenda-wd{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-weight:700}.cal-agenda-list{display:flex;flex-direction:column;gap:6px;min-width:0}.cal-agenda-item{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:var(--radius);background:color-mix(in srgb, var(--kind-color) 9%, #fff);border-left:3px solid var(--kind-color);color:var(--color-text)}.cal-agenda-item:hover{text-decoration:none;background:color-mix(in srgb, var(--kind-color) 17%, #fff);color:var(--color-text)}.cal-agenda-item[hidden]{display:none}.cal-agenda-item.is-alert{box-shadow:0 0 0 1px color-mix(in srgb, var(--kind-color) 45%, transparent)}.cal-agenda-icon{color:var(--kind-color);padding-top:1px}.cal-agenda-body{display:flex;flex-direction:column;min-width:0}.cal-agenda-body strong{font-size:.88rem;line-height:1.3}.cal-agenda-body small{color:var(--color-text-muted);font-size:.76rem}@media(max-width: 720px){.cal-title{min-width:0;font-size:1.25rem}.cal-day{min-height:54px;padding:4px 2px;align-items:center}.cal-day-head{justify-content:center}.cal-add{display:none}.cal-events{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:3px}.cal-pill{padding:0;width:8px;height:8px;border-radius:50%;border:none;background:var(--kind-color)}.cal-pill-text,.cal-pill-time{display:none}.cal-more{display:none}.cal-agenda{position:static;max-height:none}.cal-weekdays div{padding:8px 2px;font-size:.66rem}}.notif-dropdown summary.notif-bell{position:relative;width:38px;height:38px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-muted);list-style:none}.notif-dropdown summary.notif-bell::-webkit-details-marker{display:none}.notif-dropdown summary.notif-bell::after{display:none}.notif-dropdown summary.notif-bell:hover,.notif-dropdown[open] summary.notif-bell{background:var(--color-primary-light);color:var(--color-primary-dark)}.notif-count{position:absolute;top:1px;right:0;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--color-danger);color:#fff;font-size:.68rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--color-surface)}.nav-dropdown-menu.notif-menu{width:360px;max-width:calc(100vw - 24px);right:0;left:auto;padding:0;max-height:70vh;overflow-y:auto}.notif-menu-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px 10px;border-bottom:1px solid var(--color-border);position:sticky;top:0;background:var(--color-surface)}.notif-readall{font-size:.78rem}.notif-menu form,.notif-page form{margin:0}button.notif-item{display:flex;gap:12px;align-items:flex-start;width:100%;padding:12px 16px;border:none;border-bottom:1px solid var(--color-border);background:var(--color-surface);text-align:left;cursor:pointer;font:inherit;color:var(--color-text);transition:background .12s ease}button.notif-item:hover{background:var(--color-surface-alt)}button.notif-item.is-unread{background:color-mix(in srgb, var(--color-primary) 6%, #fff)}button.notif-item.is-unread .notif-text strong::after{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--color-primary);margin-left:8px}.notif-icon{flex:none;width:34px;height:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-primary-light);color:var(--color-primary-dark)}.notif-kind-demande{background:var(--color-info-bg);color:var(--color-info)}.notif-kind-travaux{background:var(--color-warning-bg);color:var(--color-warning)}.notif-kind-assemblee{background:var(--color-accent-2-light);color:#5a4cc0}.notif-kind-cotisation{background:var(--color-danger-bg);color:var(--color-danger)}.notif-kind-paiement{background:var(--color-success-bg);color:var(--color-success)}.notif-text{display:flex;flex-direction:column;gap:2px;min-width:0}.notif-text strong{font-size:.88rem;line-height:1.3}.notif-text small{color:var(--color-text-muted);font-size:.8rem}.notif-text em{font-style:normal;color:var(--color-text-faint);font-size:.74rem}.notif-empty{padding:28px 16px;text-align:center;color:var(--color-text-muted);margin:0}.notif-all{display:block;padding:12px 16px;text-align:center;font-weight:600;font-size:.86rem;position:sticky;bottom:0;background:var(--color-surface);border-top:1px solid var(--color-border)}.notif-page{padding:0;overflow:hidden}.notif-page .empty-state{padding:40px 24px}@media(max-width: 760px){.nav-dropdown-menu.notif-menu{position:fixed;top:64px;right:12px;left:12px;width:auto}}.tracker-card{padding:28px 32px 22px}.tracker{list-style:none;display:grid;grid-template-columns:repeat(4, 1fr);margin:0;padding:0;position:relative}.tracker::before{content:"";position:absolute;left:12.5%;right:12.5%;top:17px;height:4px;border-radius:2px;background:var(--color-border)}.tracker::after{content:"";position:absolute;left:12.5%;top:17px;height:4px;border-radius:2px;background:var(--color-primary);width:calc(75%*var(--progress)/var(--steps));transition:width .5s ease}.tracker-step{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:8px;margin:0}.tracker-dot{width:38px;height:38px;border-radius:50%;background:var(--color-surface);border:3px solid var(--color-border);display:inline-flex;align-items:center;justify-content:center;color:#fff;transition:all .3s ease}.tracker-step.is-reached .tracker-dot{background:var(--color-primary);border-color:var(--color-primary)}.tracker-step.is-current .tracker-dot{box-shadow:0 0 0 6px var(--color-primary-light)}.tracker-label{font-size:.85rem;font-weight:600;color:var(--color-text-muted)}.tracker-step.is-reached .tracker-label{color:var(--color-primary-dark)}.tracker-note{display:flex;align-items:center;gap:8px;justify-content:center;margin:18px 0 0;color:var(--color-text-muted);font-size:.9rem}.mini-tracker{display:inline-flex;gap:4px;align-items:center}.mini-tracker i{width:18px;height:6px;border-radius:3px;background:var(--color-border)}.mini-tracker i.is-reached{background:var(--color-primary)}.priority-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--color-border-strong);margin-right:4px}.priority-dot-haute{background:var(--color-accent)}.priority-dot-urgente{background:var(--color-danger);box-shadow:0 0 0 3px var(--color-danger-bg)}.priority-dot-basse{background:var(--color-text-faint)}.timeline{list-style:none;margin:0 0 18px;padding:0 0 0 4px;position:relative}.timeline::before{content:"";position:absolute;left:19px;top:8px;bottom:8px;width:2px;background:var(--color-border)}.timeline-item{display:flex;gap:14px;margin:0 0 14px;position:relative}.timeline-icon{flex:none;z-index:1;width:30px;height:30px;border-radius:50%;background:var(--color-primary-light);color:var(--color-primary-dark);display:inline-flex;align-items:center;justify-content:center;border:3px solid var(--color-surface);box-sizing:content-box;margin:-3px}.timeline-statut .timeline-icon{background:var(--color-success-bg);color:var(--color-success)}.timeline-priorite .timeline-icon{background:var(--color-warning-bg);color:var(--color-warning)}.timeline-assignation .timeline-icon{background:var(--color-accent-2-light);color:#5a4cc0}.timeline-planification .timeline-icon{background:var(--color-info-bg);color:var(--color-info)}.timeline-commentaire .timeline-icon{background:var(--color-primary);color:#fff}.timeline-body{flex:1;min-width:0;padding-top:4px}.timeline-meta{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;font-size:.9rem}.timeline-meta span{color:var(--color-text-faint);font-size:.78rem}.timeline-comment{margin-top:6px;padding:10px 14px;background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:4px 14px 14px 14px}.timeline-comment p{margin:0 0 6px}.timeline-comment p:last-child{margin-bottom:0}.timeline-form{display:flex;gap:10px;align-items:flex-end;border-top:1px solid var(--color-border);padding-top:16px}.timeline-form textarea{flex:1;padding:10px 12px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font:inherit;resize:vertical}.timeline-form textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.work-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(290px, 1fr));gap:16px}.work-card{display:block;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:18px 20px;color:var(--color-text);box-shadow:var(--shadow-sm);transition:transform .15s ease,box-shadow .15s ease;border-top:4px solid var(--color-accent)}.work-card:hover{text-decoration:none;transform:translateY(-2px);box-shadow:var(--shadow);color:var(--color-text)}.work-card.work-en_cours{border-top-color:var(--color-info)}.work-card.work-terminee{border-top-color:var(--color-success);opacity:.85}.work-card h3{margin:12px 0 2px;font-size:1.1rem}.work-card p{margin:0 0 6px}.work-card-top{display:flex;justify-content:space-between;align-items:center}.work-date{display:inline-flex;flex-direction:column;align-items:center;line-height:1;padding:8px 12px;border-radius:12px;background:var(--color-warning-bg);color:var(--color-warning)}.work-date b{font-family:var(--font-display);font-size:1.5rem}.work-date small{font-size:.68rem;text-transform:uppercase;font-weight:700;letter-spacing:.05em;margin-top:2px}.work-planning{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--color-text-muted)}.work-notified{display:flex;align-items:center;gap:6px;font-size:.82rem;font-weight:600;color:var(--color-warning);padding-top:8px;border-top:1px dashed var(--color-border);margin-top:6px !important}.work-notified.is-done{color:var(--color-success)}.ag-stats{display:grid;grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));gap:14px;margin-bottom:16px}.ag-stat{display:flex;gap:12px;align-items:center;padding:12px 14px;background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius)}.ag-stat-icon{flex:none;width:38px;height:38px;border-radius:11px;background:var(--color-accent-2-light);color:#5a4cc0;display:inline-flex;align-items:center;justify-content:center}.ag-stat strong{display:block;font-size:.92rem;line-height:1.25}.ag-stat small{color:var(--color-text-muted);font-size:.78rem}.doc-list{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.doc-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 18px;border-bottom:1px solid var(--color-border);transition:background .12s ease;flex-wrap:wrap}.doc-row:last-child{border-bottom:none}.doc-row:hover{background:var(--color-surface-alt)}.doc-main{display:flex;align-items:center;gap:14px;color:var(--color-text);min-width:0;flex:1}.doc-main:hover{text-decoration:none;color:var(--color-text)}.doc-icon{flex:none;width:42px;height:42px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-primary-light);color:var(--color-primary-dark)}.doc-reglement{background:var(--color-danger-bg);color:var(--color-danger)}.doc-pv_assemblee{background:var(--color-accent-2-light);color:#5a4cc0}.doc-facture{background:var(--color-warning-bg);color:var(--color-warning)}.doc-contrat{background:var(--color-info-bg);color:var(--color-info)}.doc-text{display:flex;flex-direction:column;min-width:0}.doc-text small{color:var(--color-text-muted);font-size:.78rem}.doc-actions{display:flex;gap:6px;flex-wrap:wrap}.day-panel{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1.2fr);gap:20px;margin-bottom:8px}@media(max-width: 900px){.day-panel{grid-template-columns:1fr}}.day-panel .card{margin-bottom:20px}.day-todo h2,.day-agenda h2{display:flex;align-items:center;gap:9px;font-size:1.15rem}.day-todo h2 .icon{color:var(--color-accent)}.todo-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.todo-list li{display:flex;align-items:center;gap:12px;margin:0;padding:9px 4px;border-bottom:1px dashed var(--color-border)}.todo-list li:last-child{border-bottom:none}.todo-list a{color:var(--color-text);font-weight:500}.todo-list strong{font-family:var(--font-display);font-size:1.1rem}.todo-list small{color:var(--color-text-faint);white-space:nowrap}.todo-list li{flex-wrap:wrap}.todo-mark{flex:none;width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--color-border-strong);color:rgba(0,0,0,0)}.todo-done .todo-mark{background:var(--color-success);border-color:var(--color-success);color:#fff}.todo-done a{color:var(--color-text-muted)}.todo-open .todo-mark{border-color:var(--color-accent);color:var(--color-accent)}.todo-urgent .todo-mark{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.todo-urgent a{color:var(--color-danger)}.day-win{display:flex;align-items:center;gap:8px;margin:14px 0 0;padding:10px 14px;border-radius:var(--radius);background:var(--color-success-bg);color:var(--color-success);font-size:.88rem;font-weight:600}.mini-agenda{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.mini-agenda li{margin:0}.mini-agenda-item{display:flex;align-items:center;gap:14px;padding:9px 12px;border-radius:var(--radius);background:color-mix(in srgb, var(--kind-color) 8%, #fff);border-left:4px solid var(--kind-color);color:var(--color-text);transition:transform .12s ease,background .12s ease}.mini-agenda-item:hover{text-decoration:none;color:var(--color-text);background:color-mix(in srgb, var(--kind-color) 16%, #fff);transform:translateX(2px)}.mini-agenda-date{flex:none;width:44px;display:flex;flex-direction:column;align-items:center;line-height:1}.mini-agenda-date b{font-family:var(--font-display);font-size:1.35rem;color:color-mix(in srgb, var(--kind-color) 75%, #000)}.mini-agenda-date small{font-size:.66rem;text-transform:uppercase;font-weight:700;color:var(--color-text-muted);margin-top:2px}.mini-agenda-body{flex:1;display:flex;flex-direction:column;min-width:0}.mini-agenda-body strong{font-size:.9rem;line-height:1.3}.mini-agenda-body small{color:var(--color-text-muted);font-size:.78rem}.mini-agenda-kind{color:var(--kind-color);flex:none}.stat-card.stat-link{display:block;color:inherit;position:relative}.stat-card.stat-link:hover{text-decoration:none}.stat-icon{position:absolute;top:18px;right:18px;width:38px;height:38px;border-radius:11px;background:var(--color-primary-light);color:var(--color-primary-dark);display:inline-flex;align-items:center;justify-content:center}.space-tiles{display:grid;grid-template-columns:repeat(auto-fit, minmax(230px, 1fr));gap:16px;margin-bottom:20px}.space-tile{display:flex;align-items:center;gap:16px;padding:20px;border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);color:var(--color-text);transition:transform .15s ease,box-shadow .15s ease}.space-tile:hover{text-decoration:none;transform:translateY(-2px);box-shadow:var(--shadow);color:var(--color-text)}.space-tile strong{display:block;font-family:var(--font-display);font-size:1.15rem}.space-tile span:not(.space-tile-icon){color:var(--color-text-muted);font-size:.9rem;font-weight:500}.space-tile-icon{flex:none;width:54px;height:54px;border-radius:16px;display:inline-flex;align-items:center;justify-content:center}.tile-violet{background:var(--color-accent-2-light);color:#5a4cc0}.tile-green{background:var(--color-primary-light);color:var(--color-primary-dark)}.tile-amber{background:var(--color-warning-bg);color:var(--color-warning)}.locale-switcher{display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:999px;background:var(--color-bg);border:1px solid var(--color-border)}.locale-switcher a{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.05em;color:var(--color-text-muted)}.locale-switcher a:hover{text-decoration:none;color:var(--color-primary-dark);background:var(--color-primary-light)}.locale-switcher a.is-active{background:var(--color-primary);color:#fff}.locale-switcher-landing{background:rgba(0,0,0,0)}.locale-switcher-auth{display:flex;width:fit-content;margin:0 auto 18px;background:var(--color-surface)}@media(max-width: 760px){.navbar-user .locale-switcher{align-self:flex-start}}.inbox{list-style:none;margin:12px 0 0;padding:0}.inbox-row{border-top:1px solid var(--color-border)}.inbox-row:first-child{border-top:0}.inbox-link{display:flex;align-items:center;gap:14px;padding:12px 6px;color:inherit;text-decoration:none;border-radius:var(--radius-sm)}a.inbox-link:hover{background:var(--color-surface-alt);text-decoration:none}.inbox-icon{flex:none;width:38px;height:38px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--color-primary-light);color:var(--color-primary-dark)}.inbox-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.inbox-title{font-weight:600}.inbox-row.unread .inbox-title{color:var(--color-primary-dark)}.inbox-excerpt{color:var(--color-text-muted);font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inbox-row.unread .inbox-excerpt{color:var(--color-text);font-weight:500}.inbox-meta{flex:none;display:flex;align-items:center;gap:10px;color:var(--color-text-faint);font-size:.8rem}.inbox-dot{width:10px;height:10px;border-radius:50%;background:var(--color-accent)}.chat-messages{display:flex;flex-direction:column;gap:8px;padding:4px 0 16px}.chat-day{text-align:center;margin:10px 0 2px}.chat-day span{font-size:.75rem;color:var(--color-text-muted);background:var(--color-surface-alt);border:1px solid var(--color-border);padding:3px 12px;border-radius:999px}.chat-message{display:flex}.chat-message.mine{justify-content:flex-end}.chat-bubble{max-width:min(560px,85%);padding:9px 14px;border-radius:16px;background:var(--color-surface-alt);border:1px solid var(--color-border)}.chat-message.mine .chat-bubble{background:var(--color-primary-light);border-color:#cfe5de}.chat-bubble p{margin:0 0 4px;overflow-wrap:anywhere}.chat-author{font-size:.78rem;font-weight:600;color:var(--color-primary-dark);margin-bottom:2px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.chat-meta{display:flex;align-items:center;gap:12px;justify-content:flex-end;font-size:.72rem;color:var(--color-text-faint)}.chat-meta form{display:inline}.chat-action{font-size:.72rem;color:var(--color-text-muted)}.chat-removed{font-style:italic;color:var(--color-text-faint)}.chat-message.removed .chat-bubble{background:rgba(0,0,0,0);border-style:dashed}.chat-form{display:flex;gap:10px;align-items:flex-end;border-top:1px solid var(--color-border);padding-top:14px}.chat-form textarea{flex:1;padding:10px 12px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font:inherit;resize:vertical;min-height:44px}.chat .muted{margin:10px 0 0;font-size:.85rem}.checkbox-line{display:flex;align-items:center;gap:10px;font-weight:600;cursor:pointer}.checkbox-line input{width:auto}.preference-form .muted{margin:6px 0 0 28px;font-size:.85rem}.report-quote{margin:10px 0 14px;padding:8px 16px;border-left:4px solid var(--color-accent);background:var(--color-surface-alt);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.report-quote p{margin:0}.notif-kind-message{background:var(--color-primary-light);color:var(--color-primary-dark)}@media(max-width: 640px){.chat-form{flex-direction:column;align-items:stretch}.chat-bubble{max-width:94%}.inbox-meta span:first-child{display:none}}.flag{display:block;flex:none;border-radius:3px;box-shadow:0 0 0 1px rgba(0,0,0,.12)}.locale-menu summary{padding:8px 10px}.locale-menu .nav-dropdown-menu{left:auto;right:0;min-width:160px}.locale-option{display:inline-flex;align-items:center;gap:10px}@media(min-width: 861px){.navbar-staff .navbar-user .user-info{display:none}}@media(min-width: 861px)and (max-width: 1120px){.navbar-inner{gap:10px;padding-left:14px;padding-right:14px}.navbar-user{gap:8px}.navbar-links a,.nav-dropdown summary{font-size:.82rem;padding:7px 7px}.navbar-brand .brand-name{display:none}}
