.pwa-offline-banner{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem .75rem;padding-left:max(.75rem,env(safe-area-inset-left));padding-right:max(.75rem,env(safe-area-inset-right));background:#fff3e0;color:#5d4037;border-bottom:1px solid #ffcc80;font-size:.85rem;line-height:1.35;z-index:98}.pwa-offline-banner__dot{flex-shrink:0;width:8px;height:8px;margin-top:.35rem;border-radius:50%;background:#ef6c00;box-shadow:0 0 0 2px #ef6c0040}.connection-toast{position:fixed;bottom:max(1rem,env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);z-index:2100;display:flex;align-items:center;gap:.5rem;padding:.65rem 1.1rem;background:var(--color-success, #2e7d32);color:#fff;border-radius:999px;font-size:.9rem;font-weight:500;box-shadow:0 4px 20px #0000002e;animation:connection-toast-in .35s ease-out}.connection-toast__icon{display:flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border-radius:50%;background:#ffffff40;font-size:.75rem;line-height:1}@keyframes connection-toast-in{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(prefers-reduced-motion:reduce){.connection-toast{animation:none}}.pwa-promo-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem;animation:pwaPromoFadeIn .2s ease}@keyframes pwaPromoFadeIn{0%{opacity:0}to{opacity:1}}.pwa-promo-modal{position:relative;background:var(--color-bg-card, #fff);border-radius:16px;box-shadow:0 12px 40px #0003;max-width:380px;width:100%;padding:1.5rem 1.25rem;animation:pwaPromoSlideIn .25s ease}@keyframes pwaPromoSlideIn{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.pwa-promo-close{position:absolute;top:.75rem;right:.75rem;width:36px;height:36px;padding:0;border:none;background:transparent;border-radius:8px;color:var(--color-text-muted, #666);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.pwa-promo-close:hover{background:var(--color-primary-light, rgba(26, 58, 82, .08));color:var(--color-text, #333)}.pwa-promo-title{margin:0 2rem .5rem 0;font-size:1.25rem;font-weight:700;color:var(--color-text, #1a1a1a);line-height:1.3}.pwa-promo-text{margin:0 0 1.5rem;font-size:.95rem;line-height:1.5;color:var(--color-text-muted, #555)}.pwa-promo-actions{display:flex;flex-direction:column;gap:.75rem}.pwa-promo-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.85rem 1rem;font-size:.95rem;font-weight:600;border-radius:10px;border:none;cursor:pointer;transition:background .15s,color .15s,opacity .15s}.pwa-promo-btn:disabled{opacity:.7;cursor:not-allowed}.pwa-promo-btn-primary{background:var(--color-primary, #1a3a52);color:#fff}.pwa-promo-btn-primary:hover:not(:disabled){background:var(--color-primary-dark, #132d42)}.pwa-promo-btn-secondary{background:var(--color-primary-light, rgba(26, 58, 82, .1));color:var(--color-primary, #1a3a52)}.pwa-promo-btn-secondary:hover:not(:disabled){background:var(--color-primary-light, rgba(26, 58, 82, .18))}.pwa-promo-btn-ghost{background:transparent;color:var(--color-text-muted, #666);font-weight:500}.pwa-promo-btn-ghost:hover{background:#0000000d;color:var(--color-text, #333)}.pwa-promo-ios-hint{margin:0;padding:.75rem 1rem;font-size:.85rem;line-height:1.45;color:var(--color-text-muted, #555);background:var(--color-bg-subtle, #f5f5f5);border-radius:8px}.pwa-promo-ios-hint strong{color:var(--color-text, #333)}.pwa-promo-feedback{margin:.25rem 0 0;padding:.65rem .8rem;font-size:.85rem;line-height:1.45;color:var(--color-text-muted, #555);background:var(--color-bg-subtle, #f5f5f5);border-radius:8px}.layout{height:100%;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--color-bg, #f5f5f5);--layout-dock-stack: calc(env(safe-area-inset-bottom, 0px) + 1.25rem + 42px) }.layout-dropdown-anchors{position:absolute;width:0;height:0;overflow:visible;pointer-events:none;left:0;top:0;z-index:1250}.layout-dropdown-anchors .layout-bento-dropdown,.layout-dropdown-anchors .layout-notifications-dropdown{pointer-events:auto}.layout-content{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;overflow-y:auto;overscroll-behavior-y:auto;-webkit-overflow-scrolling:touch;padding-top:env(safe-area-inset-top,0px)}.layout-desktop-sidebar{display:none}@media(min-width:1001px){.layout-desktop-sidebar{display:flex;position:fixed;top:0;padding-top:env(safe-area-inset-top,0px);left:0;bottom:0;width:56px;background:var(--color-primary, #1a3a52);z-index:101;flex-direction:column;padding:.5rem 0;overflow-y:auto;overflow-x:hidden;transition:width .2s ease}.layout-desktop-sidebar:hover{width:220px}.layout-desktop-sidebar .layout-nav-inner{gap:0;min-width:56px;flex:1 1 auto;overflow-y:auto}.layout-desktop-sidebar .layout-nav-footer{flex-shrink:0;margin-top:auto;border-top:1px solid rgba(255,255,255,.15)}.layout-desktop-sidebar .layout-nav-footer a{display:flex;align-items:center;justify-content:center;min-width:56px;width:100%;height:48px;padding:0;color:var(--color-on-primary, #fff);text-decoration:none;border-left:3px solid transparent;box-sizing:border-box;position:relative;opacity:.95}.layout-desktop-sidebar:hover .layout-nav-footer a{justify-content:flex-start;padding-left:.5rem;padding-right:.5rem}.layout-desktop-sidebar .layout-nav-footer a:hover{background:#0000001a;color:var(--color-on-primary, #fff);opacity:1}.layout-desktop-sidebar .layout-nav-footer a.active{background:#00000026;color:var(--color-on-primary, #fff);border-left-color:currentColor;opacity:1}.layout-desktop-sidebar .layout-nav-footer .layout-nav-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;min-width:44px}.layout-desktop-sidebar .layout-nav-footer .layout-nav-label{font-size:.95rem;white-space:nowrap;max-width:0;overflow:hidden;opacity:0;transition:max-width .2s ease,opacity .2s ease}.layout-desktop-sidebar:hover .layout-nav-footer .layout-nav-label{max-width:150px;opacity:1;padding-left:.5rem}.layout-desktop-sidebar a{display:flex;align-items:center;justify-content:center;min-width:56px;width:100%;height:48px;padding:0;color:#ffffffe6;text-decoration:none;border-left:3px solid transparent;flex-shrink:0;box-sizing:border-box;position:relative}.layout-desktop-sidebar:hover a{justify-content:flex-start;padding-left:.5rem;padding-right:.5rem}.layout-desktop-sidebar .layout-nav-badge{position:absolute;top:6px;right:6px;margin-left:0}.layout-desktop-sidebar:hover .layout-nav-badge{position:static;margin-left:auto}.layout-desktop-sidebar a:hover{background:#ffffff1a;color:#fff}.layout-desktop-sidebar a.active{background:#ffffff26;color:#fff;border-left-color:#fff}.layout-desktop-sidebar .layout-nav-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;min-width:44px}.layout-desktop-sidebar .layout-nav-label{font-size:.95rem;white-space:nowrap;max-width:0;overflow:hidden;opacity:0;transition:max-width .2s ease,opacity .2s ease}.layout-desktop-sidebar:hover .layout-nav-label{max-width:150px;opacity:1;padding-left:.5rem}.layout-desktop-sidebar .layout-nav-separator{height:1px;min-height:1px;background:#fff3;margin:.35rem .5rem;flex-shrink:0}.layout-desktop-sidebar .layout-nav-group{gap:0}.layout-desktop-sidebar .layout-nav-group .layout-nav-sub{justify-content:flex-start;min-width:56px;height:40px;padding-left:.5rem;padding-right:.5rem}.layout-desktop-sidebar .layout-nav-group .layout-nav-sub .layout-nav-label{max-width:0;overflow:hidden;opacity:0;transition:max-width .2s ease,opacity .2s ease}.layout-desktop-sidebar:hover .layout-nav-group .layout-nav-sub .layout-nav-label{max-width:150px;opacity:1}.layout-desktop-sidebar:not(:hover) .layout-nav-group .layout-nav-sub{max-height:0;min-height:0;padding-top:0;padding-bottom:0;overflow:hidden;opacity:0}.layout-content{margin-left:56px}.layout-nav.layout-nav-drawer{display:none}}.layout-page-transition{animation:layout-page-fade-in .22s ease-out}@keyframes layout-page-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.layout-page-transition{animation:none}}.layout-nav.layout-nav-drawer{position:fixed;top:0;left:0;width:280px;max-width:85vw;height:100vh;height:100dvh;background:var(--color-primary, #1a3a52);padding:0;transform:translate(-100%);transition:transform .25s ease,box-shadow .25s ease;z-index:1100;overflow:hidden;display:flex;flex-direction:column}.layout-drawer-head{flex-shrink:0;display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;padding-top:max(.75rem,env(safe-area-inset-top,0px));border-bottom:1px solid rgba(255,255,255,.12)}.layout-drawer-head-logo{max-height:32px;width:auto;object-fit:contain;flex-shrink:0}.layout-drawer-head-title{font-weight:700;font-size:1rem;color:var(--color-on-primary, #fff);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.layout-nav-drawer .layout-nav-inner{flex:1 1 auto;overflow-y:auto}.layout-nav-drawer .layout-nav-footer{flex-shrink:0;border-top:1px solid rgba(255,255,255,.15);padding:.5rem 0 0;margin-top:.5rem}.layout-nav-drawer .layout-nav-footer a{display:flex;align-items:center;gap:.75rem;padding:.65rem 1.25rem;min-height:44px;color:var(--color-on-primary, #fff);text-decoration:none;border-left:3px solid transparent}.layout-nav.layout-nav-drawer.layout-nav-open{transform:translate(0);box-shadow:4px 0 20px #0003}.layout-nav-inner{display:flex;flex-direction:column;gap:.25rem}.layout-nav a{display:flex;align-items:center;gap:.75rem;color:var(--color-on-primary, #fff);text-decoration:none;padding:.65rem 1.25rem;min-height:44px;font-size:.95rem;border-radius:0;border-left:3px solid transparent;box-sizing:border-box;opacity:.95}.layout-nav a:hover{background:#0000001a;color:var(--color-on-primary, #fff);opacity:1}.layout-nav a.active{color:var(--color-on-primary, #fff);border-left-color:currentColor;opacity:1}.layout-nav-separator{height:1px;background:#fff3;margin:.5rem 1rem;flex-shrink:0}.layout-nav-group{display:flex;flex-direction:column;gap:0}.layout-nav-group .layout-nav-sub{display:flex;align-items:center;padding-left:calc(2rem + 22px);padding-right:1.25rem;min-height:40px;font-size:.9rem;color:#ffffffd9;text-decoration:none;border-left:3px solid transparent;box-sizing:border-box}.layout-nav-group .layout-nav-sub:hover{background:#ffffff1a;color:#fff}.layout-nav-group .layout-nav-sub.active{background:#ffffff26;color:#fff;border-left-color:#fff}.layout-nav-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:.95}.layout-nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .35rem;margin-left:auto;font-size:.7rem;font-weight:700;line-height:1;color:#fff;background:var(--color-accent, #c4a35a);border-radius:10px;flex-shrink:0}.layout-nav-icon .icon{display:block}.layout-overlay{position:fixed;inset:0;background:#0006;z-index:1098;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.layout-bento{position:relative}.layout-bento-trigger{display:flex;align-items:center;justify-content:center;width:48px;height:48px;min-width:48px;min-height:48px;padding:0;background:transparent;border:none;color:var(--color-on-primary, #fff);cursor:pointer;border-radius:6px}.layout-bento-trigger:hover{background:#0000001a;color:var(--color-on-primary, #fff)}.layout-bento-dropdown{position:fixed;top:auto;left:50%;transform:translate(-50%);bottom:var(--layout-dock-stack, calc(env(safe-area-inset-bottom, 0px) + 3.5rem) );margin-top:0;width:min(420px,calc(100vw - 1rem));min-width:min(220px,calc(100vw - 1rem));max-height:min(65vh,calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 8rem));overflow-y:auto;background:var(--color-bg-card, #fff);border:1px solid var(--color-border, #ddd);border-radius:8px;box-shadow:0 8px 24px #0000001f;z-index:1;padding:.5rem 0}.layout-bento-title{padding:.5rem 1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--color-text-muted, #666);border-bottom:1px solid var(--color-border, #eee)}.layout-bento-item{display:flex;align-items:center;gap:.6rem;padding:.6rem 1rem;color:var(--color-text, #333);text-decoration:none;font-size:.95rem;transition:background .15s}.layout-bento-item:hover{background:var(--color-primary-light, rgba(26, 58, 82, .08));color:var(--color-primary)}.layout-bento-item-add{width:100%;border:none;background:none;cursor:pointer;font-size:inherit;text-align:left;color:var(--color-text, #333)}.layout-bento-item-add:hover{background:var(--color-primary-light, rgba(26, 58, 82, .08));color:var(--color-primary)}.layout-bento-item-wrap{position:relative;display:flex;align-items:center}.layout-bento-item-wrap .layout-bento-item{flex:1;min-width:0}.layout-bento-item-actions{display:flex;align-items:center;gap:2px;opacity:0;transition:opacity .15s ease;flex-shrink:0;margin-left:.25rem}.layout-bento-item-wrap:hover .layout-bento-item-actions{opacity:1}.layout-bento-item-action{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--color-text-muted, #666);cursor:pointer;transition:background .15s,color .15s}.layout-bento-item-action:hover{background:var(--color-primary-light, rgba(26, 58, 82, .08));color:var(--color-primary)}.layout-bento-item-action-delete:hover{background:#c83c3c1a;color:var(--color-danger, #c00)}.layout-notifications{position:relative}.layout-notifications-trigger{display:flex;align-items:center;justify-content:center;width:48px;height:48px;min-width:48px;min-height:48px;padding:0;background:transparent;border:none;color:var(--color-on-primary, #fff);cursor:pointer;border-radius:6px;position:relative}.layout-notifications-trigger:hover{background:#0000001a;color:var(--color-on-primary, #fff)}.layout-notifications-badge{position:absolute;top:4px;right:4px;min-width:18px;height:18px;padding:0 5px;font-size:.7rem;font-weight:700;line-height:18px;color:#fff;background:var(--color-accent, #c4a35a);border-radius:9px;display:inline-flex;align-items:center;justify-content:center}.layout-notifications-dropdown{position:fixed;top:auto;left:50%;transform:translate(-50%);bottom:var(--layout-dock-stack, calc(env(safe-area-inset-bottom, 0px) + 3.5rem) );margin-top:0;width:min(360px,calc(100vw - 1rem));max-height:min(60vh,calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 8rem));overflow:hidden;display:flex;flex-direction:column;background:var(--color-bg-card, #fff);border-radius:8px;box-shadow:0 8px 24px #00000026;z-index:1;animation:fadeIn .15s ease}.layout-notifications-birthdays{padding:.75rem 1rem;background:linear-gradient(135deg,#fff8e7,#fff3d6);border-bottom:1px solid var(--color-border-light, #eee);font-size:.9rem;color:var(--color-text, #333)}.layout-notifications-empty{padding:1.5rem 1rem;text-align:center;color:var(--color-text-muted, #666);font-size:.9rem}.layout-notifications-list{list-style:none;margin:0;padding:.5rem 0;overflow-y:auto}.layout-notifications-list-item{border-bottom:1px solid var(--color-border-light, #eee)}.layout-notifications-list-item:last-child{border-bottom:none}.layout-notifications-item-wrap{display:flex;align-items:flex-start;gap:.25rem}.layout-notifications-item-wrap.layout-notifications-item-unread{background:#4a90d90f}.layout-notifications-item-wrap.layout-notifications-item-unread:hover{background:#4a90d91f}.layout-notifications-item{flex:1;min-width:0;display:block;width:100%;padding:.65rem 1rem;text-align:left;border:none;background:none;cursor:pointer;font-size:.9rem;color:var(--color-text, #333);border-radius:0;transition:background .1s ease}.layout-notifications-item:hover{background:var(--color-primary-light, rgba(26, 58, 82, .08))}.layout-notifications-item-delete{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-top:.25rem;margin-right:.25rem;padding:0;border:none;border-radius:6px;background:transparent;color:var(--color-text-muted, #666);cursor:pointer;transition:background .15s,color .15s}.layout-notifications-item-delete:hover{background:#c83c3c1a;color:var(--color-danger, #c00)}.layout-notifications-footer{padding:.5rem 1rem;border-top:1px solid var(--color-border-light, #eee);background:var(--color-bg-subtle, #f8f8f8)}.layout-notifications-delete-all{display:block;width:100%;padding:.5rem .75rem;font-size:.85rem;color:var(--color-text-muted, #666);background:transparent;border:none;border-radius:6px;cursor:pointer;transition:background .15s,color .15s}.layout-notifications-delete-all:hover{background:#c83c3c14;color:var(--color-danger, #c00)}.layout-notifications-item-title{display:block;font-weight:600;margin-bottom:.15rem}.layout-notifications-item-body{display:block;font-size:.8rem;color:var(--color-text-muted, #666);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layout-main{flex:1;position:relative;padding:1rem;padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right));padding-bottom:calc(1rem + var(--layout-dock-stack, calc(env(safe-area-inset-bottom, 0px) + 3.5rem) ));max-width:1400px;margin:0 auto;width:100%;min-width:0;background:var(--color-bg-main)}@media(min-width:768px){.layout-main{padding:1.5rem 2rem;padding-left:max(2rem,env(safe-area-inset-left));padding-right:max(2rem,env(safe-area-inset-right));padding-bottom:calc(1.5rem + var(--layout-dock-stack, calc(env(safe-area-inset-bottom, 0px) + 3.5rem) ))}}.pwa-update-banner{position:fixed;bottom:calc(var(--layout-dock-stack, 3.5rem) + .75rem);left:50%;transform:translate(-50%);z-index:2000;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--color-bg-card, #fff);border-radius:12px;box-shadow:0 4px 20px #00000026;font-size:.9rem}.pwa-update-banner-btn{padding:.4rem .75rem;background:var(--color-primary, #1a3a52);color:var(--color-on-primary, #fff);border:none;border-radius:8px;font-weight:500;cursor:pointer}.pwa-update-banner-btn:hover{opacity:.9}.layout-mobile-dock-item--nav-only{display:none}@media(max-width:1000px){.layout-mobile-dock-item--nav-only{display:flex}}.layout-mobile-dock{display:flex;position:fixed;left:50%;transform:translate(-50%);bottom:max(.5rem,env(safe-area-inset-bottom,0px));z-index:1050;justify-content:center;align-items:center;width:auto;max-width:calc(100vw - 1.5rem);padding:.35rem .5rem;margin:0;background:linear-gradient(145deg,color-mix(in srgb,var(--color-primary, #1a3a52) 92%,#000) 0%,var(--color-primary, #1a3a52) 100%);border:1px solid rgba(255,255,255,.18);border-radius:999px;box-shadow:0 10px 40px #00000038,0 2px 8px #0000001f}.layout-mobile-dock-inner{display:flex;align-items:center;justify-content:center;flex-wrap:nowrap;gap:.2rem .35rem}.layout-mobile-dock-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;min-width:0}.layout-mobile-dock-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;min-height:40px;padding:0;border:none;border-radius:50%;background:#ffffff24;color:var(--color-on-primary, #fff);cursor:pointer;position:relative;transition:background .15s ease,transform .12s ease;text-decoration:none;box-sizing:border-box}.layout-mobile-dock-btn--active{background:#ffffff52;box-shadow:inset 0 0 0 2px #ffffff73}.layout-mobile-dock-btn:hover,.layout-mobile-dock-btn:focus-visible{background:#ffffff42;outline:none}.layout-mobile-dock-btn:active{transform:scale(.94)}.layout-mobile-dock-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.layout-feed-modal-backdrop{position:fixed;inset:0;z-index:1300;display:flex;align-items:flex-end;justify-content:center;padding:env(safe-area-inset-top,0px) max(.5rem,env(safe-area-inset-right,0px)) env(safe-area-inset-bottom,0px) max(.5rem,env(safe-area-inset-left,0px));background:#0f172a73;backdrop-filter:blur(2px)}.layout-feed-modal{width:100%;max-width:560px;max-height:min(88dvh,calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 1rem));display:flex;flex-direction:column;background:var(--color-bg-main, #f5f5f5);border-radius:16px 16px 0 0;box-shadow:0 -8px 40px #0003;overflow:hidden;animation:layoutFeedModalIn .22s ease}@keyframes layoutFeedModalIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.layout-feed-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-shrink:0;padding:.85rem 1rem;background:var(--color-bg-card, #fff);border-bottom:1px solid var(--color-border-light, #e8e8e8)}.layout-feed-modal-title{margin:0;font-size:1.1rem;font-weight:700;color:var(--color-text, #222)}.layout-feed-modal-close{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:none;border-radius:10px;background:transparent;color:var(--color-text-muted, #666);cursor:pointer;flex-shrink:0}.layout-feed-modal-close:hover,.layout-feed-modal-close:focus-visible{background:var(--color-bg-subtle, #f0f0f0);outline:none}.layout-feed-modal-body{flex:1;min-height:0;overflow:auto;padding:1rem;-webkit-overflow-scrolling:touch}.layout-feed-modal-loading{margin:0;color:var(--color-text-muted, #666);font-size:.95rem}.page-loading-skeleton{padding:1.5rem 1rem 2rem;max-width:900px;margin:0 auto}.page-loading-skeleton__card{margin-top:1.25rem;padding:1rem;border-radius:var(--radius-md, 8px);border:1px solid var(--color-border-light, #eee);background:var(--color-bg-card, #fff)}.page-loading-skeleton__bar{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--color-border-light, #e8e8e8) 0%,var(--color-bg, #f5f5f5) 50%,var(--color-border-light, #e8e8e8) 100%);background-size:200% 100%;animation:page-loading-shimmer 1.2s ease-in-out infinite;margin-bottom:.65rem}.page-loading-skeleton__bar--title{height:22px;max-width:280px;margin-bottom:1rem}.page-loading-skeleton__bar--short{max-width:55%}@keyframes page-loading-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.login-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-lg);padding-left:max(var(--space-lg),env(safe-area-inset-left,0px));padding-right:max(var(--space-lg),env(safe-area-inset-right,0px));padding-bottom:max(var(--space-lg),env(safe-area-inset-bottom,0px));background:var(--color-bg-main, var(--color-bg));position:relative;box-sizing:border-box}.login-page:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--color-primary, #1a3a52),var(--color-accent, var(--color-primary, #1a3a52)))}.login-page-inner{width:100%;max-width:420px}.login-brand{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg)}.login-brand-mark{display:flex;align-items:center;justify-content:center;width:52px;height:52px;flex-shrink:0;border-radius:var(--m3-shape-corner-medium, 12px);background:var(--color-primary);color:var(--color-on-primary, #fff);box-shadow:var(--shadow-md)}.login-brand-mark .icon{display:block}.login-brand-text{display:flex;flex-direction:column;gap:.15rem;min-width:0}.login-brand-title{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text);line-height:var(--leading-tight)}.login-brand-tagline{font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-normal)}.login-card{max-width:420px;margin:0 auto;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.login-card .card-body{padding:var(--space-lg) var(--space-xl)}.login-title{margin:0 0 var(--space-sm);font-size:var(--text-2xl);font-weight:var(--font-bold);line-height:var(--leading-tight);color:var(--color-accent, var(--color-primary))}.login-lead{margin:0 0 var(--space-lg);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.login-form{display:flex;flex-direction:column;gap:var(--space-md)}.login-form .login-field{margin:0}.login-status{margin:0;font-size:var(--text-sm)}.login-error{margin:0;padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--color-error);background:color-mix(in srgb,var(--color-error) 10%,transparent);border-radius:var(--radius-md);border:1px solid color-mix(in srgb,var(--color-error) 22%,transparent)}.login-submit{width:100%;margin-top:var(--space-xs);min-height:var(--touch-min-height, 48px);font-weight:var(--font-semibold)}.login-submit:disabled{opacity:.65;cursor:not-allowed}@media(max-width:480px){.login-card .card-body{padding:var(--space-md)}.login-brand{margin-bottom:var(--space-md)}}.m3-date-picker-overlay{position:fixed;inset:0;background:#00000052;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:m3-date-picker-fadeIn .15s ease}@keyframes m3-date-picker-fadeIn{0%{opacity:0}to{opacity:1}}.m3-date-picker-modal{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl, 12px);box-shadow:var(--shadow-lg);padding:var(--space-md);min-width:280px;max-width:95vw}.m3-date-picker-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-md)}.m3-date-picker-title{margin:0;font-size:var(--text-lg);font-weight:var(--font-medium);color:var(--color-text)}.m3-date-picker-today{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-primary);background:none;border:none;cursor:pointer;padding:.5rem .75rem;border-radius:var(--radius-md, 8px);font-family:inherit}.m3-date-picker-today:hover{background:var(--color-primary-light)}.m3-date-picker-nav{display:flex;align-items:center;justify-content:space-between;gap:.35rem;margin-bottom:var(--space-sm);flex-wrap:wrap}.m3-date-picker-month-year{display:flex;align-items:center;gap:.4rem;flex:1 1 auto;min-width:0;justify-content:center}.m3-date-picker-select{font:inherit;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);text-transform:capitalize;padding:.4rem .5rem;max-width:100%;border:1px solid var(--color-border, #e0e0e0);border-radius:8px;background:var(--color-bg, #fff);cursor:pointer}.m3-date-picker-select--year{min-width:4.5rem;flex:0 0 auto}.m3-date-picker-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}.m3-date-picker-month{font-size:var(--text-base);font-weight:var(--font-medium);color:var(--color-text);text-transform:capitalize}.m3-date-picker-nav-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;background:transparent;color:var(--color-text-muted);cursor:pointer;border-radius:50%;transition:background .2s,color .2s}.m3-date-picker-nav-btn:hover{background:var(--color-bg-toolbar);color:var(--color-primary)}.m3-date-picker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}.m3-date-picker-weekday{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-muted);text-align:center;padding:4px 0}.m3-date-picker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.m3-date-picker-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-family:inherit;border:none;background:transparent;color:var(--color-text);cursor:pointer;border-radius:50%;min-width:36px;min-height:36px;transition:background .2s,color .2s}.m3-date-picker-cell--empty{cursor:default;pointer-events:none}.m3-date-picker-cell--day:hover:not(.m3-date-picker-cell--disabled){background:var(--color-bg-toolbar)}.m3-date-picker-cell--today{font-weight:var(--font-semibold);color:var(--color-primary)}.m3-date-picker-cell--selected{background:var(--color-primary);color:var(--color-on-primary)}.m3-date-picker-cell--selected:hover{background:var(--color-primary-hover)}.m3-date-picker-cell--disabled{color:var(--color-text-muted);opacity:.38;cursor:not-allowed}.m3-text-field{display:block;width:100%;min-width:0;margin-bottom:0}.m3-text-field--inline{margin-bottom:0}.m3-text-field__inner{position:relative;display:flex;flex-direction:column;gap:6px;width:100%}.m3-text-field__input{display:block;width:100%;min-width:0;min-height:40px;box-sizing:border-box;padding:var(--m3-text-field-padding-y) var(--m3-text-field-padding-x);font-size:var(--text-sm);font-family:inherit;line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg-card);border:1px solid var(--m3-text-field-outline-color);border-radius:var(--m3-text-field-radius);transition:border-color var(--m3-text-field-transition),box-shadow var(--m3-text-field-transition);outline:none;-webkit-appearance:none;appearance:none;order:1}.m3-text-field__input[type=date]{min-width:0}@media(max-width:768px){.m3-text-field__input[type=date]{padding-left:12px;padding-right:10px;font-size:.95rem}[role=dialog] .m3-text-field,.modal-overlay .m3-text-field{width:100%;min-width:0;max-width:100%}[role=dialog] .m3-text-field__inner,.modal-overlay .m3-text-field__inner{width:100%;min-width:0}[role=dialog] .m3-text-field__input[type=date],.modal-overlay .m3-text-field__input[type=date]{width:100%;min-width:0;max-width:100%}}.m3-text-field__input::placeholder{color:var(--color-text-muted);opacity:.8}.m3-text-field__input:placeholder-shown:not(:focus)::placeholder{opacity:.65}.m3-text-field__input:hover{border-color:var(--m3-text-field-outline-color-hover)}.m3-text-field__input:focus{border-color:var(--m3-text-field-outline-color-focus);box-shadow:var(--shadow-focus)}.m3-text-field__label{order:-1;position:static;transform:none;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);pointer-events:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;background:none;padding:0;margin:0}.m3-text-field--filled .m3-text-field__label,.m3-text-field--focused .m3-text-field__label,.m3-text-field__input:focus+.m3-text-field__label{font-size:var(--text-sm);color:var(--color-text);background:none;padding:0;margin:0;transform:none}.m3-text-field--focused .m3-text-field__label,.m3-text-field__input:focus+.m3-text-field__label{color:var(--m3-text-field-label-color-focus)}.m3-text-field__input.m3-text-field__input--trailing{padding-right:16px}.m3-text-field__trailing{position:absolute;right:12px;bottom:calc(var(--m3-text-field-padding-y) + 2px);top:auto;transform:none;display:flex;align-items:center;justify-content:center;pointer-events:none;color:var(--m3-text-field-supporting-color);font-size:var(--text-sm)}.m3-text-field--error .m3-text-field__trailing{color:var(--m3-text-field-supporting-color-error)}.m3-text-field__trailing--button{pointer-events:auto;cursor:pointer;background:none;border:none;padding:0;color:var(--m3-text-field-supporting-color)}.m3-text-field__trailing--button:hover:not(:disabled){color:var(--m3-text-field-label-color-focus)}.m3-text-field__trailing--button:disabled{opacity:.6;cursor:not-allowed}.m3-text-field--with-suffix .m3-text-field__input.m3-text-field__input--trailing{padding-right:52px}.m3-text-field--with-suffix .m3-text-field__input.m3-text-field__input--trailing:focus{padding-right:51px}.m3-text-field__trailing--suffix{font-size:var(--text-base);color:var(--m3-text-field-supporting-color);white-space:nowrap}.m3-text-field--error .m3-text-field__input{border-color:var(--m3-text-field-outline-color-error)}.m3-text-field--error .m3-text-field__input:focus{border-color:var(--m3-text-field-outline-color-error);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-error) 20%,transparent)}.m3-text-field--error .m3-text-field__label,.m3-text-field--error.m3-text-field--filled .m3-text-field__label,.m3-text-field--error.m3-text-field--focused .m3-text-field__label{color:var(--m3-text-field-label-color-error)}.m3-text-field__supporting{display:block;margin:4px 0 0;padding-left:var(--m3-text-field-padding-x);padding-right:var(--m3-text-field-padding-x);font-size:var(--text-xs);line-height:1.3;color:var(--m3-text-field-supporting-color)}.m3-text-field__supporting--error{color:var(--m3-text-field-supporting-color-error)}.m3-text-field__input.m3-text-field__input--select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%236e6e6e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:18px;padding-right:44px}.m3-text-field__input.m3-text-field__input--select.m3-text-field__input--trailing{padding-right:56px}.m3-text-field__input.m3-text-field__input--textarea{resize:vertical;min-height:88px;padding:var(--m3-text-field-padding-y) var(--m3-text-field-padding-x)}.m3-text-field__input:disabled{opacity:.6;cursor:not-allowed;background:var(--color-bg-toolbar)}.m3-text-field__input:disabled+.m3-text-field__label{opacity:.8}.m3-color-field{display:flex;flex-direction:column;gap:6px;width:100%;margin-bottom:0}.m3-color-field__inner{position:relative;display:flex;align-items:center;min-height:40px;box-sizing:border-box;padding:var(--m3-text-field-padding-y) var(--m3-text-field-padding-x);background:var(--color-bg-card);border:1px solid var(--m3-text-field-outline-color);border-radius:var(--m3-text-field-radius);transition:border-color var(--m3-text-field-transition),box-shadow var(--m3-text-field-transition)}.m3-color-field__inner:hover{border-color:var(--m3-text-field-outline-color-hover)}.m3-color-field__inner:focus-within{border-color:var(--m3-text-field-outline-color-focus);box-shadow:var(--shadow-focus)}.m3-color-field__label{position:static;transform:none;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.m3-color-field--filled .m3-color-field__label,.m3-color-field__inner:focus-within .m3-color-field__label{font-size:var(--text-sm);color:var(--m3-text-field-label-color-focus);background:none;padding:0;margin:0;transform:none}.m3-color-field__input{width:40px;height:36px;margin-left:auto;padding:2px;border:1px solid var(--m3-text-field-outline-color);border-radius:var(--m3-text-field-radius);cursor:pointer;background:transparent;-webkit-appearance:none;appearance:none;flex-shrink:0}.m3-color-field__input::-webkit-color-swatch-wrapper{padding:2px}.m3-color-field__input::-webkit-color-swatch{border:none;border-radius:calc(var(--m3-text-field-radius) - 2px)}.m3-color-field__input::-moz-color-swatch{border:none;border-radius:calc(var(--m3-text-field-radius) - 2px)}:root{--color-primary: #1a3a52;--color-primary-hover: #2d5a7b;--color-primary-light: #e8eef3;--color-on-primary: #fff;--color-accent: #c4a35a;--color-accent-hover: #b3924a;--color-text: #1a1a1a;--color-text-muted: #6e6e6e;--color-text-secondary: var(--color-text-muted);--color-text-inverse: #fff;--color-bg: #f8fafc;--color-bg-main: var(--color-bg);--color-bg-card: #fff;--color-surface: var(--color-bg-card);--color-bg-toolbar: #f1f5f9;--color-bg-muted: #f1f5f9;--color-bg-subtle: #f8fafc;--color-border: #e2e8f0;--color-border-light: #eef2f6;--color-success: #2e7d32;--color-error: #c62828;--color-warning: #ed6c02;--color-warning-surface: color-mix(in srgb, var(--color-warning) 28%, var(--color-bg-card));--color-warning-border-soft: color-mix(in srgb, var(--color-warning) 44%, var(--color-border));--color-warning-light: var(--color-warning-surface);--color-info: #1565c0;--color-focus-ring: rgba(26, 58, 82, .25);--focus-ring-width: 2px;--m3-text-field-outline-color: var(--color-border);--m3-text-field-outline-color-hover: var(--color-text);--m3-text-field-outline-color-focus: var(--color-primary);--m3-text-field-outline-color-error: var(--color-error);--m3-text-field-label-color: var(--color-text-muted);--m3-text-field-label-color-focus: var(--color-primary);--m3-text-field-label-color-error: var(--color-error);--m3-text-field-supporting-color: var(--color-text-muted);--m3-text-field-supporting-color-error: var(--color-error);--m3-text-field-radius: 8px;--m3-text-field-padding-x: 12px;--m3-text-field-padding-y: 9px;--m3-text-field-label-scale: .75;--m3-text-field-transition: .2s cubic-bezier(.2, 0, 0, 1);--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-mono: ui-monospace, "Cascadia Code", "Source Code Pro", monospace;--text-xs: .75rem;--text-sm: .85rem;--text-base: 1rem;--text-lg: 1.1rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.6;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 2.5rem;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-xl: 12px;--m3-shape-corner-extra-small: 6px;--m3-shape-corner-small: 8px;--m3-shape-corner-medium: 10px;--m3-shape-corner-large: 12px;--radius-btn: 8px;--radius-btn-sm: 6px;--m3-elevation-1: 0 1px 2px rgba(15, 23, 42, .06);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 4px 12px rgba(15, 23, 42, .06);--shadow-lg: 0 8px 24px rgba(15, 23, 42, .08);--shadow-focus: 0 0 0 3px color-mix(in srgb, var(--color-primary) 22%, transparent);--duration-fast: .15s;--duration-normal: .2s;--ease-default: ease;--bp-mobile: 600px;--bp-tablet: 768px;--bp-desktop: 1001px;--content-max-width: 1400px;--grid-min: 200px;--touch-min-height: 44px;--touch-min-width: 44px;--z-dropdown: 200;--z-sticky: 100;--z-modal: 1600;--z-toast: 1100}:root[data-app-theme=dim]{color-scheme:dark;--color-text: #e8eaed;--color-text-muted: #aeb4bc;--color-text-inverse: #0f1218;--color-bg: #2a3038;--color-bg-main: #252b32;--color-bg-card: #323944;--color-bg-toolbar: #3d4450;--color-bg-muted: #2f3640;--color-bg-subtle: var(--color-bg-muted);--color-surface: var(--color-bg-card);--color-text-secondary: var(--color-text-muted);--color-border: #4a5260;--color-border-light: #3a424e;--color-primary-light: color-mix(in srgb, var(--color-primary) 24%, transparent);--color-focus-ring: rgba(120, 160, 210, .35);--m3-text-field-outline-color: var(--color-border);--m3-text-field-outline-color-hover: var(--color-text-muted);--m3-text-field-outline-color-focus: var(--color-primary);--m3-text-field-label-color: var(--color-text-muted);--m3-text-field-label-color-focus: color-mix(in srgb, var(--color-text) 88%, var(--color-primary) 12%);--m3-text-field-supporting-color: var(--color-text-muted);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--shadow-md: 0 2px 10px rgba(0, 0, 0, .35);--shadow-lg: 0 6px 24px rgba(0, 0, 0, .4)}:root[data-app-theme=dark]{color-scheme:dark;--color-text: #e6edf3;--color-text-muted: #9da7b3;--color-text-inverse: #0d1117;--color-bg: #0d1117;--color-bg-main: #0d1117;--color-bg-card: #161b22;--color-bg-toolbar: #21262d;--color-bg-muted: #1c2128;--color-bg-subtle: var(--color-bg-muted);--color-surface: var(--color-bg-card);--color-text-secondary: var(--color-text-muted);--color-border: #30363d;--color-border-light: #252b33;--color-primary-light: color-mix(in srgb, var(--color-primary) 24%, transparent);--color-focus-ring: rgba(100, 150, 220, .35);--m3-text-field-outline-color: var(--color-border);--m3-text-field-outline-color-hover: var(--color-text-muted);--m3-text-field-outline-color-focus: var(--color-primary);--m3-text-field-label-color: var(--color-text-muted);--m3-text-field-label-color-focus: color-mix(in srgb, var(--color-text) 88%, var(--color-primary) 12%);--m3-text-field-supporting-color: var(--color-text-muted);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .45);--shadow-md: 0 2px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 28px rgba(0, 0, 0, .55)}:root[data-app-theme=dim] h1,:root[data-app-theme=dim] h2,:root[data-app-theme=dim] h3,:root[data-app-theme=dark] h1,:root[data-app-theme=dark] h2,:root[data-app-theme=dark] h3{color:var(--color-text)}:root[data-app-theme=dim] .gestion-card-icon,:root[data-app-theme=dark] .gestion-card-icon,:root[data-app-theme=dim] .dashboard-card-icon,:root[data-app-theme=dark] .dashboard-card-icon{color:#fff}:root[data-app-theme=dim],:root[data-app-theme=dark]{--color-switch-track-on: color-mix(in srgb, var(--color-primary, #15803d) 38%, #ffffff 62%);--color-warning-surface: color-mix(in srgb, var(--color-warning) 36%, var(--color-bg-card));--color-warning-border-soft: color-mix(in srgb, var(--color-warning) 52%, var(--color-border))}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);font-weight:var(--font-medium);line-height:var(--leading-tight);border-radius:var(--radius-btn);border:none;cursor:pointer;touch-action:manipulation;min-height:44px;transition:background var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default),box-shadow var(--duration-fast) var(--ease-default)}.btn .icon{flex-shrink:0}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-accent, var(--color-primary));color:var(--color-text-inverse)}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover, var(--color-primary-hover))}.btn-secondary{background:var(--color-bg-toolbar, #f7f7f8);color:var(--color-text);border:none}.btn-secondary:hover:not(:disabled){background:var(--color-border-light)}.btn-danger{background:var(--color-error);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(1.1)}.btn-outline{background:transparent;color:var(--color-primary);border:1px solid var(--color-border)}.btn-outline:hover:not(:disabled){background:var(--color-primary-light);border-color:var(--color-primary)}.btn-sm{font-size:var(--text-sm);min-height:40px;border-radius:var(--radius-btn-sm)}.card{background:var(--color-bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);overflow:hidden}.card-header{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border-light);font-weight:var(--font-semibold);background:var(--color-bg-subtle);color:var(--color-text)}h1,h2,h3{color:var(--color-text);letter-spacing:-.02em}.card-body{padding:var(--space-lg)}.form-group{margin-bottom:var(--space-md)}.form-group label{display:block;margin-bottom:var(--space-xs);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.form-control{width:100%;padding:var(--space-sm) .75rem;font-size:var(--text-base);font-family:inherit;line-height:var(--leading-normal);border:1px solid var(--color-border);border-radius:var(--m3-text-field-radius, var(--radius-sm));background:var(--color-bg-card);color:var(--color-text);transition:border-color var(--m3-text-field-transition, .2s ease),box-shadow var(--m3-text-field-transition, .2s ease)}.form-control:hover{border-color:var(--m3-text-field-outline-color-hover, var(--color-border))}.form-control:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.switch{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;user-select:none}.switch input{position:absolute;opacity:0;width:0;height:0}.switch-slider{position:relative;width:44px;height:24px;background:var(--color-border);border-radius:24px;transition:background .2s}.switch-slider:after{content:"";position:absolute;width:20px;height:20px;left:2px;top:2px;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0000004d;transition:transform .2s}.switch input:checked+.switch-slider{background:var(--color-switch-track-on, var(--color-primary))}.switch input:checked+.switch-slider:after{transform:translate(20px)}.switch input:focus-visible+.switch-slider{box-shadow:var(--shadow-focus)}.form-control::placeholder{color:var(--color-text-muted)}.form-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--grid-min),1fr));gap:var(--space-md)}.devis-frozen-notice{margin:0 0 1rem;padding:.65rem .85rem;font-size:.9rem;line-height:1.45;color:var(--color-text);background:var(--color-bg-muted);border:1px solid var(--color-border-light);border-radius:var(--radius-md)}.devis-config{display:flex;flex-direction:column;gap:var(--space-xl)}.devis-config-with-client{display:grid;grid-template-columns:3fr 1fr;gap:1.25rem;align-items:start}@media(max-width:768px){.devis-config-with-client{grid-template-columns:1fr}}.devis-config-section{display:flex;flex-direction:column;gap:var(--space-sm)}.devis-config-section-title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;margin:0 0 .25rem;padding-bottom:.35rem;border-bottom:1px solid var(--color-border-light, #eee)}.devis-config-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);align-items:start}.devis-config-row .devis-config-section{min-width:0}@media(max-width:640px){.devis-config-row{grid-template-columns:1fr}}@media(max-width:768px){.projets-filters-card.page-list-filters-card{padding:.6rem .75rem}.projets-filters-card .collapsible-filters__toggle{min-height:38px;margin-bottom:.35rem;padding-top:.35rem;padding-bottom:.35rem}.projets-filters-card .page-filters{gap:.35rem .5rem;row-gap:.35rem}.projets-filters-card .page-filters-group.m3-text-field .m3-text-field__input,.projets-filters-card .page-filters-group .m3-select-trigger{min-height:38px;font-size:.88rem}.projets-filters-card .page-filters-actions .btn-sm{min-height:36px;min-width:36px;padding:.25rem .4rem}}.devis-config-block-title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-muted);margin-bottom:var(--space-sm)}.page-title{margin:0 0 var(--space-lg);font-size:var(--text-2xl);font-weight:var(--font-semibold);color:var(--color-text)}.page-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.page-heading-row{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.page-heading-lead{flex-shrink:0;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding-top:.2rem}.page-heading-title-block{flex:1;min-width:0}.page-heading-title-inner{min-width:0}.page-heading-title-line{display:flex;align-items:center;gap:.4rem;min-width:0;margin-bottom:var(--space-lg)}.page-heading-title-line .page-title,.page-heading-title-line.has-open-search{margin-bottom:0}.page-title-search-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:40px;height:40px;padding:0;color:var(--color-text-muted);background:transparent;border:1px solid transparent;border-radius:999px;cursor:pointer;transition:color var(--duration-fast),background var(--duration-fast),border-color var(--duration-fast)}.page-title-search-toggle:hover,.page-title-search-toggle:focus-visible,.page-title-search-toggle.is-open{color:var(--color-primary);background:var(--color-primary-light);border-color:color-mix(in srgb,var(--color-primary) 25%,transparent)}.page-title-search-toggle.is-active:after{position:absolute;top:6px;right:6px;width:7px;height:7px;content:"";background:var(--color-primary);border:2px solid var(--color-bg, #fff);border-radius:999px}.page-title-search-panel{display:flex;align-items:center;gap:.5rem;width:min(420px,100%);margin:.65rem 0 var(--space-lg)}.page-title-search-panel>.m3-text-field,.page-title-search-panel>.form-control,.page-title-search-panel>.search-input-wrap,.page-title-search-panel>div:first-child{flex:1 1 auto;min-width:0;margin-bottom:0}.page-title-search-panel .page-title-search-submit{flex:0 0 auto}.page-heading-overflow{flex-shrink:0;margin-left:auto;align-self:center;display:flex;align-items:center;padding-top:.2rem}.page-actions-overflow-btn{width:auto;min-width:40px;justify-content:center;padding:.35rem .5rem}.btn-add-task{display:inline-flex;align-items:center;gap:.35rem;overflow:hidden}.btn-add-task-label{max-width:0;white-space:nowrap;overflow:hidden;opacity:0;transition:max-width .2s ease,opacity .15s ease}.btn-add-task:hover .btn-add-task-label{max-width:140px;opacity:1}.btn-icon-expand{display:inline-flex;align-items:center;gap:var(--space-sm)}.btn-icon-expand .btn-icon-expand-label{max-width:none;opacity:1;white-space:nowrap}.page-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;row-gap:.5rem}.page-filters .search-input-wrap{flex:0 1 220px;min-width:160px;max-width:280px}.page-filters-group{margin-bottom:0;flex:0 0 auto;min-width:140px;max-width:220px}.page-filters-group--client{min-width:160px;max-width:260px}.page-filters-group--status{min-width:120px;max-width:180px}.page-filters .page-filters-group .m3-text-field__supporting{margin-top:0;min-height:0;height:0;overflow:hidden;padding:0}.page-filters-actions{display:flex;align-items:center;gap:.25rem;margin-left:auto;flex-shrink:0}.modal-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:max(.5rem,env(safe-area-inset-top,0px)) max(.5rem,env(safe-area-inset-right,0px)) max(.5rem,env(safe-area-inset-bottom,0px)) max(.5rem,env(safe-area-inset-left,0px));box-sizing:border-box}.page-actions-menu-surface{position:fixed;z-index:1100;box-shadow:var(--shadow-lg);border-radius:var(--radius-md);background:var(--color-bg-card);padding:6px 0;max-height:min(65vh,420px);overflow-y:auto;overscroll-behavior:contain}.page-actions-menu{display:flex;flex-direction:column;gap:2px;align-items:stretch}.page-actions-menu>*{width:100%}.page-actions-menu>div{display:flex;flex-direction:column;align-items:stretch;gap:2px}.page-actions-menu .btn{width:100%;justify-content:flex-start;text-align:left;border-radius:0;padding:.5rem 1rem}.page-actions-menu .btn-icon-expand .btn-icon-expand-label{margin-left:var(--space-sm)}.page-actions-menu .btn:hover{background:var(--color-bg-toolbar)}.page-actions-menu .btn.btn-secondary{border:none!important;box-shadow:none!important}.page-actions-menu .btn:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.page-actions-menu .btn+.btn{margin-top:0}.page-actions-menu-divider{height:1px;margin:4px 0;background:var(--color-border-light);flex-shrink:0;border:none;align-self:stretch}.toolbar{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:center;margin-bottom:var(--space-lg);width:100%}.toolbar .form-control{max-width:220px}.toolbar input[type=search]{min-width:180px;flex:1 1 180px;box-sizing:border-box}.search-input-wrap{position:relative;display:inline-flex;align-items:center;min-width:180px;flex:1 1 180px}.search-input-wrap .search-input-icon{position:absolute;left:.75rem;pointer-events:none;color:var(--color-text-muted);flex-shrink:0}.search-input-wrap .search-input-field{padding-left:2.5rem;width:100%;box-sizing:border-box}.sortable-th{vertical-align:middle}.sortable-th-btn{display:inline-flex;align-items:center;gap:.25rem;padding:0;margin:0;border:none;background:none;font:inherit;font-weight:600;color:inherit;cursor:pointer;text-align:left}.sortable-th-btn:hover{text-decoration:underline}.sortable-th-arrow{font-size:.75em;opacity:.8}.sortable-th-label{text-transform:none}.table .th-actions{width:1%;white-space:nowrap}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;background:var(--color-bg-card);border-radius:var(--radius-md);border:1px solid var(--color-border-light);scrollbar-width:thin}.table-scroll-hint{display:none;margin:0 0 .5rem;font-size:var(--text-sm);color:var(--color-text-muted)}@media(max-width:768px){.table-wrap{max-width:100%;box-shadow:inset -10px 0 10px -10px #0000000f}.table-scroll-hint{display:block}}.content-reading{max-width:42rem;margin-left:auto;margin-right:auto;font-size:1.05rem;line-height:1.65;color:var(--color-text)}.content-reading p{margin:0 0 .85em}.content-reading h2,.content-reading h3{margin-top:1.25em}.table{width:100%;border-collapse:collapse;font-size:.95rem}.table th,.table td{padding:.6rem 1rem;text-align:left;border-bottom:1px solid var(--color-border-light)}.table th{font-weight:600;color:var(--color-text);background:var(--color-primary-light)}.table tbody tr:hover{background:#00000005}.table.devis-lines-table tbody.devis-line-group+tbody.devis-line-group{border-top:1px solid var(--color-border-light)}.table.devis-lines-table tbody.devis-line-group tr:hover{background:transparent}.table.devis-lines-table tbody.devis-line-group:hover tr{background:#00000005}.devis-lines-table .task-description-cell{max-width:min(34rem,56vw);overflow-wrap:anywhere}.devis-lines-table .notes-rich-display{overflow-wrap:anywhere}.table-sm th,.table-sm td{padding:.4rem .75rem;font-size:.9rem}.input-sm{padding:.35rem .5rem;font-size:.9rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg)}.table-actions{display:inline-flex;align-items:center;gap:.25rem}.table-actions-btn{display:inline-flex;align-items:center;justify-content:center;padding:.25rem;border:none;background:none;cursor:pointer;border-radius:var(--radius-sm);color:var(--color-text);font:inherit;line-height:1}.table-actions-btn:hover:not(:disabled){background:var(--color-bg-subtle)}.table-actions-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.table-actions-btn:disabled{opacity:.5;cursor:not-allowed}.table-actions-btn--danger{color:var(--color-error)}.table-actions-btn--danger:hover:not(:disabled){background:color-mix(in srgb,var(--color-error) 12%,transparent)}.table th.table-filters-cell{padding:.65rem 1rem;background:var(--color-bg-card);border-bottom:1px solid var(--color-border-light);vertical-align:middle;font-weight:400}.table-filters-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:stretch;gap:.5rem .75rem}.table-filters-toolbar--end{justify-content:flex-end}.table-filters-toolbar__fields{display:flex;flex-wrap:wrap;align-items:stretch;gap:.5rem;flex:1;min-width:0}.table-filters-toolbar__fields .form-control{min-height:40px;padding-top:.45rem;padding-bottom:.45rem;font-size:.9rem}.table-filters-toolbar__fields input.form-control{flex:1 1 200px;max-width:420px}.table-filters-toolbar__fields select.form-control{flex:0 1 auto;min-width:160px;max-width:280px}.table-filters-toolbar__actions{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.table-filters-toolbar__actions .btn-sm{min-width:40px;min-height:40px;padding-left:.5rem;padding-right:.5rem}.page-list-filters-card{margin-bottom:.75rem}.page-list-filters-card.card{overflow:visible}.page-list-filters-card .table-filters-toolbar{margin:0}@media(max-width:640px){.table-filters-toolbar__fields input.form-control{max-width:none;width:100%}.table-filters-toolbar__fields select.form-control{max-width:none;flex:1 1 140px}}.pagination{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-lg);font-size:.9rem;color:var(--color-text-muted)}.alert{padding:var(--space-md);border-radius:var(--radius-sm);margin-bottom:var(--space-md)}.alert-error{background:#ffebee;color:var(--color-error);border:1px solid #ffcdd2}.alert-success{background:#eaf7ee;color:var(--color-success, #2e7d32);border:1px solid #b9dfc3}.alert-banner-warning{padding:.5rem .75rem;border-radius:6px;font-size:.9rem;color:var(--color-text);background:var(--color-warning-surface);border:1px solid var(--color-warning-border-soft)}.empty-state{padding:var(--space-xl);text-align:center;color:var(--color-text-muted);background:var(--color-bg-card);border-radius:var(--radius-md);border:1px dashed var(--color-border)}.loading{padding:var(--space-xl);text-align:center;color:var(--color-text-muted)}.tag{display:inline-block;padding:.25rem .6rem;font-size:.85rem;border-radius:var(--radius-sm);background:var(--color-primary-light);color:var(--color-primary)}.hint{font-size:var(--text-sm);color:var(--color-text-muted)}@media(max-width:600px){.toolbar{flex-direction:column;align-items:stretch}.toolbar .search-input-wrap{min-width:0;width:100%;flex:1 1 100%}.toolbar .form-control,.toolbar input[type=search],.toolbar input[type=text],.toolbar select{max-width:none;min-width:0;width:100%;flex:1 1 100%;box-sizing:border-box;min-height:var(--touch-min-height);font-size:16px}input[type=search].form-control{width:100%;max-width:none;min-height:var(--touch-min-height);font-size:16px}.table-wrap{margin-left:-.5rem;margin-right:-.5rem;border-radius:0;-webkit-overflow-scrolling:touch}.table th,.table td{padding:.75rem .5rem;font-size:.9rem;min-width:80px}.devis-lines-table .task-description-cell{max-width:18rem}.table th:first-child,.table td:first-child{position:sticky;left:0;z-index:1;background:var(--color-primary-light);box-shadow:2px 0 4px #0000000f}.table td:first-child{background:var(--color-bg-card)}.table tbody tr:last-child td:first-child{border-bottom:none}.pagination{flex-wrap:wrap;gap:.5rem;justify-content:center}.pagination .btn{min-height:var(--touch-min-height, 44px);min-width:44px}.form-row{grid-template-columns:1fr}.page-actions{flex-direction:column;align-items:stretch}.page-actions>.page-heading-row{flex-direction:row;align-items:flex-start;width:100%}.page-title-search-panel{width:100%}.page-actions-toolbar .btn{min-height:var(--touch-min-height, 44px);width:100%;justify-content:center}.page-actions .page-heading-lead .btn,.page-actions .page-heading-lead a.btn,.page-actions .page-heading-overflow .btn,.page-actions .page-heading-overflow a.btn{width:auto;min-height:40px;justify-content:center}.page-heading-lead button.btn-secondary:has(svg:only-child),.page-heading-lead a.btn.btn-secondary:has(svg:only-child),.page-heading-overflow button.btn-secondary:has(svg:only-child),.page-heading-overflow a.btn.btn-secondary:has(svg:only-child){min-width:40px;padding:.35rem;background:transparent;border:1px solid transparent;color:var(--color-text-muted);box-shadow:none}.page-heading-lead button.btn-secondary:has(svg:only-child):hover,.page-heading-lead a.btn.btn-secondary:has(svg:only-child):hover,.page-heading-overflow button.btn-secondary:has(svg:only-child):hover,.page-heading-overflow a.btn.btn-secondary:has(svg:only-child):hover{background:var(--color-primary-light);color:var(--color-primary)}.btn{min-height:var(--touch-min-height)}.btn-sm{min-height:38px}.card-body{padding:var(--space-md)}.dashboard-cards{grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}.dashboard-card-value{font-size:1.4rem}}.error{color:var(--color-error);font-size:var(--text-sm)}.dashboard-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-md)}.dashboard-card{text-align:center;min-width:0}.dashboard-card-icon{color:var(--color-accent, var(--color-primary));margin-bottom:var(--space-sm)}.dashboard-card-value{font-size:1.75rem;font-weight:700;color:var(--color-text)}.dashboard-card-label{font-size:.9rem;color:var(--color-text-muted);margin-top:var(--space-xs)}.dashboard-card-highlight .dashboard-card-value{color:var(--color-primary);font-size:1.35rem}@keyframes devis-marge-pulse{0%,to{opacity:1}50%{opacity:.92}}@keyframes devis-marge-blink{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}.notes-rich-wrapper{position:relative}.notes-quill-container .ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:1px solid var(--color-border)}.notes-quill-container .ql-toolbar{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:6px 6px 0 0;padding:6px 8px;min-height:36px;align-items:center;flex-wrap:wrap;gap:4px;display:none}.notes-quill-container.is-focused .ql-toolbar{display:flex}.notes-quill-container .ql-toolbar .ql-formats{display:inline-flex;align-items:center;gap:2px;margin-right:2px;margin-bottom:0}.notes-quill-container .ql-toolbar .ql-formats:last-child{margin-right:0}.notes-quill-container .ql-toolbar button,.notes-quill-container .ql-toolbar .ql-picker-label{width:28px;height:28px;min-width:28px;min-height:28px;display:inline-flex;align-items:center;justify-content:center}.notes-quill-container .ql-toolbar .ql-picker{height:28px}.notes-quill-container .ql-toolbar .ql-picker-label{padding:0 6px}.notes-quill-container .ql-toolbar .ql-picker-options{max-height:220px;overflow-y:auto;background:var(--color-bg-card);border-color:var(--color-border);color:var(--color-text)}.notes-quill-container .ql-toolbar .ql-stroke{stroke:var(--color-text-muted)}.notes-quill-container .ql-toolbar .ql-fill{fill:var(--color-text-muted)}.notes-quill-container .ql-toolbar button:hover .ql-stroke,.notes-quill-container .ql-toolbar .ql-picker-label:hover .ql-stroke{stroke:var(--color-text)}.notes-quill-container .ql-toolbar button:hover .ql-fill{fill:var(--color-text)}.notes-quill-container .ql-container.ql-snow,.notes-quill-container .ql-snow .ql-container.ql-snow{border:1px solid var(--color-border);border-top:none;border-radius:0 0 6px 6px;font-size:.95rem;min-height:100px;background:var(--color-bg-card)}.notes-quill-container:not(.is-focused) .ql-container.ql-snow,.notes-quill-container:not(.is-focused) .ql-snow .ql-container.ql-snow{border-top:1px solid var(--color-border);border-radius:6px}.notes-quill-container .ql-editor{min-height:inherit;color:var(--color-text)}.notes-quill-container .ql-editor.ql-blank:before{color:var(--color-text-muted);opacity:.85}.notes-rich-display{font-size:.95rem;line-height:1.5}.notes-rich-display strong,.notes-rich-display b{font-weight:600}.notes-rich-display blockquote{border-left:4px solid var(--color-border);padding-left:.75rem;margin:.5rem 0;color:var(--color-text-muted, #5f6368)}.task-description-cell .notes-rich-display{max-height:8rem;overflow-y:auto}.notes-toolbar-btn:hover{background:color-mix(in srgb,var(--color-text) 8%,transparent)!important}.notes-toolbar-btn:active{background:color-mix(in srgb,var(--color-text) 12%,transparent)!important}@media(max-width:768px){.notes-quill-container .ql-toolbar{padding:5px 6px;gap:3px}.notes-quill-container .ql-toolbar .ql-formats{gap:1px;margin-right:1px}.notes-quill-container .ql-toolbar button,.notes-quill-container .ql-toolbar .ql-picker-label{width:26px;height:26px;min-width:26px;min-height:26px}.notes-quill-container .ql-toolbar .ql-picker{height:26px}}.visuels-card-image-wrap:hover .visuels-card-actions{opacity:1!important}.site-public .site-block-reveal{--site-block-reveal-delay: 0s;--site-block-reveal-duration: .55s;opacity:0;transform:translateY(24px);transition:opacity var(--site-block-reveal-duration) ease-out,transform var(--site-block-reveal-duration) cubic-bezier(.22,1,.36,1);transition-delay:var(--site-block-reveal-delay)}.site-public .site-block-reveal[data-animation=fade]{transform:none}.site-public .site-block-reveal[data-animation=slideDown]{transform:translateY(-24px)}.site-public .site-block-reveal[data-animation=slideLeft]{transform:translate(24px)}.site-public .site-block-reveal[data-animation=slideRight]{transform:translate(-24px)}.site-public .site-block-reveal--visible{opacity:1;transform:translate(0)}.site-public .site-block-reveal[data-animation-speed=slow]{--site-block-reveal-duration: .85s}.site-public .site-block-reveal[data-animation-speed=fast]{--site-block-reveal-duration: .35s}.stock-tabs{display:flex;gap:0;margin-bottom:var(--space-lg);border-bottom:1px solid var(--color-border)}.stock-tabs-link{padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-muted);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:color var(--duration-fast),background var(--duration-fast)}.stock-tabs-link:hover{color:var(--color-text);background:var(--color-border-light)}.stock-tabs-link.active{color:var(--color-primary);border-bottom-color:var(--color-primary);background:transparent}.stock-workspace{display:flex;flex-direction:column;gap:2rem}.stock-overview{display:flex;flex-direction:column;gap:.75rem}.stock-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.stock-kpi{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.75rem;align-items:start;min-width:0;padding:1rem;background:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.stock-kpi__icon{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;color:var(--color-primary);background:var(--color-primary-light);border-radius:var(--radius-md)}.stock-kpi>div{display:flex;flex-direction:column;min-width:0}.stock-kpi__label,.stock-kpi__meta{color:var(--color-text-muted)}.stock-kpi__label{font-size:var(--text-sm);font-weight:var(--font-medium)}.stock-kpi__value{margin:.1rem 0;overflow:hidden;font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.stock-kpi__meta{font-size:.76rem;line-height:1.35}.stock-kpi--warning{border-color:var(--color-warning-border-soft, #f4c16d);background:var(--color-warning-surface, #fff8e8)}.stock-kpi--warning .stock-kpi__icon,.stock-kpi--warning .stock-kpi__value{color:var(--color-warning, #b45309)}.stock-quick-nav{display:flex;align-items:center;gap:.35rem;overflow-x:auto;padding:.35rem;background:var(--color-bg-subtle);border:1px solid var(--color-border-light);border-radius:var(--radius-md);scrollbar-width:thin}.stock-quick-nav span,.stock-quick-nav a{flex-shrink:0;padding:.45rem .7rem;font-size:var(--text-sm)}.stock-quick-nav span{color:var(--color-text-muted);font-weight:var(--font-semibold)}.stock-quick-nav a{color:var(--color-text);text-decoration:none;background:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:999px;transition:border-color var(--duration-fast),color var(--duration-fast),background var(--duration-fast)}.stock-quick-nav a:hover,.stock-quick-nav a:focus-visible{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-primary-light)}.stock-alerts{padding:1rem;background:var(--color-warning-surface, #fff8e8);border:1px solid var(--color-warning-border-soft, #f4c16d);border-radius:var(--radius-md)}.stock-alerts h2{display:flex;align-items:center;gap:.5rem;margin:0 0 .2rem;font-size:1.05rem}.stock-alerts>.hint{margin:0 0 .75rem}.stock-alerts__table .table-wrap{border-color:var(--color-warning-border-soft, #f4c16d)}.stock-section{scroll-margin-top:1rem}.stock-section__header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem}.stock-section__header h2,.stock-section>h2{margin-top:0}.stock-section__filters{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;padding:.75rem;background:var(--color-bg-subtle);border:1px solid var(--color-border-light);border-radius:var(--radius-md)}.stock-section__filters .search-input-wrap{max-width:30rem}.stock-section__filters .btn{flex-shrink:0}.stock-section--primary .stock-table-wrap{box-shadow:var(--shadow-sm)}.stock-table__number{text-align:right!important;font-variant-numeric:tabular-nums;white-space:nowrap}.stock-reference{display:inline-flex;padding:.2rem .45rem;color:var(--color-text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.82rem;line-height:1.2;background:var(--color-bg-subtle);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);white-space:nowrap}.stock-article-name{font-weight:var(--font-semibold)}.stock-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:.35rem;white-space:nowrap}.stock-depot-list{margin:0;padding:0;list-style:none}.stock-depot-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--color-border-light)}.stock-depot-row:first-child{padding-top:0}.stock-depot-row:last-child{padding-bottom:0;border-bottom:0}.stock-depot-row__details{display:flex;flex-direction:column;gap:.15rem;min-width:0}.stock-depot-row__details span{color:var(--color-text-muted);font-size:var(--text-sm)}.stock-movement-type{display:inline-flex;align-items:center;min-height:1.55rem;padding:.15rem .5rem;font-size:.8rem;font-weight:var(--font-semibold);border-radius:999px;white-space:nowrap}.stock-movement-type--entree{color:var(--color-success, #287c4a);background:color-mix(in srgb,var(--color-success, #287c4a) 12%,transparent)}.stock-movement-type--sortie{color:var(--color-warning, #b45309);background:color-mix(in srgb,var(--color-warning, #b45309) 12%,transparent)}.stock-movement-type--affectation_projet{color:var(--color-primary);background:var(--color-primary-light)}@media(max-width:1100px){.stock-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.stock-workspace{gap:1.5rem}.stock-kpis{grid-template-columns:1fr}.stock-kpi{padding:.85rem}.stock-quick-nav{margin-right:-.5rem}.stock-quick-nav>span{display:none}.stock-section__header{align-items:stretch}.stock-section__header>div{flex:1 1 100%}.stock-section__header>.btn{width:100%}.stock-section__filters{align-items:stretch;padding:.65rem}.stock-section__filters .search-input-wrap,.stock-section__filters .m3-text-field,.stock-section__filters .btn{flex:1 1 100%;width:100%;max-width:none}.stock-row-actions{justify-content:flex-start}}.show-on-mobile{display:none!important}@media(max-width:720px){.show-on-mobile{display:block!important}}@media(prefers-reduced-motion:reduce){.site-public .site-block-reveal{transform:none;transition:opacity .35s ease-out}.site-public .site-block-reveal--visible{transform:none}}@media(max-width:768px){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]),select,textarea{font-size:max(16px,1rem)}}@media print{.no-print,.layout-desktop-sidebar,.layout-header,.layout-burger,.layout-nav-drawer,.layout-overlay,.page-actions{display:none!important}.layout,.layout-content,.layout-main,.page{background:#fff!important;padding:0!important}.bulletin-print-area{max-width:100%!important;box-shadow:none!important;border:1px solid #ddd!important}}:root{--color-bg: #f8fafc;--color-bg-toolbar: #f1f5f9;--color-bg-muted: #f1f5f9;--color-bg-subtle: #f8fafc;--color-border: #e2e8f0;--color-border-light: #eef2f6;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-xl: 12px;--radius-btn: 8px;--radius-btn-sm: 6px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 4px 12px rgba(15, 23, 42, .06);--shadow-lg: 0 8px 24px rgba(15, 23, 42, .08);--shadow-focus: 0 0 0 3px color-mix(in srgb, var(--color-primary) 22%, transparent);--m3-text-field-radius: var(--radius-md);--m3-text-field-padding-x: 12px;--m3-text-field-padding-y: 9px;--m3-text-field-transition: .15s ease}h1,h2,h3,.page-title{color:var(--color-text);letter-spacing:-.02em}.page-title{font-weight:var(--font-semibold)}.card-header{background:var(--color-bg-subtle);color:var(--color-text);font-weight:var(--font-semibold);border-bottom:1px solid var(--color-border-light)}.card{box-shadow:none;border:1px solid var(--color-border);border-radius:var(--radius-lg)}.btn{font-weight:var(--font-medium);box-shadow:none}.btn-primary{background:var(--color-primary);color:var(--color-on-primary, #fff)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover, var(--color-primary));filter:brightness(1.05)}.btn-secondary{background:var(--color-bg-card);border:1px solid var(--color-border);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-subtle);border-color:color-mix(in srgb,var(--color-border) 70%,var(--color-text-muted))}.btn-outline{border-color:var(--color-border)}.form-control{border-radius:var(--radius-md);border-color:var(--color-border);min-height:40px;padding:9px 12px}.form-control:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.tag{border-radius:999px;font-weight:var(--font-medium)}.table th{font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.01em;color:var(--color-text-muted);background:var(--color-bg-subtle)}.table th.table-th-static{vertical-align:middle}.table th.table-th-static .table-th-static-label{display:inline-block;text-transform:none}.modal-overlay .card,[role=dialog] .card{border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}:root{font-family:var(--font-sans);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg)}*{box-sizing:border-box}html{height:100%}body{margin:0;min-height:100%;height:100%;-webkit-tap-highlight-color:rgba(26,58,82,.12)}input,textarea,select{font-family:inherit}#root{min-height:100%;height:100%}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}@media(max-width:960px){.site-editor-layout{grid-template-columns:1fr!important}}
