@import "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,600;12..96,700;12..96,800&family=Figtree:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--ink:#0c1d13;--ink-2:#122619;--ink-3:#1a3322;--ink-line:#ebf4e917;--ink-text:#e9f1e6;--ink-muted:#8fa695;--paper:#f2f1ea;--card:#fff;--card-2:#faf9f4;--sunken:#ecebe2;--line:#e2e0d4;--line-strong:#d0cebf;--green:#44af2b;--green-deep:#2f7d1b;--green-bright:#62c83e;--pink:#e84a9b;--pink-deep:#c22b7e;--rose:#ff5e79;--magenta:#d6198a;--coral:#f2503e;--amber:#ed8b00;--danger:#d32f2f;--text:#1a2b20;--text-soft:#3d5245;--muted:#6d7a6e;--faint:#9aa396;--grad-brand:linear-gradient(120deg, #ff5e79 0%, #d6198a 46%, #44af2b 100%);--grad-green:linear-gradient(135deg, #62c83e 0%, #379422 100%);--grad-pink:linear-gradient(135deg, #ff5e79 0%, #c22b7e 100%);--dots-green:linear-gradient(#44af2b, #44af2b) 0 0 / 8px 8px no-repeat, linear-gradient(#44af2b, #44af2b) 14px 8px / 6px 6px no-repeat, linear-gradient(#62c83e, #62c83e) 4px 18px / 5px 5px no-repeat, linear-gradient(#44af2b, #44af2b) 18px 20px / 4px 4px no-repeat;--r-xs:6px;--r-sm:9px;--r-md:12px;--r-lg:16px;--r-pill:999px;--shadow-xs:0 1px 2px #1422180d;--shadow-sm:0 1px 3px #14221812, 0 1px 2px #1422180a;--shadow-md:0 10px 28px -12px #14221838;--shadow-lg:0 24px 56px -20px #0c1d1359;--font-display:"Bricolage Grotesque", "Figtree", system-ui, sans-serif;--font-ui:"Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--ease:cubic-bezier(.22, 1, .36, 1);--dur:.18s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-ui);color:var(--text);background-color:var(--paper);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;min-height:100vh;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-display);color:var(--text);letter-spacing:-.015em;font-weight:700;line-height:1.1}h1{font-size:clamp(1.55rem,1.2rem + 1.4vw,2.05rem)}h2{font-size:1.35rem}h3{font-size:1.08rem}a{color:inherit}::selection{color:var(--text);background:#d6198a29}:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:4px}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:var(--r-pill);background-clip:content-box;border:3px solid #0000}@keyframes mg-fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes mg-pop{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes mg-slide-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.shell{grid-template-columns:256px 1fr;min-height:100vh;display:grid}.side{background:radial-gradient(28rem 20rem at -30% -10%, #d6198a24, transparent 60%), radial-gradient(26rem 22rem at 130% 110%, #44af2b29, transparent 60%), var(--ink);height:100vh;color:var(--ink-text);flex-direction:column;padding:1.1rem .9rem 1rem;display:flex;position:sticky;top:0;overflow-y:auto}.side:after{content:"";background:var(--grad-brand);opacity:.75;pointer-events:none;width:2px;position:fixed;top:0;bottom:0;left:255px}.side-logo{border-radius:var(--r-md);box-shadow:var(--shadow-sm);background:#fff;justify-content:center;align-items:center;margin-bottom:1.4rem;padding:.7rem .9rem;display:flex}.side-logo img{width:auto;height:46px;display:block}.side-section{text-transform:uppercase;letter-spacing:.16em;color:var(--ink-muted);padding:.9rem .8rem .45rem;font-size:.62rem;font-weight:800}.side-nav{flex-direction:column;gap:2px;list-style:none;display:flex}.side-link{border-radius:var(--r-sm);color:var(--ink-text);opacity:.72;transition:opacity var(--dur) var(--ease), background-color var(--dur) var(--ease);align-items:center;gap:.7rem;padding:.62rem .8rem;font-size:.88rem;font-weight:600;text-decoration:none;display:flex;position:relative}.side-link svg{opacity:.85;flex-shrink:0}.side-link:hover{opacity:1;background:var(--ink-2)}.side-link.active{opacity:1;background:var(--ink-3);font-weight:700}.side-link.active:before{content:"";background:var(--grad-brand);border-radius:0 3px 3px 0;width:3px;position:absolute;top:20%;bottom:20%;left:-.9rem}.side-foot{border-top:1px solid var(--ink-line);align-items:center;gap:.6rem;margin-top:auto;padding-top:1rem;display:flex}.side-user{color:var(--ink-text);border-radius:var(--r-sm);min-width:0;transition:background-color var(--dur) var(--ease);flex:1;align-items:center;gap:.6rem;padding:.45rem .5rem;text-decoration:none;display:flex}.side-user:hover{background:var(--ink-2)}.side-avatar{border-radius:var(--r-sm);background:var(--grad-brand);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:.78rem;font-weight:800;display:flex}.side-user-name{white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-weight:700;overflow:hidden}.side-user-role{color:var(--ink-muted);font-size:.68rem;font-weight:600}.side-logout{border:1px solid var(--ink-line);color:var(--ink-muted);border-radius:var(--r-sm);cursor:pointer;width:34px;height:34px;transition:color var(--dur) var(--ease), border-color var(--dur) var(--ease), background-color var(--dur) var(--ease);background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.side-logout:hover{color:#fff;border-color:var(--pink);background:#e84a9b2e}.canvas{min-width:0;animation:mg-fade-up .35s var(--ease) both;padding:2rem 2.4rem 3.5rem}.canvas-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.25rem;margin-bottom:1.75rem;display:flex}.canvas-eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--pink-deep);margin-bottom:.3rem;font-size:.68rem;font-weight:800}.canvas-head h1{margin:0}.canvas-sub{color:var(--muted);margin-top:.25rem;font-weight:500}.canvas-actions{flex-wrap:wrap;gap:.6rem;display:flex}.auth-split{grid-template-columns:minmax(380px,44%) 1fr;min-height:100vh;display:grid}.auth-brand{background:radial-gradient(34rem 26rem at -20% -10%, #d6198a38, transparent 62%), radial-gradient(30rem 26rem at 120% 115%, #44af2b3d, transparent 62%), var(--ink);color:var(--ink-text);flex-direction:column;justify-content:space-between;padding:2.5rem 2.75rem;display:flex;position:relative;overflow:hidden}.auth-brand:after{content:"";opacity:.9;background-color:#0000;background-image:linear-gradient(#44af2b,#44af2b),linear-gradient(#62c83e,#62c83e),linear-gradient(#44af2b,#44af2b),linear-gradient(#e84a9b,#e84a9b),linear-gradient(#d6198a,#d6198a),linear-gradient(#44af2b,#44af2b),linear-gradient(#ff5e79,#ff5e79);background-position:84px 6px,62px 30px,92px 40px,40px 58px,70px 70px,20px 84px,50px 96px;background-repeat:no-repeat;background-size:14px 14px,10px 10px,8px 8px,12px 12px,8px 8px,9px 9px,6px 6px;background-attachment:scroll,scroll,scroll,scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box,border-box,border-box,border-box;width:120px;height:120px;position:absolute;bottom:2.4rem;right:2.4rem}.auth-brand-logo{border-radius:var(--r-md);box-shadow:var(--shadow-md);background:#fff;align-self:flex-start;padding:.8rem 1rem;display:inline-flex}.auth-brand-logo img{width:auto;height:52px;display:block}.auth-brand-copy h2{font-family:var(--font-display);color:#fff;letter-spacing:-.02em;text-wrap:balance;max-width:16ch;font-size:clamp(1.7rem,1.2rem + 2vw,2.5rem);font-weight:800;line-height:1.08}.auth-brand-copy h2 em{background:var(--grad-brand);color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.auth-brand-copy p{color:var(--ink-muted);max-width:38ch;margin-top:.9rem;font-weight:500}.auth-brand-foot{color:var(--ink-muted);letter-spacing:.04em;font-size:.75rem;font-weight:600}.auth-panel{background:var(--paper);justify-content:center;align-items:center;padding:2.5rem 1.75rem;display:flex}.login-form{width:100%;max-width:380px;animation:mg-fade-up .4s var(--ease) both;flex-direction:column;gap:.55rem;display:flex}.login-form h1{margin-bottom:.2rem}.login-form label{color:var(--text-soft);margin-top:.75rem;font-size:.8rem;font-weight:700}.login-form input{border:1.5px solid var(--line-strong);border-radius:var(--r-sm);background:var(--card);color:var(--text);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);padding:.78rem .9rem;font-family:inherit;font-size:.95rem}.login-form input:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 4px #44af2b26}.login-form button{background:var(--ink);color:#fff;border-radius:var(--r-sm);cursor:pointer;transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);border:none;margin-top:1.1rem;padding:.82rem;font-family:inherit;font-size:.95rem;font-weight:700;position:relative;overflow:hidden}.login-form button[type=submit]:after{content:"";background:var(--grad-brand);height:3px;position:absolute;bottom:0;left:0;right:0}.login-form button:hover:not(:disabled){box-shadow:var(--shadow-md);transform:translateY(-2px)}.login-form button:active:not(:disabled){transform:translateY(0)}.login-form button:disabled{opacity:.6;cursor:default}.login-form button[type=button]{color:var(--text-soft);background:0 0;margin-top:.35rem;font-size:.85rem;font-weight:600}.login-form button[type=button]:after{display:none}.login-form button[type=button]:hover:not(:disabled){color:var(--pink-deep);box-shadow:none;text-decoration:underline;transform:none}.login-error{color:var(--pink-deep);border-radius:var(--r-xs);background:#d6198a12;border:1px solid #d6198a38;padding:.55rem .75rem;font-size:.85rem;font-weight:600}.login-success{color:var(--green-deep);border-radius:var(--r-xs);background:#44af2b17;border:1px solid #44af2b40;padding:.55rem .75rem;font-size:.85rem;font-weight:600}.overview-hero{border-radius:var(--r-lg);background:radial-gradient(30rem 18rem at 85% -30%, #d6198a47, transparent 62%), radial-gradient(26rem 18rem at -10% 130%, #44af2b4d, transparent 62%), var(--ink);color:#fff;margin-bottom:1.5rem;padding:2.1rem 2.3rem;position:relative;overflow:hidden}.overview-hero:after{content:"";opacity:.85;background-color:#0000;background-image:linear-gradient(#62c83e,#62c83e),linear-gradient(#44af2b,#44af2b),linear-gradient(#e84a9b,#e84a9b),linear-gradient(#d6198a,#d6198a),linear-gradient(#ff5e79,#ff5e79);background-position:62px 2px,44px 22px,70px 34px,28px 44px,54px 58px;background-repeat:no-repeat;background-size:12px 12px,8px 8px,9px 9px,11px 11px,7px 7px;background-attachment:scroll,scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box,border-box;width:90px;height:90px;position:absolute;top:1.6rem;right:1.8rem}.overview-hero h1{color:#fff;margin:0 0 .35rem;font-size:clamp(1.7rem,1.3rem + 1.6vw,2.35rem);font-weight:800}.overview-hero p{color:var(--ink-muted);margin:0;font-weight:600}.stat-row{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.stat-tile{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);color:var(--text);box-shadow:var(--shadow-xs);transition:border-color var(--dur) var(--ease), transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);padding:1.15rem 1.3rem;text-decoration:none;display:block}.stat-tile:hover{box-shadow:var(--shadow-md);border-color:var(--line-strong);transform:translateY(-3px)}.stat-label{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);align-items:center;gap:.45rem;font-size:.72rem;font-weight:800;display:flex}.stat-dot{border-radius:2px;flex-shrink:0;width:8px;height:8px}.stat-dot.green{background:var(--green)}.stat-dot.pink{background:var(--pink)}.stat-dot.sage{background:var(--faint)}.stat-value{font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:.35rem;font-size:2.3rem;font-weight:800;line-height:1.1}.stat-hint{color:var(--faint);font-size:.78rem;font-weight:600}.quick-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;display:grid}.quick-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);min-height:172px;color:var(--text);box-shadow:var(--shadow-xs);transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);flex-direction:column;gap:.5rem;padding:1.5rem;text-decoration:none;display:flex;position:relative;overflow:hidden}.quick-card:before{content:"";width:4px;position:absolute;top:0;bottom:0;left:0}.quick-card.q-green:before{background:var(--grad-green)}.quick-card.q-brand:before{background:var(--grad-brand)}.quick-card.q-ink:before{background:var(--ink)}.quick-card:hover{box-shadow:var(--shadow-md);border-color:var(--line-strong);transform:translateY(-3px)}.quick-icon{border-radius:var(--r-sm);justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:.3rem;display:flex}.q-green .quick-icon{color:var(--green-deep);background:#44af2b21}.q-brand .quick-icon{color:var(--pink-deep);background:linear-gradient(135deg,#e84a9b26,#44af2b26)}.q-ink .quick-icon{color:var(--ink);background:#0c1d1314}.quick-card h2{margin:0;font-size:1.15rem}.quick-card p{color:var(--muted);margin:0;font-size:.88rem;line-height:1.5}.quick-cta{margin-top:auto;font-size:.85rem;font-weight:800}.q-green .quick-cta{color:var(--green-deep)}.q-brand .quick-cta{color:var(--pink-deep)}.q-ink .quick-cta{color:var(--ink)}.quick-tag{background:var(--grad-brand);color:#fff;letter-spacing:.08em;text-transform:uppercase;border-radius:var(--r-pill);padding:.2rem .55rem;font-size:.6rem;font-weight:800;position:absolute;top:.9rem;right:.9rem}.seg-tabs{background:var(--sunken);border:1px solid var(--line);border-radius:var(--r-md);gap:3px;margin-bottom:1.4rem;padding:4px;display:inline-flex}.seg-tab{border-radius:var(--r-sm);color:var(--muted);white-space:nowrap;transition:color var(--dur) var(--ease), background-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);padding:.5rem 1.15rem;font-size:.85rem;font-weight:700;text-decoration:none}.seg-tab:hover{color:var(--text)}.seg-tab.active{background:var(--card);color:var(--text);box-shadow:var(--shadow-sm)}.seg-count{color:var(--green-deep);border-radius:var(--r-pill);font-variant-numeric:tabular-nums;background:#44af2b24;margin-left:.45rem;padding:.05rem .5rem;font-size:.7rem;font-weight:800;display:inline-block}.status-badge,.badge-pill{border-radius:var(--r-pill);letter-spacing:.02em;white-space:nowrap;padding:.3rem .75rem;font-size:.72rem;font-weight:800;display:inline-block}.status-en-cours{color:var(--green-deep);background:#44af2b24}.status-termine{background:var(--sunken);color:var(--text-soft)}.status-abandonne{color:var(--danger);background:#d32f2f1a}.status-en-attente{color:var(--pink-deep);background:#e84a9b21}.badge-presentiel{color:var(--green-deep);background:#44af2b24}.badge-distance{color:var(--pink-deep);background:#e84a9b21}.badge-individuel{color:var(--text-soft);background:#0c1d1312}.badge-groupe{color:var(--coral);background:#f2503e1a}.badge-stagiaire{background:var(--sunken);color:var(--text-soft)}.badge-entreprise{color:var(--text-soft);background:#0c1d1317}.badge-admin{color:var(--green-deep);background:#44af2b24;align-items:center;gap:.35rem;display:inline-flex}.badge-admin:before{content:"";background:var(--grad-green);border-radius:2px;width:7px;height:7px}.profile-link{text-decoration:none}.formation-badges{flex-wrap:wrap;gap:.4rem;margin:.6rem 0 1rem;display:flex}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-xs);padding:1.6rem 1.75rem}.panel+.panel{margin-top:1.25rem}.panel>h2{align-items:center;gap:.55rem;margin-bottom:1.2rem;font-size:1.15rem;display:flex}.panel>h2:before{content:"";background:var(--grad-brand);border-radius:3px;flex-shrink:0;width:10px;height:10px}.btn-primary,.btn-secondary,.btn-danger{border-radius:var(--r-sm);cursor:pointer;transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), filter var(--dur) var(--ease), background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);border:none;justify-content:center;align-items:center;gap:.4rem;padding:.6rem 1.35rem;font-family:inherit;font-size:.86rem;font-weight:700;line-height:1.2;text-decoration:none;display:inline-flex}.btn-primary{background:var(--grad-green);color:#fff;box-shadow:0 8px 18px -8px #2f7d1b80}.btn-primary:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-2px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.55;cursor:default;box-shadow:none}.btn-secondary{background:var(--card);color:var(--text);border:1.5px solid var(--line-strong)}.btn-secondary:hover:not(:disabled){border-color:var(--green);color:var(--green-deep)}.btn-secondary:disabled{opacity:.55;cursor:default}.btn-danger{background:var(--card);color:var(--danger);border:1.5px solid #d32f2f73}.btn-danger:hover{background:var(--danger);color:#fff;border-color:var(--danger)}.product-actions{flex-wrap:wrap;gap:.7rem;margin:1.4rem 0;display:flex}.add-client-btn{margin:0}.logout-btn{background:var(--grad-pink);color:#fff;border-radius:var(--r-pill);cursor:pointer;transition:transform var(--dur) var(--ease), filter var(--dur) var(--ease);border:none;padding:.52rem 1.2rem;font-family:inherit;font-size:.8rem;font-weight:700;box-shadow:0 8px 18px -8px #c22b7e80}.logout-btn:hover{filter:brightness(1.05);transform:translateY(-1px)}.back-link{color:var(--text-soft);transition:color var(--dur) var(--ease);align-items:center;gap:.35rem;margin-bottom:1.2rem;font-size:.88rem;font-weight:700;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--pink-deep)}.modal-hint{color:var(--muted);margin-bottom:.75rem;font-size:.83rem;line-height:1.5}.modal-warning{color:#8a5200;border-radius:var(--r-xs);background:#f0a0141a;border:1px solid #f0a01452;margin-bottom:.9rem;padding:.65rem .8rem;font-size:.85rem;font-weight:600;line-height:1.5}.confirm-recap{gap:.4rem;margin:0 0 1rem;display:grid}.confirm-recap>div{align-items:baseline;gap:.6rem;display:flex}.confirm-recap dt{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;flex:0 0 5.5rem;font-size:.78rem}.confirm-recap dd{word-break:break-word;margin:0;font-size:.9rem;font-weight:600}.edit-form{flex-direction:column;gap:.35rem;max-width:440px;display:flex}.edit-form label{color:var(--text-soft);margin-top:.9rem;font-size:.8rem;font-weight:700;display:block}.required-star{color:var(--coral);font-weight:700}.edit-form input,.edit-form select,.modal-content input{border:1.5px solid var(--line-strong);border-radius:var(--r-sm);background:var(--card);color:var(--text);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);padding:.62rem .75rem;font-family:inherit;font-size:.92rem}.edit-form input:focus,.edit-form select:focus,.modal-content input:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 4px #44af2b21}.edit-form input:disabled{background:var(--sunken);color:var(--muted);cursor:not-allowed}.clients-grid{text-align:left;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1.15rem;display:grid}.client-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-xs);color:var(--text);transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);animation:mg-fade-up .35s var(--ease) both;padding:1.4rem 1.4rem 1.25rem;text-decoration:none;display:block;position:relative;overflow:hidden}.client-card:before{content:"";background:var(--grad-brand);opacity:0;height:4px;transition:opacity var(--dur) var(--ease);position:absolute;top:0;left:0;right:0}.client-card:hover{box-shadow:var(--shadow-md);border-color:var(--line-strong);transform:translateY(-3px)}.client-card:hover:before{opacity:1}.client-card h3{margin:0 0 .5rem;font-size:1.1rem}.client-formation{color:var(--green-deep);margin:.2rem 0;font-size:.87rem;font-weight:700}.client-email,.client-phone,.client-date{color:var(--muted);margin:.25rem 0;font-size:.84rem}.card-actions{border-top:1px solid var(--line);gap:.5rem;margin-top:1rem;padding-top:.85rem;display:flex}.card-actions button{border-radius:var(--r-xs);border:1.5px solid var(--line-strong);background:var(--card);color:var(--text);cursor:pointer;transition:border-color var(--dur) var(--ease), color var(--dur) var(--ease), background-color var(--dur) var(--ease);flex:1;padding:.45rem .6rem;font-family:inherit;font-size:.78rem;font-weight:700}.card-actions button:hover{border-color:var(--green);color:var(--green-deep);background:#44af2b0f}.btn-delete-action{color:var(--danger)!important;border-color:#d32f2f66!important}.btn-delete-action:hover{background-color:var(--danger)!important;color:#fff!important;border-color:var(--danger)!important}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;animation:mg-fade-up .18s var(--ease) both;background:#0c1d1380;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal-content{background:var(--card);border-radius:var(--r-lg);width:100%;max-width:440px;max-height:88vh;box-shadow:var(--shadow-lg);animation:mg-pop .24s var(--ease) both;padding:2rem;position:relative;overflow-y:auto}.modal-content:before{content:"";background:var(--grad-brand);height:4px;position:absolute;top:0;left:0;right:0}.modal-content h2{margin-bottom:.6rem}.info-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.15rem 1.75rem;margin:1.3rem 0 1.6rem;display:grid}.info-field{flex-direction:column;gap:.3rem;min-width:0;display:flex}.info-field-label{text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-size:.68rem;font-weight:800}.info-field-value{color:var(--text);overflow-wrap:anywhere;font-size:.98rem;font-weight:600}.info-field-value a{color:var(--green-deep);text-decoration:none}.info-field-value a:hover{text-decoration:underline}.loading-screen{min-height:100vh;color:var(--muted);justify-content:center;align-items:center;gap:.7rem;font-weight:600;display:flex}.loading-screen:before{content:"";border:3px solid var(--line-strong);border-top-color:var(--pink);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite mg-spin}@keyframes mg-spin{to{transform:rotate(360deg)}}.cat-block+.cat-block{margin-top:2.1rem}.cat-head{border-bottom:1px solid var(--line);align-items:center;gap:.75rem;margin-bottom:.95rem;padding-bottom:.6rem;display:flex}.cat-swatch{background:var(--green);border-radius:3px;flex-shrink:0;width:12px;height:12px}.cat-head h2{flex-shrink:0;margin:0;font-size:1.12rem}.cat-count{color:var(--muted);background:var(--sunken);border-radius:var(--r-pill);font-variant-numeric:tabular-nums;padding:.1rem .55rem;font-size:.72rem;font-weight:800}.cat-head-actions{opacity:0;transition:opacity var(--dur) var(--ease);gap:.35rem;margin-left:auto;display:flex}.cat-block:hover .cat-head-actions,.cat-head-actions:focus-within{opacity:1}.icon-btn{color:var(--muted);border-radius:var(--r-xs);cursor:pointer;transition:all var(--dur) var(--ease);background:0 0;border:1px solid #0000;align-items:center;gap:.3rem;padding:.28rem .45rem;font-family:inherit;font-size:.76rem;font-weight:700;display:inline-flex}.icon-btn:hover{background:var(--card);border-color:var(--line);color:var(--text)}.icon-btn.danger:hover{color:var(--danger);background:#d32f2f17;border-color:#d32f2f40}.list-grid{grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:1rem;display:grid}.list-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-xs);color:inherit;transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);animation:mg-fade-up .3s var(--ease) both;flex-direction:column;gap:.7rem;padding:1.15rem 1.2rem 1.05rem;text-decoration:none;display:flex;position:relative;overflow:hidden}.list-card:before{content:"";background:var(--accent,var(--green));opacity:.9;width:3px;position:absolute;inset:0 auto 0 0}.list-card:hover{box-shadow:var(--shadow-md);border-color:var(--line-strong);transform:translateY(-2px)}.list-card.archived{opacity:.72}.list-card.archived:before{background:var(--line-strong)}.list-card-top{align-items:flex-start;gap:.6rem;display:flex}.list-card h3{overflow-wrap:anywhere;flex:1;min-width:0;margin:0;font-size:1.04rem}.list-card-desc{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.84rem;line-height:1.45;display:-webkit-box;overflow:hidden}.progress-track{border-radius:var(--r-pill);background:var(--sunken);height:6px;overflow:hidden}.progress-fill{border-radius:var(--r-pill);background:var(--grad-green);height:100%;transition:width .35s var(--ease)}.progress-fill.complete{background:var(--grad-brand)}.list-card-foot{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:.6rem;font-size:.78rem;font-weight:700;display:flex}.task-board{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-xs);overflow:hidden}.task-add{border-bottom:1px solid var(--line);background:var(--card-2);gap:.6rem;padding:.95rem 1.15rem;display:flex}.task-add input{border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--card);min-width:0;color:var(--text);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);flex:1;padding:.62rem .85rem;font-family:inherit;font-size:.94rem}.task-add input:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 3px #44af2b24}.task-row{border-bottom:1px solid var(--line);transition:background var(--dur) var(--ease);animation:mg-slide-in .22s var(--ease) both;align-items:flex-start;gap:.85rem;padding:.85rem 1.15rem;display:flex}.task-row:last-child{border-bottom:none}.task-row:hover{background:var(--card-2)}.task-check{border:2px solid var(--line-strong);border-radius:var(--r-xs);background:var(--card);cursor:pointer;color:#fff;width:20px;height:20px;transition:all var(--dur) var(--ease);flex-shrink:0;place-items:center;margin-top:.1rem;padding:0;display:grid}.task-check:hover{border-color:var(--green)}.task-check svg{opacity:0;transition:all var(--dur) var(--ease);transform:scale(.6)}.task-check.checked{border-color:var(--green-deep);background:var(--grad-green)}.task-check.checked svg{opacity:1;transform:scale(1)}.task-body{flex:1;min-width:0}.task-title{text-align:left;cursor:pointer;width:100%;color:var(--text);overflow-wrap:anywhere;transition:color var(--dur) var(--ease);background:0 0;border:none;padding:0;font-family:inherit;font-size:.95rem;font-weight:600;display:block}.task-title:hover{color:var(--green-deep);text-decoration:underline}.task-row.done .task-title{color:var(--faint);text-decoration:line-through;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong)}.task-meta{color:var(--faint);margin-top:.2rem;font-size:.74rem;font-weight:600}.task-meta strong{color:var(--muted);font-weight:800}.task-del{color:var(--faint);cursor:pointer;border-radius:var(--r-xs);opacity:0;transition:all var(--dur) var(--ease);background:0 0;border:none;flex-shrink:0;padding:.3rem;line-height:0}.task-row:hover .task-del,.task-del:focus-visible{opacity:1}.task-del:hover{color:var(--danger);background:#d32f2f1a}.empty-state{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:.5rem;padding:2.6rem 1.5rem;display:flex}.empty-state-icon{border-radius:var(--r-md);background:var(--sunken);width:46px;height:46px;color:var(--faint);place-items:center;margin-bottom:.25rem;display:grid}.empty-state h3{margin:0;font-size:1rem}.empty-state p{max-width:42ch;margin:0;font-size:.87rem;line-height:1.5}.swatch-row{flex-wrap:wrap;gap:.5rem;margin-bottom:.9rem;display:flex}.swatch-btn{border-radius:var(--r-sm);cursor:pointer;width:30px;height:30px;transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);border:2px solid #0000;padding:0}.swatch-btn:hover{transform:scale(1.08)}.swatch-btn.selected{border-color:var(--text);box-shadow:0 0 0 2px var(--card) inset}.live-dot{text-transform:uppercase;letter-spacing:.08em;color:var(--green-deep);align-items:center;gap:.4rem;font-size:.72rem;font-weight:800;display:inline-flex}.live-dot:before{content:"";background:var(--green);width:7px;height:7px;animation:mg-pulse 2s var(--ease) infinite;border-radius:50%;box-shadow:0 0 #44af2b8c}@keyframes mg-pulse{70%{box-shadow:0 0 0 7px #44af2b00}to{box-shadow:0 0 #44af2b00}}@media (width<=960px){.auth-split{grid-template-columns:1fr}.auth-brand{min-height:240px;padding:1.75rem}.auth-brand-copy{margin:1.25rem 0}.auth-brand:after{display:none}}@media (width<=860px){.shell{grid-template-columns:1fr}.side{flex-direction:row;align-items:center;gap:.5rem;height:auto;padding:.7rem 1rem;position:static;overflow-x:auto}.side:after{display:none}.side-logo{flex-shrink:0;margin-bottom:0;padding:.4rem .6rem}.side-logo img{height:30px}.side-section{display:none}.side-nav{flex-direction:row;gap:.25rem}.side-link{white-space:nowrap;padding:.5rem .7rem}.side-link.active:before,.side-link span{display:none}.side-foot{border-top:none;flex-shrink:0;margin-top:0;margin-left:auto;padding-top:0}.side-user-name,.side-user-role{display:none}.canvas{padding:1.5rem 1.15rem 3rem}.seg-tabs{max-width:100%;overflow-x:auto}.cat-head-actions,.task-del{opacity:1}}@media (width<=560px){.canvas-head,.product-actions{flex-direction:column;align-items:stretch}.product-actions .btn-primary,.product-actions .btn-secondary,.product-actions .btn-danger{width:100%}.task-add{flex-direction:column}}@media (prefers-reduced-motion:reduce){.loading-screen:before,.live-dot:before{animation:none}}.task-badges{flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.35rem;display:flex}.task-chip{border-radius:var(--r-pill);background:var(--sunken);border:1px solid var(--line);color:var(--muted);white-space:nowrap;align-items:center;gap:.3rem;padding:.12rem .5rem;font-size:.72rem;font-weight:700;line-height:1.6;display:inline-flex}.task-chip svg{opacity:.8;flex-shrink:0}.task-chip.en-retard{color:var(--danger);background:#d32f2f1a;border-color:#d32f2f47}.task-avatar{background:var(--grad-green);color:#fff;letter-spacing:.02em;border-radius:50%;place-items:center;width:15px;height:15px;font-size:.52rem;font-weight:800;display:grid}.task-row.done .task-badges{opacity:.55}.prio-basse{background:var(--sunken);color:var(--muted)}.prio-haute{color:#b36a00;background:#ed8b0024}.prio-urgente{color:var(--danger);background:#d32f2f1f}.modal-large{width:100%;max-width:680px;max-height:88vh;overflow-y:auto}.edit-form textarea{border:1.5px solid var(--line-strong);border-radius:var(--r-sm);background:var(--card);color:var(--text);resize:vertical;min-height:92px;transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);padding:.62rem .75rem;font-family:inherit;font-size:.92rem;line-height:1.55}.edit-form textarea:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 4px #44af2b21}.field-row{grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:.9rem;display:grid}.field-row>div{flex-direction:column;min-width:0;display:flex}.field-row label{margin-top:.9rem}.field-row input,.field-row select{width:100%}.lien-list{border:1px solid var(--line);border-radius:var(--r-md);margin:.45rem 0 0;padding:0;list-style:none;overflow:hidden}.lien-row{border-bottom:1px solid var(--line);background:var(--card);align-items:center;gap:.55rem;min-width:0;padding:.55rem .75rem;display:flex}.lien-row:last-child{border-bottom:none}.lien-row:hover{background:var(--card-2)}.lien-row>svg{color:var(--faint);flex-shrink:0}.lien-row a{color:var(--green-deep);white-space:nowrap;font-size:.88rem;font-weight:700;text-decoration:none}.lien-row a:hover{text-decoration:underline}.lien-url{min-width:0;color:var(--faint);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.74rem;overflow:hidden}.lien-row .icon-btn{flex-shrink:0}.lien-add{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) auto;gap:.5rem;margin-top:.55rem;display:grid}.lien-add .btn-secondary{white-space:nowrap}@media (width<=620px){.lien-add{grid-template-columns:1fr}.lien-row{flex-wrap:wrap}.lien-url{flex-basis:100%}}
