:root{--p-white: #ffffff;--p-black-rgb: 0, 0, 0;--p-ink: #1a1a2e;--p-gray-50: #F9FAFB;--p-gray-100: #F3F4F6;--p-gray-200: #E5E7EB;--p-gray-500: #6b7280;--p-blue-50: #E8F0FB;--p-blue-400: #4D8DD4;--p-blue-600: #185FA5;--p-blue-800: #0F3D6E;--p-teal-50: #E0F5F3;--p-teal-600: #16776d;--p-green-50: #E3F5EB;--p-green-600: #1b7b3e;--p-amber-50: #FFF3D6;--p-amber-600: #945f00;--p-amber-900: #92400e;--p-red-50: #FDECEA;--p-red-600: #c0392b;--p-coral-500: #c9302c;--p-pink-50: #FCE4EC;--p-pink-600: #C2185B;--p-purple-50: #f3e8fd;--p-purple-600: #7c3aed;--p-purple-900: #4c1d95;--p-gold-600: #8a6508;--p-yellow-200: #F5E27A;--p-yellow-950: #453900;--p-yellow-800: #665500;--p-lime-200: #C0DD97;--p-lime-950: #173404;--p-lime-800: #27500A;--p-lime-400: #97C459;--p-orange-200: #FAC775;--p-orange-950: #412402;--p-orange-800: #633806;--p-sky-200: #B5D4F4;--p-sky-950: #042C53;--p-sky-800: #0C447C;--p-gray-900: #1a1a1a;--p-red-300: #fca5a5;--p-green-400: #4ade80;--p-amber-400: #fbbf24;--p-amber-300: #fcd34d;--p-teal-400: #2dd4bf;--p-purple-300: #c4b5fd;--p-purple-200: #ddd6fe;--p-coral-300: #f9a39c;--p-gold-400: #e0b341;--p-pink-300: #f9a8d4;--color-primary: var(--p-blue-600);--color-primary-soft: var(--p-blue-50);--color-primary-mid: var(--p-blue-400);--color-primary-strong: var(--p-blue-800);--color-on-primary: var(--p-white);--color-primary-deep: color-mix(in srgb, var(--color-primary) 70%, rgb(var(--p-black-rgb)));--color-primary-on-surface: var(--color-primary);--color-primary-on-soft: var(--color-primary);--color-secondary: var(--p-amber-600);--color-secondary-soft: var(--p-amber-50);--color-secondary-strong: var(--p-amber-900);--color-accent: var(--color-secondary);--color-accent-soft: var(--color-secondary-soft);--color-bg: var(--p-gray-50);--color-surface: var(--p-white);--color-surface-muted: var(--p-gray-100);--color-text: var(--p-ink);--color-text-muted: var(--p-gray-500);--color-border: var(--p-gray-200);--color-danger: var(--p-red-600);--color-danger-soft: var(--p-red-50);--color-success: var(--p-green-600);--color-success-soft: var(--p-green-50);--color-warning: var(--p-amber-600);--color-warning-soft: var(--p-amber-50);--color-warning-strong: var(--p-amber-900);--color-info: var(--p-teal-600);--color-info-soft: var(--p-teal-50);--color-on-status: var(--p-white);--color-paper: var(--p-white);--color-on-paper: var(--p-ink);--color-scrim: rgba(var(--p-black-rgb), .5);--color-on-scrim: var(--p-white);--color-tag-purple: var(--p-purple-600);--color-tag-purple-soft: var(--p-purple-50);--color-tag-purple-strong: var(--p-purple-900);--color-tag-coral: var(--p-coral-500);--color-tag-coral-soft: var(--p-red-50);--color-tag-gold: var(--p-gold-600);--color-tag-pink: var(--p-pink-600);--color-tag-pink-soft: var(--p-pink-50);--color-danger-sombre: var(--p-red-300);--color-danger-soft-sombre: color-mix(in srgb, var(--p-red-300) 12%, var(--color-surface));--color-success-sombre: var(--p-green-400);--color-success-soft-sombre: color-mix(in srgb, var(--p-green-400) 12%, var(--color-surface));--color-warning-sombre: var(--p-amber-400);--color-warning-soft-sombre: color-mix(in srgb, var(--p-amber-400) 12%, var(--color-surface));--color-warning-strong-sombre: var(--p-amber-300);--color-info-sombre: var(--p-teal-400);--color-info-soft-sombre: color-mix(in srgb, var(--p-teal-400) 12%, var(--color-surface));--color-on-status-sombre: var(--p-gray-900);--color-tag-purple-sombre: var(--p-purple-300);--color-tag-purple-soft-sombre: color-mix(in srgb, var(--p-purple-300) 12%, var(--color-surface));--color-tag-purple-strong-sombre: var(--p-purple-200);--color-tag-coral-sombre: var(--p-coral-300);--color-tag-coral-soft-sombre: color-mix(in srgb, var(--p-coral-300) 12%, var(--color-surface));--color-tag-gold-sombre: var(--p-gold-400);--color-tag-pink-sombre: var(--p-pink-300);--color-tag-pink-soft-sombre: color-mix(in srgb, var(--p-pink-300) 12%, var(--color-surface));--color-step-done: var(--p-yellow-200);--color-step-done-on: var(--p-yellow-950);--color-step-done-sub: var(--p-yellow-800);--color-step-open: var(--p-lime-200);--color-step-open-on: var(--p-lime-950);--color-step-open-sub: var(--p-lime-800);--color-step-open-border: var(--p-lime-400);--color-step-locked: var(--p-orange-200);--color-step-locked-on: var(--p-orange-950);--color-step-locked-sub: var(--p-orange-800);--color-step-selected: var(--p-sky-200);--color-step-selected-on: var(--p-sky-950);--color-step-selected-sub: var(--p-sky-800);--color-media-bg: var(--p-gray-900);--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading: var(--font-body);--fs-xs: 11px;--fs-sm: 12px;--fs-md: 13px;--fs-base: 14px;--fs-lg: 16px;--fs-xl: 20px;--fs-2xl: 24px;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-pill: 999px;--shadow: 0 1px 4px rgba(var(--p-black-rgb), .08), 0 2px 12px rgba(var(--p-black-rgb), .06);--shadow-md: 0 4px 16px rgba(var(--p-black-rgb), .12);--shadow-hover: 0 6px 16px rgba(var(--p-black-rgb), .14);--shadow-header: 0 2px 8px rgba(var(--p-black-rgb), .2);--shadow-drawer: 4px 0 24px rgba(var(--p-black-rgb), .18);--shadow-icon: 0 3px 5px rgba(var(--p-black-rgb), .4);--blue: var(--color-primary);--blue-light: var(--color-primary-soft);--blue-mid: var(--color-primary-mid);--blue-dark: var(--color-primary-strong);--teal: var(--color-info);--teal-light: var(--color-info-soft);--green: var(--color-success);--green-light: var(--color-success-soft);--amber: var(--color-warning);--amber-light: var(--color-warning-soft);--coral: var(--color-tag-coral);--coral-light: var(--color-tag-coral-soft);--red: var(--color-danger);--red-light: var(--color-danger-soft);--pink: var(--color-tag-pink);--pink-light: var(--color-tag-pink-soft);--purple: var(--color-tag-purple);--gray: var(--color-text-muted);--gray-light: var(--color-surface-muted);--on-blue: var(--color-on-primary);--on-red: var(--color-on-status);--on-green: var(--color-on-status);--on-amber: var(--color-on-status);--on-teal: var(--color-on-status);--on-coral: var(--color-on-status);--on-pink: var(--color-on-status);--on-purple: var(--color-on-status);--on-gray: var(--color-surface);--gray-border: var(--color-border);--border: var(--color-border);--text: var(--color-text);--text-secondary: var(--color-text-muted);--text-muted: var(--color-text-muted);--text-warning: var(--color-warning-strong);--bg: var(--color-surface);--card-bg: var(--color-surface);--bg-secondary: var(--color-bg);--background-secondary: var(--color-bg);--radius: var(--radius-md);--header-h: 56px;--nav-w: 220px;--content-max: 760px}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-body);background:var(--color-bg);color:var(--color-text)}h1,h2,h3,h4{margin:0;font-family:var(--font-heading)}p{margin:0}button{font-family:inherit}a{color:inherit}.app-shell{min-height:100vh;display:flex;flex-direction:column;background-image:var(--app-fond, none);background-size:cover;background-attachment:fixed;background-position:center}.app-header{position:sticky;top:0;z-index:200;height:var(--header-h);background:var(--color-primary);color:var(--color-on-primary);display:flex;align-items:center;justify-content:space-between;padding:0 16px;box-shadow:var(--shadow-header);flex-shrink:0}.app-header-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--color-on-primary);min-width:0;overflow:hidden}.app-header-brand-logo{width:36px;height:36px;object-fit:contain;border-radius:var(--radius-md);background:var(--p-white);padding:2px;flex-shrink:0}.app-header-brand-name{font-family:var(--font-heading);font-weight:700;font-size:var(--fs-lg);line-height:1.2}.app-header-brand-sub{font-size:var(--fs-xs);opacity:.75}.app-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.app-hamburger{display:none;background:color-mix(in srgb,var(--color-on-primary) 10%,transparent);border:none;color:var(--color-on-primary);width:38px;height:38px;border-radius:var(--radius-md);cursor:pointer;font-size:20px;align-items:center;justify-content:center;flex-shrink:0}.app-logout-btn{background:color-mix(in srgb,var(--color-on-primary) 10%,transparent);border:none;color:var(--color-on-primary);padding:6px 12px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-sm);font-family:inherit;white-space:nowrap}.app-body{display:flex;flex:1}.app-sidebar{width:var(--nav-w);background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:var(--header-h);height:calc(100vh - var(--header-h));overflow-y:auto}.app-sidebar-nav{padding:12px 8px;flex:1}.app-sidebar-link{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-md);text-decoration:none;color:var(--color-text-muted);font-size:var(--fs-base);font-weight:500;transition:background .15s,color .15s;margin-bottom:2px}.app-sidebar-link:hover{background:var(--color-primary-soft);color:var(--color-primary-on-soft)}.app-sidebar-link.active{background:var(--color-primary-soft);color:var(--color-primary-on-soft);font-weight:600;box-shadow:inset 3px 0 0 var(--color-secondary)}.app-sidebar-icon{font-size:18px;width:24px;text-align:center;flex-shrink:0}.app-sidebar-separator{margin:14px 12px 6px;padding-top:10px;border-top:1px solid var(--color-border);text-align:center;font-size:var(--fs-xs);font-weight:700;letter-spacing:1px;color:var(--color-text-muted);opacity:.7}.app-nav-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-scrim);z-index:299}.app-nav-overlay.open{display:block}.app-drawer{position:fixed;top:0;left:0;bottom:0;width:80vw;max-width:300px;background:var(--color-surface);z-index:300;display:flex;flex-direction:column;transform:translate(-100%);transition:transform .25s ease;box-shadow:var(--shadow-drawer)}.app-drawer.open{transform:translate(0)}.app-drawer-header{background:var(--color-primary);color:var(--color-on-primary);padding:16px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.app-drawer-close{background:color-mix(in srgb,var(--color-on-primary) 10%,transparent);border:none;color:var(--color-on-primary);width:32px;height:32px;border-radius:var(--radius-sm);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center}.app-drawer-nav{padding:12px 8px;overflow-y:auto;flex:1}.app-drawer-link{display:flex;align-items:center;gap:14px;padding:13px 14px;border-radius:var(--radius-md);text-decoration:none;color:var(--color-text);font-size:var(--fs-base);font-weight:500;border-bottom:1px solid var(--color-border);transition:background .15s}.app-drawer-link:last-child{border-bottom:none}.app-drawer-link.active{color:var(--color-primary-on-soft);font-weight:600;background:var(--color-primary-soft);box-shadow:inset 3px 0 0 var(--color-secondary)}.app-drawer-footer{padding:16px;border-top:1px solid var(--color-border)}.app-drawer-logout{display:block;width:100%;background:var(--color-danger-soft);color:var(--color-danger);border:none;padding:12px;border-radius:var(--radius-md);font-size:var(--fs-base);font-weight:600;cursor:pointer;font-family:inherit}.app-main{flex:1;min-width:0;padding:16px 16px 32px}.app-main-inner{max-width:var(--content-max);margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px}.page-header-text h1{font-size:var(--fs-xl);font-weight:600;color:var(--color-text);margin-bottom:2px}.page-header-text p{font-size:var(--fs-md);color:var(--color-text-muted)}.page-header-actions{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0}.flex-wrap-gap{display:flex;flex-wrap:wrap;gap:8px}.grid-2col{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid-3col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.grid-info{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:13px}.week-nav{display:flex;justify-content:space-between;align-items:center;background:var(--color-surface);border-radius:10px;padding:10px 16px;margin-bottom:16px;box-shadow:var(--shadow);border:1px solid var(--gray-border);gap:8px}.week-nav-label{font-weight:700;font-size:15px;color:var(--color-primary-on-surface);text-align:center;flex:1}.admin-tabs{display:flex;gap:4px;margin-bottom:16px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px;border-bottom:2px solid var(--color-border)}.admin-tabs::-webkit-scrollbar{display:none}.admin-tab{display:inline-flex;align-items:center;padding:8px 16px;border:none;background:transparent;color:var(--color-text-muted);font-size:var(--fs-md);font-weight:500;cursor:pointer;font-family:inherit;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-2px;border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:color .15s,border-color .15s}.admin-tab:hover{color:var(--color-primary-on-soft);background:var(--color-primary-soft)}.admin-tab.active{color:var(--color-primary-on-surface);font-weight:700;border-bottom-color:var(--color-primary)}.onglets-pilules{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.onglet-pilule{display:inline-flex;align-items:center;padding:6px 14px;border:none;border-radius:var(--radius-pill);background:var(--color-surface-muted);color:var(--color-text-muted);font-size:var(--fs-sm);font-weight:600;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.onglet-pilule:hover{background:var(--color-primary-soft);color:var(--color-primary-on-soft)}.onglet-pilule.active{background:var(--color-primary);color:var(--color-on-primary)}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius)}.caci-thumb-wrap{position:relative;display:block;width:240px;max-width:100%;border-radius:10px;overflow:hidden;cursor:pointer}.caci-thumb-wrap img,.caci-thumb-wrap canvas,.caci-thumb-wrap .caci-thumb-pdf{width:100%;height:220px;object-fit:cover;display:block}.caci-thumb-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-scrim);display:flex;align-items:center;justify-content:center;color:var(--p-white);font-weight:700;font-size:14px;letter-spacing:.03em;opacity:0;transition:opacity .15s}.caci-thumb-wrap:hover .caci-thumb-overlay{opacity:1}.tableau-qualifs .qt-mobile{display:none;font-size:11px;color:var(--text-secondary);font-weight:400}.tableau-qualifs .qt-validation-courte{display:none}@media (max-width: 640px){.app-header-brand-sub{display:none}.app-header{padding:0 10px;gap:8px}.app-header-bienvenue,.app-header .selecteur-profil-libelle{display:none}.app-header-brand-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tableau-qualifs .qt-large{display:none}.tableau-qualifs .qt-mobile{display:block}.tableau-qualifs .qt-validation-courte{display:inline}.tableau-qualifs .qt-validation-longue{display:none}.app-hamburger{display:flex}.app-logout-btn,.app-sidebar{display:none}.app-main{padding:12px 10px 24px}.page-header{flex-direction:column;align-items:stretch}.page-header-actions{flex-wrap:wrap}.page-header-actions>*{flex:1;min-width:0;text-align:center;justify-content:center}.week-nav{flex-wrap:wrap;padding:10px 12px}.week-nav-label{order:-1;width:100%;font-size:14px;text-align:center;margin-bottom:4px}.grid-2col,.grid-3col,.grid-info{grid-template-columns:1fr}.admin-tabs{margin-left:-10px;margin-right:-10px;padding-left:10px;padding-right:10px}.caci-thumb-wrap{width:100%}}@media (min-width: 641px) and (max-width: 1024px){.app-hamburger{display:flex}.app-logout-btn,.app-sidebar{display:none}.app-main-inner{max-width:100%}.grid-3col{grid-template-columns:1fr 1fr}}@media (min-width: 1025px){.app-hamburger{display:none!important}.app-sidebar{display:flex}.app-drawer,.app-nav-overlay{display:none!important}.app-logout-btn{display:block}.app-main{padding:24px 32px}.app-main-inner{max-width:900px}}.btn-hover{transition:opacity .15s,background-color .15s,filter .15s}.btn-hover:not(:disabled):hover{filter:brightness(.9)}.btn-hover[data-variant=ghost]:not(:disabled):hover{background-color:var(--gray-light)!important}.btn-hover[data-variant=secondary]:not(:disabled):hover{background-color:color-mix(in srgb,var(--color-primary) 10%,var(--color-primary-soft))!important}.mes-activites-carte{transition:background-color .15s,box-shadow .15s}.mes-activites-carte:hover{background-color:var(--blue-light)!important;box-shadow:var(--shadow-hover)!important}.mes-activites-icone-agenda{transition:font-size .15s,filter .15s}.mes-activites-icone-agenda:hover{font-size:23px!important;filter:drop-shadow(var(--shadow-icon))}.btn-hover[data-variant=danger]:not(:disabled):hover{background-color:color-mix(in srgb,var(--color-danger) 10%,var(--color-danger-soft))!important}.btn-hover[data-variant=success]:not(:disabled):hover{background-color:color-mix(in srgb,var(--color-success) 10%,var(--color-success-soft))!important}:is(.app-shell,.app-login) :focus-visible{outline:2px solid var(--color-primary-on-surface)!important;outline-offset:2px}:is(.app-header,.app-drawer-header) :focus-visible{outline-color:var(--color-on-primary)!important}:where(.app-shell,.app-login) :where(input,select,textarea){color:var(--color-text)}:where(.app-shell,.app-login) :where(select,textarea){background-color:var(--color-surface)}:where(.app-shell,.app-login) option{color:var(--color-text);background-color:var(--color-surface)}:is(.app-shell,.app-login) :is(button,input,select,textarea):disabled,.btn-hover:disabled{cursor:not-allowed!important;opacity:.5}:is(.app-shell,.app-login) :is(input,select,textarea):disabled{opacity:.65}:is(.app-shell,.app-login) button[aria-busy=true]:disabled,.btn-hover[aria-busy=true]:disabled{opacity:.8}:is(.app-shell,.app-login) button[aria-busy=true],.btn-hover[aria-busy=true]{cursor:progress!important}:is(.app-shell,.app-login) button[aria-busy=true]:before,.btn-hover[aria-busy=true]:before{content:"";width:.9em;height:.9em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}@media (pointer: coarse){:is(.app-shell,.app-login) :is(button,select,[role=button],[role=tab]):not(.cible-compacte),:is(.app-shell,.app-login) input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]):not([type=range]):not([type=hidden]){min-height:44px}:is(.app-shell,.app-login) :is(button,[role=button]):not(.cible-compacte){min-width:44px}:is(.app-shell,.app-login) :is(input[type=checkbox],input[type=radio]){width:22px;height:22px}}@media print{html:root{--color-bg: var(--p-white) !important;--color-surface: var(--p-white) !important;--color-surface-muted: var(--p-gray-100) !important;--color-text: var(--p-ink) !important;--color-text-muted: var(--p-gray-500) !important;--color-border: var(--p-gray-200) !important;--app-fond: none !important}body,.app-shell,.app-main{background:var(--p-white)!important}.app-header,.app-sidebar,.app-drawer,.app-nav-overlay,.page-header-actions,button:not(.imprimable){display:none!important}.app-main{padding:0!important}.app-main-inner{max-width:none!important}.app-shell *{box-shadow:none!important}.app-shell{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
