*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #166534;--color-primary-hover: #14532d;--color-primary-light: #dcfce7;--color-primary-mid: #86efac;--color-accent: #d97706;--color-accent-hover: #b45309;--color-accent-light: #fef3c7;--color-bg: #f8fdf9;--color-surface: #ffffff;--color-surface-muted: #f0fdf4;--color-surface-hover: #f0fdf4;--color-text: #0f172a;--color-text-muted: #475569;--color-text-subtle: #94a3b8;--color-text-inverse: #ffffff;--color-border: #d1fae5;--color-border-strong: #6ee7b7;--color-border-input: #cbd5e1;--color-error: #dc2626;--color-error-bg: #fef2f2;--color-error-border: #fca5a5;--color-success: #16a34a;--color-success-bg: #f0fdf4;--color-success-border:#86efac;--color-warning: #d97706;--color-warning-bg: #fffbeb;--color-info: #0891b2;--color-info-bg: #ecfeff;--color-nav-bg: #166534;--color-nav-border: #14532d;--color-nav-text: #dcfce7;--color-nav-text-hover:#ffffff;--color-branch-scouts: #166534;--color-branch-scouts-bg: #dcfce7;--color-branch-guides: #1d4ed8;--color-branch-guides-bg: #dbeafe;--color-branch-louveteaux: #b45309;--color-branch-louveteaux-bg: #fed7aa;--color-branch-louvettes: #be185d;--color-branch-louvettes-bg: #fce7f3;--color-branch-famille: #6b21a8;--color-branch-famille-bg: #f3e8ff;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .04);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .06), 0 1px 2px -1px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .07), 0 2px 4px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -4px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .08), 0 8px 10px -6px rgba(0, 0, 0, .05);--shadow-focus: 0 0 0 3px rgba(22, 101, 52, .25);--shadow-focus-error: 0 0 0 3px rgba(220, 38, 38, .2);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.375rem;--font-size-2xl: 1.75rem;--font-size-3xl: 2.25rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-snug: 1.375;--line-height-normal: 1.6;--line-height-relaxed: 1.75;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-5: 1.25rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-10: 2.5rem;--spacing-12: 3rem;--spacing-16: 4rem;--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .4s;--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--z-base: 0;--z-raised: 10;--z-dropdown:100;--z-sticky: 200;--z-overlay: 500;--z-modal: 1000;--z-toast: 9999}html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-bg);background-image:url(/img/IMG_2370.jpeg);background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed;min-height:100dvh;display:flex;flex-direction:column}body:before{content:"";position:fixed;inset:0;background:#f8fdf9a6;z-index:0;pointer-events:none}header,main,footer{position:relative;z-index:1}header{z-index:2}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-text);margin-bottom:var(--spacing-4);letter-spacing:-.01em}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}h4{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}p{margin-bottom:var(--spacing-4);color:var(--color-text-muted);line-height:var(--line-height-relaxed)}a{color:var(--color-primary);text-decoration:none;transition:color var(--duration-fast) var(--ease-out)}a:hover{color:var(--color-primary-hover);text-decoration:underline}strong{font-weight:var(--font-weight-semibold)}.container{max-width:1400px;width:100%;margin:0 auto;padding:0 var(--spacing-4)}.container--narrow{max-width:800px}.container--wide{max-width:1600px}main{flex:1;padding:var(--spacing-6);max-width:1400px;width:100%;margin:0 auto}.page{animation:pageFadeIn var(--duration-normal) var(--ease-out)}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.hidden{display:none!important}.text-center{text-align:center}.text-muted{color:var(--color-text-muted)}.text-sm{font-size:var(--font-size-sm)}.text-uppercase{text-transform:uppercase;letter-spacing:.06em}.mt-4{margin-top:var(--spacing-4)}.mb-4{margin-bottom:var(--spacing-4)}.mt-6{margin-top:var(--spacing-6)}.mb-6{margin-bottom:var(--spacing-6)}.mt-8{margin-top:var(--spacing-8)}.mb-8{margin-bottom:var(--spacing-8)}.loading{display:inline-block;width:40px;height:40px;border:3px solid var(--color-primary-light);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-container{display:flex;justify-content:center;align-items:center;min-height:200px}footer{background:var(--color-surface);border-top:1px solid var(--color-border);padding:var(--spacing-6);text-align:center;margin-top:auto;box-shadow:0 -1px 0 var(--color-border)}footer p{color:var(--color-text-subtle);font-size:var(--font-size-sm);margin:0}@media(min-width:768px){.container{padding:0 var(--spacing-6)}main{padding:var(--spacing-8)}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}}@media(min-width:1024px){:root{--font-size-base: 1.0625rem}.container{padding:0 var(--spacing-8)}main{padding:var(--spacing-12)}}.skip-to-content{position:absolute;top:-100px;left:var(--spacing-4);background:var(--color-primary);color:var(--color-text-inverse);padding:var(--spacing-3) var(--spacing-6);border-radius:var(--radius-md);text-decoration:none;z-index:var(--z-toast);font-weight:var(--font-weight-medium)}.skip-to-content:focus{top:var(--spacing-4)}*:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(prefers-contrast:high){:root{--color-border: #166534;--color-text-muted: #0f172a}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-5);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);font-family:var(--font-family);line-height:1;text-align:center;text-decoration:none;white-space:nowrap;border:1.5px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out);min-height:44px;user-select:none;background:var(--color-surface);border-color:var(--color-border-input);color:var(--color-text)}.btn:hover{background:var(--color-surface-muted);border-color:var(--color-primary-mid);color:var(--color-primary);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn:active{transform:translateY(0);box-shadow:none}.btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none;transform:none}.btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse);box-shadow:var(--shadow-xs)}.btn--primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--color-text-inverse);box-shadow:var(--shadow-md)}.btn--accent{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-inverse);box-shadow:var(--shadow-xs)}.btn--accent:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-text-inverse);box-shadow:var(--shadow-md)}.btn--danger{background:var(--color-error);border-color:var(--color-error);color:var(--color-text-inverse)}.btn--danger:hover{background:#b91c1c;border-color:#b91c1c;color:var(--color-text-inverse)}.btn--success{background:var(--color-success);border-color:var(--color-success);color:var(--color-text-inverse)}.btn--success:hover{background:#15803d;border-color:#15803d;color:var(--color-text-inverse)}.btn--ghost{background:transparent;border-color:transparent;color:var(--color-text-muted)}.btn--ghost:hover{background:var(--color-surface-muted);border-color:transparent;color:var(--color-text);transform:none;box-shadow:none}.btn--small{padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-xs);min-height:36px;border-radius:var(--radius-sm)}.btn--large{padding:var(--spacing-4) var(--spacing-8);font-size:var(--font-size-base);min-height:52px;border-radius:var(--radius-lg)}.btn--block{display:flex;width:100%}label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);margin-bottom:var(--spacing-2)}label .required{color:var(--color-error);margin-left:2px}input[type=text],input[type=password],input[type=email],input[type=date],input[type=time],input[type=number],textarea,select{width:100%;padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-base);font-family:var(--font-family);line-height:var(--line-height-normal);background:var(--color-surface);border:1.5px solid var(--color-border-input);border-radius:var(--radius-md);color:var(--color-text);outline:none;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out);min-height:44px;-webkit-appearance:none;appearance:none}select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2394a3b8'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-3) center;background-size:1rem;padding-right:var(--spacing-10)}input::placeholder,textarea::placeholder{color:var(--color-text-subtle)}input:focus,textarea:focus,select:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}input:disabled,textarea:disabled,select:disabled{opacity:.5;cursor:not-allowed;background:var(--color-surface-muted)}input:user-invalid,textarea:user-invalid{border-color:var(--color-error)}textarea{min-height:120px;resize:vertical}.form-error{display:flex;align-items:center;gap:var(--spacing-1);font-size:var(--font-size-sm);color:var(--color-error);margin-top:var(--spacing-2)}.form-hint{font-size:var(--font-size-sm);color:var(--color-text-subtle);margin-top:var(--spacing-2)}.form-group--error input,.form-group--error textarea,.form-group--error select{border-color:var(--color-error);box-shadow:var(--shadow-focus-error)}input[type=checkbox],input[type=radio]{width:auto;min-height:auto;margin-right:var(--spacing-2);accent-color:var(--color-primary);border-radius:var(--radius-sm);-webkit-appearance:auto;appearance:auto}.form-check{display:flex;align-items:center;margin-bottom:var(--spacing-4);gap:var(--spacing-2)}.form-check label{font-weight:var(--font-weight-normal);margin-bottom:0;cursor:pointer}.error-message,.success-message,.info-message,.warning-message{display:flex;align-items:flex-start;gap:var(--spacing-3);padding:var(--spacing-4) var(--spacing-5);border:1px solid;border-radius:var(--radius-md);margin-bottom:var(--spacing-6);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.error-message{background:var(--color-error-bg);border-color:var(--color-error-border);color:var(--color-error)}.success-message{background:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success)}.info-message{background:var(--color-info-bg);border-color:#a5f3fc;color:var(--color-info)}.warning-message{background:var(--color-warning-bg);border-color:#fde68a;color:var(--color-warning)}.login-container{max-width:420px;margin:var(--spacing-12) auto;padding:var(--spacing-8) var(--spacing-8);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl)}.login-container h2{margin-bottom:var(--spacing-2);text-align:center;font-size:var(--font-size-2xl);color:var(--color-primary)}.login-container .login-subtitle{text-align:center;color:var(--color-text-muted);margin-bottom:var(--spacing-8);font-size:var(--font-size-sm)}.login-form{margin-top:var(--spacing-4)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-6);margin-bottom:var(--spacing-6);box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.card:hover{background:var(--color-surface);border-color:var(--color-primary-mid);box-shadow:var(--shadow-md);transform:translateY(-2px)}.card__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-3);line-height:var(--line-height-snug)}.card__subtitle{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-primary);margin-bottom:var(--spacing-3);text-transform:uppercase;letter-spacing:.07em}.card__content{color:var(--color-text-muted);line-height:var(--line-height-relaxed);font-size:var(--font-size-sm)}.card__footer{margin-top:var(--spacing-6);padding-top:var(--spacing-4);border-top:1px solid var(--color-border);display:flex;gap:var(--spacing-3);flex-wrap:wrap;align-items:center}.navbar{position:sticky;top:0;background:var(--color-nav-bg);border-bottom:1px solid var(--color-nav-border);padding:0 var(--spacing-6);z-index:var(--z-sticky);box-shadow:var(--shadow-md)}.nav-container{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-4);height:60px}.logo{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-inverse);letter-spacing:-.01em;display:flex;align-items:center;gap:var(--spacing-3);margin:0;text-decoration:none;flex-shrink:0}.logo:hover{color:var(--color-text-inverse);text-decoration:none}.logo-image{height:30px;width:auto;display:block}.logo-text{display:inline-block}.nav-menu{display:flex;gap:var(--spacing-2);list-style:none;align-items:center}.nav-link{color:var(--color-nav-text);text-decoration:none;font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);transition:color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-md);white-space:nowrap}.nav-link:hover,.nav-link.active{color:var(--color-nav-text-hover);background:#ffffff26;text-decoration:none}#username-display{color:var(--color-nav-text);font-weight:var(--font-weight-normal);font-size:var(--font-size-sm);padding:var(--spacing-1) var(--spacing-3);background:#ffffff1a;border-radius:var(--radius-full)}#user-info{display:flex;align-items:center;gap:var(--spacing-3)}.navbar .btn,#logout-btn{background:#ffffff1f;border-color:#fff6;color:var(--color-text-inverse);font-size:var(--font-size-xs);min-height:36px;padding:var(--spacing-2) var(--spacing-4)}.navbar .btn:hover,#logout-btn:hover{background:#ffffff40;border-color:#ffffffb3;color:var(--color-text-inverse);transform:none;box-shadow:none}.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:var(--spacing-2);z-index:calc(var(--z-sticky) + 1);border-radius:var(--radius-sm)}.hamburger,.hamburger:before,.hamburger:after{display:block;width:22px;height:2px;background:var(--color-text-inverse);transition:all var(--duration-normal) var(--ease-out);border-radius:var(--radius-full)}.hamburger{position:relative}.hamburger:before,.hamburger:after{content:"";position:absolute;left:0}.hamburger:before{top:-7px}.hamburger:after{top:7px}.nav-toggle.active .hamburger{background:transparent}.nav-toggle.active .hamburger:before{transform:rotate(45deg);top:0}.nav-toggle.active .hamburger:after{transform:rotate(-45deg);top:0}@media(max-width:767px){.nav-toggle{display:block}.nav-menu{position:fixed;inset:60px 0 0;background:var(--color-nav-bg);flex-direction:column;align-items:stretch;gap:0;max-height:0;overflow-y:auto;overscroll-behavior:contain;transition:max-height var(--duration-normal) var(--ease-out);border-bottom:1px solid var(--color-nav-border);box-shadow:var(--shadow-lg);z-index:var(--z-modal)}.nav-menu.active{max-height:calc(100dvh - 60px)}body.nav-open{overflow:hidden}body.nav-open .navbar{z-index:var(--z-modal)}.nav-menu li{width:100%;border-top:1px solid rgba(255,255,255,.08)}.nav-link{display:block;width:100%;padding:var(--spacing-4) var(--spacing-6);border-radius:0}#logout-btn{width:calc(100% - var(--spacing-12));margin:var(--spacing-4) var(--spacing-6)}}.dialog-overlay{position:fixed;inset:0;background:#0f172a99;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--spacing-4);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.dialog{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);max-width:520px;width:100%;padding:var(--spacing-8);max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:dialogEnter var(--duration-normal) var(--ease-spring)}@keyframes dialogEnter{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.dialog__header{margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-4);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-4)}.dialog__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0;line-height:var(--line-height-tight)}.dialog__content{margin-bottom:var(--spacing-6);color:var(--color-text-muted);line-height:var(--line-height-relaxed);font-size:var(--font-size-sm)}.dialog__footer{display:flex;gap:var(--spacing-3);justify-content:flex-end;padding-top:var(--spacing-4);border-top:1px solid var(--color-border);flex-wrap:wrap}.toast-container{position:fixed;top:var(--spacing-6);right:var(--spacing-6);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--spacing-3);max-width:380px}.toast{display:flex;align-items:flex-start;gap:var(--spacing-3);padding:var(--spacing-4) var(--spacing-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);transform:translate(calc(100% + var(--spacing-6)));transition:transform var(--duration-normal) var(--ease-out),opacity var(--duration-normal) var(--ease-out);opacity:0}.toast--show{transform:translate(0);opacity:1}.toast__icon{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);margin-top:1px}.toast__message{flex:1;color:var(--color-text);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.toast__close{background:none;border:none;font-size:var(--font-size-base);cursor:pointer;color:var(--color-text-subtle);padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out);flex-shrink:0}.toast__close:hover{color:var(--color-text);background:var(--color-surface-muted)}.toast--success{border-color:var(--color-success-border);border-left:3px solid var(--color-success)}.toast--success .toast__icon{color:var(--color-success)}.toast--error{border-color:var(--color-error-border);border-left:3px solid var(--color-error)}.toast--error .toast__icon{color:var(--color-error)}.toast--info{border-color:#a5f3fc;border-left:3px solid var(--color-info)}.toast--info .toast__icon{color:var(--color-info)}.toast--warning{border-color:#fde68a;border-left:3px solid var(--color-warning)}.toast--warning .toast__icon{color:var(--color-warning)}@media(max-width:767px){.toast-container{right:var(--spacing-4);left:var(--spacing-4);max-width:none}.toast{padding:var(--spacing-3) var(--spacing-4)}.dialog{padding:var(--spacing-6);border-radius:var(--radius-lg)}}.spinner{display:inline-block;width:20px;height:20px;border:2.5px solid var(--color-primary-light);border-radius:var(--radius-full);border-top-color:var(--color-primary);animation:spinner-spin .65s linear infinite;flex-shrink:0}.spinner--large{width:40px;height:40px;border-width:3.5px}@keyframes spinner-spin{to{transform:rotate(360deg)}}.loading-overlay{position:fixed;inset:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.loading-overlay__content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--spacing-8);text-align:center;box-shadow:var(--shadow-xl);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-4)}.is-loading{position:relative;pointer-events:none;opacity:.6}.is-loading:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:24px;height:24px;border:2.5px solid var(--color-primary-light);border-radius:var(--radius-full);border-top-color:var(--color-primary);animation:spinner-spin .65s linear infinite}.badge{display:inline-flex;align-items:center;gap:var(--spacing-1);padding:2px var(--spacing-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-full);line-height:1.5;white-space:nowrap}.badge--primary{background:var(--color-primary-light);color:var(--color-primary)}.badge--success{background:var(--color-success-bg);color:var(--color-success)}.badge--error{background:var(--color-error-bg);color:var(--color-error)}.badge--warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge--info{background:var(--color-info-bg);color:var(--color-info)}.page-header{margin-bottom:var(--spacing-8);padding-bottom:var(--spacing-6);border-bottom:1px solid var(--color-border)}.page-header__title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin-bottom:var(--spacing-2);line-height:var(--line-height-tight)}.page-header__subtitle{color:var(--color-text-muted);font-size:var(--font-size-base);margin:0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-16) var(--spacing-8);text-align:center;color:var(--color-text-subtle);gap:var(--spacing-4)}.empty-state__icon{font-size:3rem;line-height:1;opacity:.5}.empty-state__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);margin:0}.empty-state__text{font-size:var(--font-size-sm);margin:0;max-width:40ch}.network-banner{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:var(--spacing-2, .5rem);padding:var(--spacing-3, .75rem) var(--spacing-4, 1rem);font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);text-align:center;color:#fff;transform:translateY(0);transition:transform .25s ease,opacity .25s ease;z-index:calc(var(--z-toast) - 1);box-shadow:0 2px 8px #0003}.network-banner--offline{background:var(--color-error, #b91c1c)}.network-banner--online{background:var(--color-success, #15803d)}.network-banner--hidden{transform:translateY(-100%);opacity:0;pointer-events:none}.network-banner__icon{font-size:1.1em}@media(prefers-reduced-motion:reduce){.network-banner{transition:none}}.zone-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-6);padding:var(--spacing-4);max-width:100%;margin:0 auto;width:100%;box-sizing:border-box}@media(min-width:768px){.zone-list{padding:var(--spacing-6);gap:var(--spacing-6)}}@media(min-width:1024px){.zone-list{padding:var(--spacing-8);gap:var(--spacing-8);max-width:1600px}}.zone-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-6);transition:box-shadow var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out);cursor:pointer;height:500px;display:flex;flex-direction:column;box-shadow:var(--shadow-sm)}.zone-card:hover{background:var(--color-surface);box-shadow:var(--shadow-lg);border-color:var(--color-primary-mid);transform:translateY(-3px)}.zone-card__header{margin-bottom:var(--spacing-4);padding-bottom:var(--spacing-4);border-bottom:1px solid var(--color-border);flex-shrink:0}.zone-card__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--spacing-2) 0;line-height:var(--line-height-snug)}.zone-card__id{font-size:var(--font-size-xs);color:var(--color-primary);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.07em}.zone-card__description{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0 0 var(--spacing-4) 0;line-height:var(--line-height-relaxed)}.zone-card__reservations{margin-top:var(--spacing-4);padding-top:var(--spacing-4);border-top:1px solid var(--color-border);flex:1;overflow-y:auto;min-height:0}.zone-card__reservations::-webkit-scrollbar{width:4px}.zone-card__reservations::-webkit-scrollbar-track{background:var(--color-surface-muted);border-radius:var(--radius-full)}.zone-card__reservations::-webkit-scrollbar-thumb{background:var(--color-primary-mid);border-radius:var(--radius-full)}.zone-card__reservations::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}.zone-card__reservations-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:.07em;margin-bottom:var(--spacing-3)}.zone-card__actions{margin-top:var(--spacing-4);padding-top:var(--spacing-4);border-top:1px solid var(--color-border);flex-shrink:0}.reservation-list--empty{font-style:italic;color:var(--color-text-subtle);font-size:var(--font-size-sm)}.zone-details{max-width:900px;margin:0 auto;padding:var(--spacing-6)}.zone-details__header{margin-bottom:var(--spacing-8);padding-bottom:var(--spacing-6);border-bottom:1px solid var(--color-border)}.zone-details__title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin-bottom:var(--spacing-3)}.zone-details__meta{display:flex;gap:var(--spacing-6);flex-wrap:wrap}.zone-details__meta-item{font-size:var(--font-size-sm);color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:.05em}.zone-details__meta-item strong{color:var(--color-text);font-weight:var(--font-weight-medium)}.zone-details__description{font-size:var(--font-size-base);color:var(--color-text-muted);line-height:var(--line-height-relaxed);margin-bottom:var(--spacing-8)}.zone-details__section{margin-bottom:var(--spacing-8)}.zone-details__section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text);margin-bottom:var(--spacing-4)}.zone-details__actions{display:flex;gap:var(--spacing-4);flex-wrap:wrap;padding-top:var(--spacing-6);border-top:1px solid var(--color-border)}.zone-filters{margin-bottom:var(--spacing-6);padding:var(--spacing-6);background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.zone-filters__title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-4)}.zone-filters__group{display:flex;gap:var(--spacing-4);flex-wrap:wrap}@media(min-width:768px){.zone-details{padding:var(--spacing-8)}.zone-details__header{margin-bottom:var(--spacing-12)}}@media(min-width:1024px){.zone-details{padding:var(--spacing-12)}}.home-page-content{display:flex;flex-direction:column;gap:var(--spacing-12);padding:var(--spacing-4);width:100%}@media(min-width:768px){.home-page-content{padding:var(--spacing-8)}}@media(min-width:1024px){.home-page-content{padding:var(--spacing-12);max-width:1600px;margin:0 auto}}.reservations-section{display:flex;flex-direction:column;gap:var(--spacing-4)}.section-header{display:flex;flex-direction:column;gap:var(--spacing-4);align-items:flex-start}.section-header h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0}.section-header .btn{width:100%}@media(min-width:768px){.section-header{flex-direction:row;justify-content:space-between;align-items:center;gap:var(--spacing-6)}.section-header h2{margin:0}.section-header .btn{width:auto}}.zones-section{display:flex;flex-direction:column;gap:var(--spacing-4)}.zones-section h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0}.zone-list--loading,.zone-list--error{text-align:center;padding:var(--spacing-8) var(--spacing-4);color:var(--color-text-muted);font-size:var(--font-size-base)}.zone-list--error{color:var(--color-error, #b91c1c);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-3)}.zone-list__retry{align-self:center}.modal-overlay{display:none;position:fixed;inset:0;background:#0f172a99;z-index:var(--z-modal);justify-content:center;align-items:center;padding:var(--spacing-4);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.modal-overlay.active{display:flex}body.modal-open{overflow:hidden}body.modal-open #footer-actions{display:none!important}.conflict-preview{font-size:var(--font-size-sm);line-height:var(--line-height-normal);border-radius:var(--radius-md);padding:0;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),padding var(--duration-fast) var(--ease-out)}.conflict-preview:empty{display:none}.conflict-preview--checking{color:var(--color-text-muted);padding:var(--spacing-2) var(--spacing-4);background:var(--color-surface-muted);border:1px dashed var(--color-border-strong)}.conflict-preview--ok{color:var(--color-success);padding:var(--spacing-3) var(--spacing-4);background:var(--color-success-bg);border:1px solid var(--color-success-border);font-weight:var(--font-weight-medium)}.conflict-preview--conflict{color:var(--color-error);padding:var(--spacing-3) var(--spacing-4);background:var(--color-error-bg);border:1px solid var(--color-error-border);font-weight:var(--font-weight-medium)}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--spacing-8);max-width:600px;width:100%;max-height:90vh;max-height:90dvh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:dialogEnter var(--duration-normal) var(--ease-spring)}.modal--small{max-width:420px}@media(max-width:767px){.modal-overlay{padding:var(--spacing-2);padding-bottom:max(var(--spacing-2),env(safe-area-inset-bottom));align-items:flex-end}.modal{padding:var(--spacing-5);max-height:95dvh;border-radius:var(--radius-lg)}}.modal__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-4);border-bottom:1px solid var(--color-border);gap:var(--spacing-4)}.modal__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0;line-height:var(--line-height-tight)}.modal__close{background:none;border:none;font-size:var(--font-size-xl);cursor:pointer;color:var(--color-text-subtle);padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out);flex-shrink:0}.modal__close:hover{color:var(--color-text);background:var(--color-surface-muted)}.reservation-form{display:flex;flex-direction:column;gap:var(--spacing-5)}.form-message{padding:var(--spacing-4) var(--spacing-5);border:1px solid;border-radius:var(--radius-md);display:none;font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.form-message--error{background:var(--color-error-bg);border-color:var(--color-error-border);color:var(--color-error)}.form-message--success{background:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success)}.btn-reserve{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-6);font-size:var(--font-size-sm);font-family:var(--font-family);font-weight:var(--font-weight-medium);background:var(--color-primary);color:var(--color-text-inverse);border:1.5px solid var(--color-primary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out);min-height:44px}.btn-reserve:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:var(--shadow-md)}.reservation-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-3) var(--spacing-4);display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-3);transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out);margin-bottom:var(--spacing-2);min-height:68px}.reservation-item:hover{background:var(--color-surface-muted);border-color:var(--color-primary-mid)}.reservation-item__content{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.reservation-item__group{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.reservation-item__dates{font-size:var(--font-size-xs);color:var(--color-text-subtle);line-height:1.4;white-space:nowrap}.reservation-item__title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-1)}.reservation-item__details{font-size:var(--font-size-xs);color:var(--color-text-muted)}.reservation-item__actions{display:flex;gap:var(--spacing-1);flex-shrink:0}.btn-icon{background:transparent;border:1px solid var(--color-border-input);border-radius:var(--radius-sm);cursor:pointer;font-size:.9rem;padding:var(--spacing-1) var(--spacing-2);color:var(--color-text-muted);transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out);min-height:32px;min-width:32px;display:flex;align-items:center;justify-content:center}.btn-icon:hover{background:var(--color-surface-muted);border-color:var(--color-primary-mid);color:var(--color-text)}.btn-icon.btn-edit:hover{background:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success)}.btn-icon.btn-delete:hover{background:var(--color-error-bg);border-color:var(--color-error-border);color:var(--color-error)}@media(max-width:767px){.reservation-item{flex-direction:column;align-items:stretch}.reservation-item__actions{justify-content:flex-end;padding-top:var(--spacing-3);border-top:1px solid var(--color-border)}.modal{padding:var(--spacing-6)}}.reservations-section{max-width:1400px;margin:0 auto;padding:var(--spacing-4)}.section-header--centered{display:flex;justify-content:center;margin-bottom:var(--spacing-6)}.btn-create-reservation{background:var(--color-primary);color:var(--color-text-inverse);border:1.5px solid var(--color-primary);border-radius:var(--radius-md);padding:var(--spacing-4) var(--spacing-8);font-size:var(--font-size-sm);font-family:var(--font-family);font-weight:var(--font-weight-semibold);letter-spacing:.03em;cursor:pointer;transition:background var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out);min-height:44px}.btn-create-reservation:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-create-reservation:focus{outline:none;box-shadow:var(--shadow-focus)}.btn-create-reservation:active{transform:translateY(0)}.reservations-title{text-align:center;margin-bottom:var(--spacing-4);font-size:var(--font-size-lg);color:var(--color-text)!important;font-weight:var(--font-weight-semibold)}.reservation-table{width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);border-collapse:collapse}.reservation-table__head{background:var(--color-surface-muted);border-bottom:1px solid var(--color-border)}.reservation-table__header{padding:var(--spacing-3) var(--spacing-5);text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text-muted);white-space:nowrap;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.07em}.reservation-table__body{background:var(--color-surface)}.reservation-table__row{border-top:1px solid var(--color-border);transition:background-color var(--duration-fast) var(--ease-out)}.reservation-table__row:hover{background:var(--color-primary-light)}.reservation-table__row:focus{outline:2px solid var(--color-primary);outline-offset:-2px}.reservation-table__cell{padding:var(--spacing-3) var(--spacing-5);text-align:left;color:var(--color-text-muted);font-size:var(--font-size-sm);word-wrap:break-word;overflow-wrap:break-word}.reservation-table__cell--clickable{cursor:pointer}.reservation-table__cell--headcount{text-align:right;padding-right:var(--spacing-6);font-variant-numeric:tabular-nums;font-weight:var(--font-weight-medium);color:var(--color-text)}.reservation-table__cell--branch{text-align:center}.badge--scouts{background:#dbeafe;color:#1e40af;border:1px solid #bfdbfe}.badge--guides{background:#f3e8ff;color:#6b21a8;border:1px solid #e9d5ff}.badge--louveteaux{background:#ffedd5;color:#c2410c;border:1px solid #fed7aa}.badge--louvettes{background:#fce7f3;color:#9d174d;border:1px solid #fbcfe8}.badge--famille{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.reservation-table__cell--actions{text-align:center;white-space:nowrap;padding:var(--spacing-2) var(--spacing-5)}.reservation-table__action-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--color-border-input);border-radius:var(--radius-sm);background:transparent;cursor:pointer;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out);margin:0 2px;color:var(--color-text-muted)}.reservation-table__action-btn:hover{background:var(--color-surface-muted);border-color:var(--color-primary-mid);color:var(--color-text)}.reservation-table__action-btn--edit{color:var(--color-accent)}.reservation-table__action-btn--edit:hover{color:var(--color-accent-hover);background:var(--color-accent-light);border-color:#fde68a}.reservation-table__action-btn--delete{color:var(--color-error)}.reservation-table__action-btn--delete:hover{color:var(--color-error);background:var(--color-error-bg);border-color:var(--color-error-border)}.reservation-table--empty{padding:var(--spacing-12);text-align:center;background:var(--color-surface-muted);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg)}.reservation-table--empty p{margin:var(--spacing-2) 0;color:var(--color-text-subtle);font-size:var(--font-size-base)}.reservation-table--empty-cta{color:var(--color-text-subtle);opacity:.7;font-size:var(--font-size-sm);margin-top:var(--spacing-4);font-style:italic}.reservation-table--loading{padding:var(--spacing-12);text-align:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.reservation-table--loading p{color:var(--color-text-subtle)}.reservation-table--error{padding:var(--spacing-8);text-align:center;background:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error-border);border-radius:var(--radius-lg)}.reservation-table--error p{margin:var(--spacing-2) 0}.home-summary{max-width:1400px;margin:0 auto var(--spacing-6);padding:var(--spacing-6);background:linear-gradient(135deg,var(--color-primary-light) 0%,var(--color-surface) 75%);border:1px solid var(--color-border);border-radius:var(--radius-xl);display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--spacing-6);box-shadow:var(--shadow-sm)}.home-summary__title{margin:0 0 var(--spacing-2);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text);letter-spacing:-.01em}.home-summary__subtitle{margin:0;font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:var(--line-height-relaxed)}.home-summary__next{display:flex;flex-direction:column;gap:var(--spacing-1);padding:var(--spacing-4) var(--spacing-5);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);min-width:240px;text-align:right}.home-summary__next-label{font-size:var(--font-size-xs);color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:.05em}.home-summary__next-title{font-size:var(--font-size-base);color:var(--color-text)}.home-summary__next-meta{font-size:var(--font-size-xs);color:var(--color-text-muted)}@media(max-width:767px){.home-summary{grid-template-columns:1fr;padding:var(--spacing-5);margin:0 var(--spacing-3) var(--spacing-5)}.home-summary__next{text-align:left;min-width:0}.home-summary__title{font-size:var(--font-size-xl)}}.reservation-table-wrapper{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.reservation-table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-4);margin-bottom:var(--spacing-4);flex-wrap:wrap}.reservation-table__export-btn{flex-shrink:0}.reservation-table-tabs{display:flex;gap:var(--spacing-2);flex-wrap:wrap}.reservation-table-tab{background:transparent;border:1px solid var(--color-border-strong);color:var(--color-text-muted);padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out);min-height:36px;display:inline-flex;align-items:center;gap:var(--spacing-2)}.reservation-table-tab:hover{background:var(--color-surface-muted);color:var(--color-text)}.reservation-table-tab.is-active{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.reservation-table-tab__count{display:inline-block;min-width:22px;padding:0 var(--spacing-2);border-radius:var(--radius-full);background:#00000014;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:1.6;text-align:center}.reservation-table-tab.is-active .reservation-table-tab__count{background:#ffffff40}.reservation-table--filter-empty{text-align:center;padding:var(--spacing-8);color:var(--color-text-subtle);font-style:italic;background:var(--color-surface-muted);border-radius:var(--radius-lg);border:1px dashed var(--color-border-strong)}@media(max-width:767px){.reservation-table__header,.reservation-table__cell{padding:var(--spacing-3) var(--spacing-3);font-size:var(--font-size-xs)}}@media(min-width:768px){.reservation-table__header,.reservation-table__cell{padding:var(--spacing-4) var(--spacing-5)}}@media(min-width:1024px){.reservation-table__header,.reservation-table__cell{padding:var(--spacing-4) var(--spacing-6)}}.reservation-table__row:focus-visible{outline:2px solid var(--color-primary);outline-offset:-1px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.home-summary__next-label--error{color:var(--color-error, #b91c1c);font-weight:var(--font-weight-medium)}.home-summary__retry{margin-top:var(--spacing-2);align-self:flex-start}.modal__body.details-grid{display:flex;flex-direction:column;gap:var(--spacing-6);padding:var(--spacing-6);max-height:70vh;overflow-y:auto;background-color:var(--color-surface-muted)}.details-section{background:var(--color-surface)!important;border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-5)}.details-section__title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-primary);text-transform:uppercase;letter-spacing:.07em;margin:0 0 var(--spacing-4) 0;padding-bottom:var(--spacing-3);border-bottom:2px solid var(--color-border)}.detail-row{display:flex;flex-direction:column;gap:var(--spacing-1);margin-bottom:var(--spacing-4)}.detail-row:last-child{margin-bottom:0}.detail-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em}.detail-value{font-size:var(--font-size-base);color:var(--color-text);word-wrap:break-word;overflow-wrap:break-word}.detail-value--mono{font-family:Courier New,Consolas,monospace;font-size:var(--font-size-sm);color:var(--color-text-muted);background:var(--color-surface-muted);padding:2px var(--spacing-2);border-radius:var(--radius-sm);border:1px solid var(--color-border)}.detail-value--warning{color:var(--color-error);font-weight:var(--font-weight-semibold)}.details-footer{padding:var(--spacing-4) var(--spacing-6);border-top:1px solid var(--color-border);background:var(--color-surface-muted);display:flex;justify-content:flex-end;gap:var(--spacing-3);border-radius:0 0 var(--radius-xl) var(--radius-xl)}.details-footer .btn{min-width:100px}.modal__body.details-grid::-webkit-scrollbar{width:6px}.modal__body.details-grid::-webkit-scrollbar-track{background:var(--color-surface-muted);border-radius:var(--radius-full)}.modal__body.details-grid::-webkit-scrollbar-thumb{background:var(--color-primary-mid);border-radius:var(--radius-full)}.modal__body.details-grid::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}@media(min-width:768px){.details-section{padding:var(--spacing-6)}.detail-row{display:grid;grid-template-columns:200px 1fr;gap:var(--spacing-4);align-items:center}}@media(min-width:1024px){.modal__body.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:var(--spacing-8);max-height:80vh}.detail-row{grid-template-columns:180px 1fr}}.details-footer .btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.admin-container{max-width:1200px;margin:0 auto;padding:var(--spacing-6)}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-8);padding-bottom:var(--spacing-6);border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:var(--spacing-4)}.admin-header__title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0}.admin-header__actions{display:flex;gap:var(--spacing-3)}.admin-table-container{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.admin-table{width:100%;border-collapse:collapse;background:var(--color-surface)}.admin-table thead{background:var(--color-surface-muted);border-bottom:1px solid var(--color-border)}.admin-table th{padding:var(--spacing-3) var(--spacing-5);text-align:left;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.07em;white-space:nowrap}.admin-table tbody tr{border-bottom:1px solid var(--color-border);transition:background var(--duration-fast) var(--ease-out)}.admin-table tbody tr:last-child{border-bottom:none}.admin-table tbody tr:nth-child(2n){background:var(--color-surface)}.admin-table tbody tr:nth-child(odd){background:var(--color-surface-muted)}.admin-table tbody tr:hover{background:var(--color-primary-light)}.admin-table td{padding:var(--spacing-4) var(--spacing-5);color:var(--color-text-muted);font-size:var(--font-size-sm)}.admin-table td:first-child{color:var(--color-text);font-weight:var(--font-weight-medium)}.admin-zone-list{display:flex;flex-direction:column;gap:var(--spacing-3)}.admin-zone-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-5) var(--spacing-6);display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-4);transition:box-shadow var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out);box-shadow:var(--shadow-xs)}.admin-zone-item:hover{border-color:var(--color-primary-mid);box-shadow:var(--shadow-md)}.admin-zone-item__content{flex:1}.admin-zone-item__name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--spacing-1) 0}.admin-zone-item__description{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0}.admin-zone-item__actions{display:flex;gap:var(--spacing-2);flex-shrink:0}.admin-zone-item--readonly{background:var(--color-surface-muted);opacity:.8}.admin-zone-item--readonly:hover{background:var(--color-surface-muted)}.zone-badge{display:inline-flex;align-items:center;padding:2px var(--spacing-3);margin-left:var(--spacing-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.06em;border-radius:var(--radius-full)}.zone-badge--readonly{background:var(--color-surface-muted);color:var(--color-text-subtle);border:1px solid var(--color-border)}.zone-creator{display:block;margin-top:var(--spacing-1);font-size:var(--font-size-xs);color:var(--color-text-subtle);font-style:italic}.admin-zone-form{display:flex;flex-direction:column;gap:var(--spacing-5);max-width:600px;margin:0 auto}.admin-zone-form__actions{display:flex;gap:var(--spacing-3);justify-content:flex-end;padding-top:var(--spacing-6);border-top:1px solid var(--color-border)}.btn-add,.btn-submit{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-5);font-size:var(--font-size-sm);font-family:var(--font-family);font-weight:var(--font-weight-medium);background:var(--color-primary);color:var(--color-text-inverse);border:1.5px solid var(--color-primary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out);min-height:44px}.btn-add:hover,.btn-submit:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:var(--shadow-md)}.btn-submit:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn-cancel{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-3) var(--spacing-5);font-size:var(--font-size-sm);font-family:var(--font-family);font-weight:var(--font-weight-medium);background:var(--color-surface);color:var(--color-text-muted);border:1.5px solid var(--color-border-input);border-radius:var(--radius-md);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out);min-height:44px}.btn-cancel:hover{background:var(--color-surface-muted);border-color:var(--color-primary-mid);color:var(--color-text)}.btn-edit,.btn-delete{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-family:var(--font-family);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out);min-height:36px;background:var(--color-surface);color:var(--color-text-muted);border:1px solid var(--color-border-input)}.btn-edit:hover{background:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success)}.btn-delete:hover{background:var(--color-error-bg);border-color:var(--color-error-border);color:var(--color-error)}.admin-zone-list--empty{text-align:center;padding:var(--spacing-12);color:var(--color-text-subtle);font-size:var(--font-size-base);background:var(--color-surface-muted);border-radius:var(--radius-lg);border:1px dashed var(--color-border-strong)}@media(max-width:767px){.admin-container{padding:var(--spacing-4)}.admin-header{flex-direction:column;align-items:flex-start}.admin-header__actions,.btn-add{width:100%}.admin-zone-item{flex-direction:column;align-items:flex-start}.admin-zone-item__actions{width:100%;justify-content:flex-end;padding-top:var(--spacing-4);border-top:1px solid var(--color-border)}.admin-table-container{overflow-x:scroll}.admin-table{min-width:600px}}@media(min-width:768px){.admin-container{padding:var(--spacing-8)}}@media(min-width:1024px){.admin-container{padding:var(--spacing-12)}.admin-header{margin-bottom:var(--spacing-12)}}.user-management{max-width:1200px;margin:0 auto;padding:var(--spacing-8)}.user-management__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-8);gap:var(--spacing-4)}.user-management__header h2{color:var(--color-primary);margin:0;font-size:var(--font-size-2xl)}.user-management__filters{margin-bottom:var(--spacing-6);display:flex;align-items:center;gap:var(--spacing-4);flex-wrap:wrap}.user-management__filters label{font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:0}.user-management__filters select{width:auto;padding:var(--spacing-2) var(--spacing-4);border:1.5px solid var(--color-border-input);border-radius:var(--radius-md);font-size:var(--font-size-sm);min-height:40px}.user-form{padding:var(--spacing-6)}.user-form .form-group{margin-bottom:var(--spacing-5)}.user-form .form-group small{display:block;margin-top:var(--spacing-2);color:var(--color-text-subtle);font-size:var(--font-size-sm)}.user-form__actions{display:flex;gap:var(--spacing-3);justify-content:flex-end;margin-top:var(--spacing-8);padding-top:var(--spacing-4);border-top:1px solid var(--color-border)}.user-table-wrapper{overflow-x:auto;margin-bottom:var(--spacing-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.user-table{width:100%;border-collapse:collapse;background:var(--color-surface)}.user-table thead{background:var(--color-surface-muted);border-bottom:1px solid var(--color-border)}.user-table th{padding:var(--spacing-3) var(--spacing-5);text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text-muted);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.07em;white-space:nowrap}.user-table tbody tr{border-bottom:1px solid var(--color-border);transition:background-color var(--duration-fast) var(--ease-out)}.user-table tbody tr:last-child{border-bottom:none}.user-table tbody tr:hover{background-color:var(--color-primary-light)}.user-table td{padding:var(--spacing-4) var(--spacing-5);color:var(--color-text-muted);font-size:var(--font-size-sm)}.user-table td:last-child{text-align:right}.user-row__actions{display:flex;gap:var(--spacing-2);justify-content:flex-end}.badge--secondary{background:var(--color-surface-muted);color:var(--color-text-muted);border:1px solid var(--color-border-input)}.pagination{display:flex;justify-content:center;align-items:center;gap:var(--spacing-4);padding:var(--spacing-4);flex-wrap:wrap}.pagination__info{color:var(--color-text-muted);font-size:var(--font-size-sm)}.modal--success .modal__title{color:var(--color-success)}.credentials-box{background:var(--color-surface-muted);border-left:3px solid var(--color-primary);padding:var(--spacing-4) var(--spacing-5);margin:var(--spacing-4) 0;border-radius:0 var(--radius-md) var(--radius-md) 0}.credentials-box code{background:var(--color-surface);padding:2px var(--spacing-2);border-radius:var(--radius-sm);color:var(--color-primary);font-family:Courier New,Consolas,monospace;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);border:1px solid var(--color-border)}.loading{text-align:center;padding:var(--spacing-12);color:var(--color-text-muted);font-size:var(--font-size-base)}.empty-state{text-align:center;padding:var(--spacing-12);color:var(--color-text-subtle);font-size:var(--font-size-base);background:var(--color-surface-muted);border-radius:var(--radius-lg);border:1px dashed var(--color-border-strong)}@media(max-width:768px){.user-management{padding:var(--spacing-4)}.user-management__header{flex-direction:column;align-items:flex-start;gap:var(--spacing-4)}.user-management__header h2{font-size:var(--font-size-xl)}.user-table-wrapper{font-size:var(--font-size-sm)}.user-table th,.user-table td{padding:var(--spacing-3) var(--spacing-3)}.user-table th{font-size:.65rem}.pagination{gap:var(--spacing-2)}.user-form__actions{flex-direction:column}.user-form__actions button{width:100%}}.change-password-container{display:flex;justify-content:center;align-items:center;min-height:calc(100dvh - 200px);padding:var(--spacing-8)}.change-password-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:500px;width:100%;padding:var(--spacing-8)}.change-password-header{margin-bottom:var(--spacing-8);text-align:center}.change-password-header h2{color:var(--color-primary);margin:0 0 var(--spacing-4) 0;font-size:var(--font-size-2xl)}.change-password-header .info-message{background:var(--color-warning-bg);border-left:3px solid var(--color-warning);padding:var(--spacing-4) var(--spacing-5);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--color-warning);margin:0;text-align:left;font-size:var(--font-size-sm);border:1px solid #fde68a}.change-password-form{display:flex;flex-direction:column;gap:var(--spacing-5)}.change-password-form .form-group{display:flex;flex-direction:column;gap:var(--spacing-2)}.change-password-form small{color:var(--color-text-subtle);font-size:var(--font-size-sm);margin-top:var(--spacing-1)}.form-message{padding:var(--spacing-4) var(--spacing-5);border-radius:0 var(--radius-md) var(--radius-md) 0;font-size:var(--font-size-sm);display:none;border:1px solid}.form-message.active{display:block}.form-message--error{background:var(--color-error-bg);border-left:3px solid var(--color-error);border-color:var(--color-error-border);color:var(--color-error)}.form-message--success{background:var(--color-success-bg);border-left:3px solid var(--color-success);border-color:var(--color-success-border);color:var(--color-success)}.form-message--info{background:var(--color-info-bg);border-left:3px solid var(--color-info);border-color:#a5f3fc;color:var(--color-info)}.form-actions{display:flex;gap:var(--spacing-3);margin-top:var(--spacing-4)}.form-actions button{flex:1}@media(max-width:576px){.change-password-container{padding:var(--spacing-4)}.change-password-card{padding:var(--spacing-6)}.form-actions{flex-direction:column}.form-actions button{width:100%}}.forgot-password-form,.reset-password-form{display:flex;justify-content:center;align-items:center;min-height:calc(100dvh - 200px);padding:var(--spacing-8)}.form-container{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:500px;width:100%;padding:var(--spacing-8)}.form-container h2{color:var(--color-primary);margin:0 0 var(--spacing-4) 0;font-size:var(--font-size-2xl);text-align:center}.form-description{color:var(--color-text-muted);margin:0 0 var(--spacing-8) 0;text-align:center;font-size:var(--font-size-sm);line-height:var(--line-height-relaxed)}.auth-form{display:flex;flex-direction:column;gap:var(--spacing-5)}.auth-form .form-group{display:flex;flex-direction:column;gap:var(--spacing-2)}.auth-form small{color:var(--color-text-subtle);font-size:var(--font-size-sm)}.form-footer{margin-top:var(--spacing-6);text-align:center}.form-footer .link,.login-footer .link{color:var(--color-primary);text-decoration:none;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:color var(--duration-fast) var(--ease-out)}.form-footer .link:hover,.login-footer .link:hover{color:var(--color-primary-hover);text-decoration:underline}.success-message{display:none;background:var(--color-success-bg);border-left:3px solid var(--color-success);border:1px solid var(--color-success-border);color:var(--color-success);padding:var(--spacing-4) var(--spacing-5);border-radius:0 var(--radius-md) var(--radius-md) 0;margin-top:var(--spacing-4);font-size:var(--font-size-sm)}.success-message.active{display:block}.success-message p{margin:0 0 var(--spacing-3);color:var(--color-success)}.success-message p:last-child{margin-bottom:0}.info-text{font-size:var(--font-size-sm);color:var(--color-info)}.error-message{background:var(--color-error-bg);border-left:3px solid var(--color-error);border:1px solid var(--color-error-border);color:var(--color-error);padding:var(--spacing-4) var(--spacing-5);border-radius:0 var(--radius-md) var(--radius-md) 0;font-size:var(--font-size-sm)}.error-message p{margin:0 0 var(--spacing-3);color:var(--color-error)}.error-message p:last-child{margin-bottom:0}.error-message .btn{margin-top:var(--spacing-4)}.login-footer{margin-top:var(--spacing-6);text-align:center}.btn--full-width{width:100%}@media(max-width:576px){.forgot-password-form,.reset-password-form{padding:var(--spacing-4)}.form-container{padding:var(--spacing-6)}}.feedback-manager{max-width:1200px;margin:0 auto;padding:var(--spacing-8)}.feedback-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-8);gap:var(--spacing-4)}.feedback-header h2{margin:0;color:var(--color-primary);font-size:var(--font-size-2xl)}.feedback-tabs{display:flex;gap:var(--spacing-1);margin-bottom:var(--spacing-8);border-bottom:2px solid var(--color-border)}.tab-btn{padding:var(--spacing-3) var(--spacing-6);background:transparent;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);font-family:var(--font-family);color:var(--color-text-muted);transition:color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out);margin-bottom:-2px;border-radius:var(--radius-sm) var(--radius-sm) 0 0}.tab-btn:hover{color:var(--color-primary)}.tab-btn.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:var(--font-weight-semibold)}.feedback-author{color:var(--color-primary);font-weight:var(--font-weight-semibold)}.feedback-form-container{margin-bottom:var(--spacing-8)}.form-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-8);box-shadow:var(--shadow-sm)}.form-card h3{margin-top:0;color:var(--color-primary);font-size:var(--font-size-xl)}.form-group{margin-bottom:var(--spacing-5)}.form-group label{display:block;margin-bottom:var(--spacing-2);font-weight:var(--font-weight-medium);color:var(--color-text)}.form-control{width:100%;padding:var(--spacing-3) var(--spacing-4);border:1.5px solid var(--color-border-input);border-radius:var(--radius-md);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--color-text);background:var(--color-surface);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out);min-height:44px}.form-control:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}textarea.form-control{resize:vertical;min-height:150px}.form-actions{display:flex;gap:var(--spacing-3);justify-content:flex-end;margin-top:var(--spacing-8)}.feedback-filters{display:flex;gap:var(--spacing-4);margin-bottom:var(--spacing-6);padding:var(--spacing-4) var(--spacing-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);flex-wrap:wrap;align-items:center}.filter-group{display:flex;align-items:center;gap:var(--spacing-2)}.filter-group label{font-weight:var(--font-weight-medium);color:var(--color-text);font-size:var(--font-size-sm);margin-bottom:0}.filter-control{padding:var(--spacing-2) var(--spacing-3);border:1.5px solid var(--color-border-input);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-family:var(--font-family);background:var(--color-surface);color:var(--color-text);cursor:pointer;min-width:150px;min-height:40px;transition:border-color var(--duration-fast) var(--ease-out)}.filter-control:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}@media(max-width:768px){.feedback-filters{flex-direction:column;gap:var(--spacing-3)}.filter-group{width:100%;flex-direction:column;align-items:flex-start}.filter-control{width:100%}}.feedback-list-container h3{color:var(--color-primary);margin-bottom:var(--spacing-6)}.feedback-list{display:grid;gap:var(--spacing-4)}.feedback-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-6);box-shadow:var(--shadow-sm);cursor:pointer;transition:box-shadow var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.feedback-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--color-primary-mid)}.feedback-card.feedback-resolved{opacity:.65;background:var(--color-surface-muted)}.feedback-card.feedback-resolved:hover{opacity:.75}.feedback-card .feedback-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-4)}.feedback-type{padding:2px var(--spacing-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.feedback-type.bug{background:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error-border)}.feedback-type.feature{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.feedback-type.aesthetic{background:#f3e5f5;color:#7b1fa2;border:1px solid #e1bee7}.feedback-status{padding:2px var(--spacing-3);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.status-new{background:#dbeafe;color:#1e40af;border:1px solid #bfdbfe}.status-in_progress{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid #fde68a}.status-resolved{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.status-rejected{background:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error-border)}.feedback-title{margin:0 0 var(--spacing-2) 0;color:var(--color-text);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.feedback-description{margin:0 0 var(--spacing-4) 0;color:var(--color-text-muted);line-height:var(--line-height-relaxed);font-size:var(--font-size-sm)}.feedback-footer{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-xs);color:var(--color-text-subtle)}.feedback-meta{display:flex;gap:var(--spacing-4);align-items:center}.feedback-creator{color:var(--color-text-subtle);font-size:var(--font-size-xs)}.feedback-actions{display:flex;gap:var(--spacing-2);align-items:center}.feedback-actions .edit-feedback-btn,.feedback-actions .delete-feedback-btn{background:transparent;border:none;cursor:pointer;font-size:var(--font-size-lg);padding:var(--spacing-1);opacity:.5;transition:opacity var(--duration-fast) var(--ease-out);border-radius:var(--radius-sm)}.feedback-actions .edit-feedback-btn:hover,.feedback-actions .delete-feedback-btn:hover{opacity:1}.feedback-comments{color:var(--color-primary)}.admin-feedback{max-width:1400px;margin:0 auto;padding:var(--spacing-8)}.admin-feedback-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-8);flex-wrap:wrap;gap:var(--spacing-4)}.admin-feedback-header h2{margin:0;color:var(--color-primary);font-size:var(--font-size-2xl)}.filters{display:flex;gap:var(--spacing-4)}.filters select{min-width:200px}.feedback-table{width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);border-collapse:collapse}.feedback-table th,.feedback-table td{padding:var(--spacing-4) var(--spacing-5);text-align:left}.feedback-table thead{background:var(--color-surface-muted);border-bottom:1px solid var(--color-border)}.feedback-table th{font-weight:var(--font-weight-semibold);color:var(--color-text-muted);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.07em}.feedback-table tbody tr{border-top:1px solid var(--color-border);transition:background var(--duration-fast) var(--ease-out)}.feedback-table tbody tr:hover{background:var(--color-primary-light)}.status-select{padding:var(--spacing-2) var(--spacing-3);border:1.5px solid var(--color-border-input);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-family:var(--font-family);min-height:36px;background:var(--color-surface);color:var(--color-text)}.action-buttons{display:flex;gap:var(--spacing-2);align-items:center}.action-buttons .view-btn{background:transparent;border:none;cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-1) var(--spacing-2);color:var(--color-primary);transition:opacity var(--duration-fast) var(--ease-out);text-decoration:underline;font-family:var(--font-family)}.action-buttons .view-btn:hover{opacity:.7}.action-buttons .delete-btn{background:transparent;border:none;cursor:pointer;font-size:var(--font-size-lg);padding:var(--spacing-1);opacity:.5;transition:opacity var(--duration-fast) var(--ease-out);border-radius:var(--radius-sm)}.action-buttons .delete-btn:hover{opacity:1}.pagination{display:flex;justify-content:center;gap:var(--spacing-2);margin-top:var(--spacing-8)}.pagination-btn{padding:var(--spacing-2) var(--spacing-4);border:1.5px solid var(--color-border-input);background:var(--color-surface);color:var(--color-text-muted);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-family:var(--font-family);transition:background var(--duration-fast) var(--ease-out);min-height:36px}.pagination-btn:hover:not(:disabled){background:var(--color-surface-muted);border-color:var(--color-primary-mid);color:var(--color-text)}.pagination-btn.active{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary);font-weight:var(--font-weight-medium)}.pagination-btn:disabled{cursor:not-allowed;opacity:.45}.feedback-detail-modal{max-width:700px}.feedback-detail{padding:var(--spacing-4) 0}.feedback-detail__meta{display:flex;gap:var(--spacing-4);margin-bottom:var(--spacing-4);flex-wrap:wrap}.feedback-detail__title{font-size:var(--font-size-2xl);color:var(--color-primary);margin:0 0 var(--spacing-4) 0;font-weight:var(--font-weight-bold)}.feedback-detail__description{color:var(--color-text-muted);line-height:var(--line-height-relaxed);margin-bottom:var(--spacing-6);white-space:pre-wrap;font-size:var(--font-size-sm)}.feedback-detail__info{display:flex;gap:var(--spacing-8);margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-6);border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);color:var(--color-text-muted);flex-wrap:wrap}.feedback-comments-section{margin-top:var(--spacing-8)}.feedback-comments-section h5{color:var(--color-primary);margin-bottom:var(--spacing-4);font-size:var(--font-size-base)}.comments-list{margin-bottom:var(--spacing-6)}.comment-item{background:var(--color-surface-muted);padding:var(--spacing-4) var(--spacing-5);border-radius:var(--radius-md);border:1px solid var(--color-border);margin-bottom:var(--spacing-3)}.comment-header{display:flex;justify-content:space-between;margin-bottom:var(--spacing-2);align-items:baseline}.comment-header strong{color:var(--color-primary)}.comment-date{font-size:var(--font-size-xs);color:var(--color-text-subtle)}.comment-text{margin:0;color:var(--color-text-muted);line-height:var(--line-height-relaxed);font-size:var(--font-size-sm);white-space:pre-wrap}.empty-comments{color:var(--color-text-subtle);font-style:italic;margin:var(--spacing-4) 0}.add-comment-form{margin-top:var(--spacing-6);padding-top:var(--spacing-6);border-top:1px solid var(--color-border)}.add-comment-form h5{margin-bottom:var(--spacing-3)}.add-comment-form textarea{margin-bottom:var(--spacing-4)}.empty-state{text-align:center;padding:var(--spacing-12);color:var(--color-text-subtle)}.empty-state p{margin:var(--spacing-2) 0}.empty-state .hint{font-size:var(--font-size-sm);color:var(--color-text-subtle);opacity:.7}.loading{text-align:center;padding:var(--spacing-12);color:var(--color-text-subtle)}.error-message{background:var(--color-error-bg);color:var(--color-error);padding:var(--spacing-4);border:1px solid var(--color-error-border);border-radius:var(--radius-md);text-align:center}.footer-content{display:flex;flex-direction:column;gap:1.5rem;align-items:center}.footer-actions{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.footer-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:8px;text-decoration:none;font-weight:500;font-size:.938rem;transition:all .2s ease;box-shadow:0 2px 4px #0000001a}.footer-btn.feedback-btn{background:linear-gradient(135deg,#2d7a3e,#3a9651);color:#fff}.footer-btn.feedback-btn:hover{transform:translateY(-2px);box-shadow:0 4px 8px #2d7a3e4d}.footer-btn.admin-feedback-btn{background:linear-gradient(135deg,#1565c0,#1976d2);color:#fff}.footer-btn.admin-feedback-btn:hover{transform:translateY(-2px);box-shadow:0 4px 8px #1565c04d}.audit-logs{max-width:1400px;margin:0 auto;padding:var(--spacing-8)}.audit-logs__header{margin-bottom:var(--spacing-8)}.audit-logs__header h2{margin:0;font-size:var(--font-size-2xl);color:var(--color-text);font-weight:var(--font-weight-bold)}.audit-logs__filters{display:flex;gap:var(--spacing-6);margin-bottom:var(--spacing-8);flex-wrap:wrap;background:var(--color-surface);padding:var(--spacing-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.filter-group{display:flex;flex-direction:column;gap:var(--spacing-2);min-width:200px}.filter-group label{font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);color:var(--color-text);margin-bottom:0}.filter-group select{padding:var(--spacing-2) var(--spacing-3);border:1.5px solid var(--color-border-input);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-family:var(--font-family);background:var(--color-surface);color:var(--color-text);cursor:pointer;min-height:40px;transition:border-color var(--duration-fast) var(--ease-out)}.filter-group select:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.log-table-wrapper{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);margin-bottom:var(--spacing-8)}.log-table{width:100%;background:var(--color-surface);border-collapse:collapse}.log-table thead{background:var(--color-surface-muted);border-bottom:1px solid var(--color-border)}.log-table th{padding:var(--spacing-3) var(--spacing-5);text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text-muted);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.07em;white-space:nowrap}.log-table tbody{background:var(--color-surface)}.log-table tbody tr{border-top:1px solid var(--color-border);transition:background-color var(--duration-fast) var(--ease-out)}.log-table tbody tr:hover{background-color:var(--color-primary-light)}.log-table td{padding:var(--spacing-3) var(--spacing-5);font-size:var(--font-size-sm);color:var(--color-text-muted)}.log-table td:first-child{font-family:Courier New,Consolas,monospace;font-size:var(--font-size-xs);color:var(--color-text-subtle)}.loading{text-align:center;padding:var(--spacing-12);color:var(--color-text-subtle);font-size:var(--font-size-sm)}.empty-state{text-align:center;padding:var(--spacing-12);color:var(--color-text-subtle);font-size:var(--font-size-sm);background:var(--color-surface-muted);border-radius:var(--radius-lg);border:1px dashed var(--color-border-strong)}.pagination{display:flex;justify-content:center;align-items:center;gap:var(--spacing-3);padding:var(--spacing-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-top:var(--spacing-8);flex-wrap:wrap}.pagination button{padding:var(--spacing-2) var(--spacing-4);border:1.5px solid var(--color-border-input);background:var(--color-surface);color:var(--color-text-muted);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-family:var(--font-family);font-weight:var(--font-weight-medium);transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out);min-height:36px}.pagination button:hover:not(:disabled){background:var(--color-surface-muted);border-color:var(--color-primary-mid);color:var(--color-primary)}.pagination button:disabled{cursor:not-allowed;opacity:.45}.pagination__info{font-size:var(--font-size-sm);color:var(--color-text-muted);padding:0 var(--spacing-4);white-space:nowrap}@media(max-width:768px){.audit-logs{padding:var(--spacing-4)}.audit-logs__filters{flex-direction:column;gap:var(--spacing-4)}.filter-group{min-width:auto;width:100%}.log-table th,.log-table td{padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-xs)}.pagination{flex-direction:column;gap:var(--spacing-2)}.pagination__info{padding:var(--spacing-2) 0}}.help-page{max-width:1600px;margin:0 auto;padding:2rem}.help-page__header{margin-bottom:2rem;text-align:center}.help-page__header h1{color:#2d7a3e;font-size:2rem;margin-bottom:.5rem}.help-page__subtitle{color:#666;font-size:1rem}.help-page__content{display:flex;gap:2rem;min-height:600px}.help-page__sidebar{flex:0 0 350px;min-width:0}.help-page__viewer{flex:1;min-width:0}.help-page__loading,.help-page__error{text-align:center;padding:3rem}.spinner{border:4px solid #f3f3f3;border-top:4px solid #2d7a3e;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-retry{background-color:#2d7a3e;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-size:1rem;margin-top:1rem}.btn-retry:hover{background-color:#236030}.doc-tree{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;padding:1rem;height:100%;overflow-y:auto}.doc-tree__header{padding-bottom:1rem;margin-bottom:1rem;border-bottom:2px solid #dee2e6}.doc-tree__header h3{color:#2d7a3e;font-size:1.25rem;margin:0}.doc-tree__empty{text-align:center;color:#666;padding:2rem}.doc-tree__category{margin-bottom:1rem}.doc-tree__category-header{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:#fff;border:1px solid #dee2e6;border-radius:6px;cursor:pointer;transition:all .2s}.doc-tree__category-header:hover{background:#e9ecef;border-color:#2d7a3e}.doc-tree__expand-icon{font-size:.75rem;color:#666;min-width:16px;transition:transform .2s}.doc-tree__category.expanded .doc-tree__expand-icon{transform:rotate(0)}.doc-tree__category-icon{font-size:1.25rem}.doc-tree__category-name{flex:1;font-weight:600;color:#333}.doc-tree__category-count{color:#666;font-size:.875rem}.doc-tree__documents{margin-top:.5rem;margin-left:1rem}.doc-tree__no-docs{color:#999;font-style:italic;padding:.5rem}.doc-tree__document{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;margin-bottom:.25rem;background:#fff;border:1px solid #e9ecef;border-radius:4px;cursor:pointer;transition:all .2s}.doc-tree__document:hover{background:#f0f7f1;border-color:#2d7a3e}.doc-tree__document.selected{background:#2d7a3e;color:#fff;border-color:#2d7a3e}.doc-tree__document.selected .doc-tree__document-icon{filter:brightness(0) invert(1)}.doc-tree__document-icon{font-size:1rem}.doc-tree__document-title{flex:1;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-viewer{background:#fff;border:1px solid #dee2e6;border-radius:8px;height:100%;overflow-y:auto;padding:2rem}.doc-viewer__loading,.doc-viewer__error,.doc-viewer__empty{text-align:center;padding:3rem;color:#666}.doc-viewer__header{margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #dee2e6}.doc-viewer__title{color:#2d7a3e;font-size:1.75rem;margin:0 0 .5rem}.doc-viewer__path{color:#666;font-size:.875rem;font-family:Courier New,monospace}.doc-viewer__content{line-height:1.6;color:#333}.doc-viewer__content h1{color:#2d7a3e;font-size:2rem;margin:2rem 0 1rem;border-bottom:2px solid #dee2e6;padding-bottom:.5rem}.doc-viewer__content h2{color:#2d7a3e;font-size:1.5rem;margin:1.5rem 0 1rem}.doc-viewer__content h3{color:#333;font-size:1.25rem;margin:1.25rem 0 .75rem}.doc-viewer__content p{margin:1rem 0}.doc-viewer__content a{color:#2d7a3e;text-decoration:underline}.doc-viewer__content a:hover{color:#236030}.doc-viewer__content a[data-internal-link=true]{font-weight:500}.doc-viewer__content ul,.doc-viewer__content ol{margin:1rem 0;padding-left:2rem}.doc-viewer__content li{margin:.5rem 0}.doc-viewer__content code{background:#f8f9fa;padding:.2rem .4rem;border-radius:3px;font-family:Courier New,monospace;font-size:.9em}.doc-viewer__content pre{background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;padding:1rem;overflow-x:auto;margin:1rem 0}.doc-viewer__content pre code{background:none;padding:0;font-size:.875rem}.doc-viewer__content table{border-collapse:collapse;width:100%;margin:1rem 0}.doc-viewer__content th,.doc-viewer__content td{border:1px solid #dee2e6;padding:.75rem;text-align:left}.doc-viewer__content th{background:#f8f9fa;font-weight:600}.doc-viewer__content blockquote{border-left:4px solid #2d7a3e;padding-left:1rem;margin:1rem 0;color:#666;font-style:italic}.doc-viewer__content .highlight{background:#f8f9fa;border-radius:6px;margin:1rem 0}@media(max-width:768px){.help-page{padding:1rem}.help-page__header h1{font-size:1.5rem}.help-page__content{flex-direction:column;gap:1rem}.help-page__sidebar{flex:none;width:100%}.doc-tree{max-height:400px}.doc-viewer{padding:1rem}.doc-viewer__title,.doc-viewer__content h1{font-size:1.5rem}.doc-viewer__content h2{font-size:1.25rem}.doc-viewer__content h3{font-size:1.1rem}.doc-viewer__content table{display:block;overflow-x:auto}}@media(max-width:480px){.help-page{padding:.5rem}.doc-tree,.doc-viewer{padding:.75rem}.doc-tree__category-header{padding:.5rem;font-size:.9rem}.doc-tree__document{padding:.5rem;font-size:.85rem}}@media print{.help-page__sidebar{display:none}.help-page__viewer{flex:none;width:100%}.doc-viewer{border:none;box-shadow:none}}.calendar{max-width:1200px;margin:0 auto;padding:var(--spacing-6)}.calendar__controls{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-4);flex-wrap:wrap;margin-bottom:var(--spacing-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-4) var(--spacing-5);box-shadow:var(--shadow-xs)}.calendar__nav{display:flex;align-items:center;gap:var(--spacing-3)}.calendar__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0;min-width:180px;text-align:center}.calendar__btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-2) var(--spacing-3);border:1.5px solid var(--color-border-input);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-muted);font-size:var(--font-size-sm);font-family:var(--font-family);font-weight:var(--font-weight-medium);cursor:pointer;min-height:36px;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.calendar__btn:hover{background:var(--color-surface-muted);border-color:var(--color-primary-mid);color:var(--color-primary)}.calendar__btn--today{color:var(--color-primary);border-color:var(--color-primary-mid);font-size:var(--font-size-xs)}.calendar__btn--today:hover{background:var(--color-primary-light)}.calendar__filter{display:flex;align-items:center;gap:var(--spacing-2)}.calendar__zone-select{padding:var(--spacing-2) var(--spacing-3);border:1.5px solid var(--color-border-input);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--font-size-sm);font-family:var(--font-family);min-height:36px;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out);min-width:180px}.calendar__zone-select:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.calendar__grid-wrapper{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.calendar__day-headers{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--color-border);background:var(--color-surface-muted)}.calendar__day-name{padding:var(--spacing-2) var(--spacing-3);text-align:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.07em}.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar__cell{min-height:90px;border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);padding:var(--spacing-1) var(--spacing-1) var(--spacing-2);position:relative;background:var(--color-surface);transition:background var(--duration-fast) var(--ease-out)}.calendar__cell:hover{background:var(--color-surface-muted)}.calendar__cell:nth-child(7n){border-right:none}.calendar__cell--other{background:var(--color-surface-muted);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);min-height:90px}.calendar__cell--today .calendar__day-number{background:var(--color-primary);color:var(--color-text-inverse);border-radius:var(--radius-full)}.calendar__day-number{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted);margin-bottom:var(--spacing-1)}.calendar__chips{display:flex;flex-direction:column;gap:2px}.calendar__chip{display:block;font-size:11px;font-weight:var(--font-weight-medium);padding:2px 6px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:var(--radius-sm);border:1px solid transparent;transition:filter var(--duration-fast) var(--ease-out);min-height:20px;line-height:16px}.calendar__chip:hover{filter:brightness(.92)}.calendar__chip.chip--start{border-radius:var(--radius-sm) 0 0 var(--radius-sm);margin-right:-1px}.calendar__chip.chip--middle{border-radius:0;margin-left:-1px;margin-right:-1px}.calendar__chip.chip--end{border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin-left:-1px}.calendar__chip.chip--single{border-radius:var(--radius-sm)}.calendar__chip.badge--scouts,.calendar__list-item.badge--scouts{background:var(--color-branch-scouts-bg);color:var(--color-branch-scouts);border-color:var(--color-branch-scouts)}.calendar__chip.badge--guides,.calendar__list-item.badge--guides{background:var(--color-branch-guides-bg);color:var(--color-branch-guides);border-color:var(--color-branch-guides)}.calendar__chip.badge--louveteaux,.calendar__list-item.badge--louveteaux{background:var(--color-branch-louveteaux-bg);color:var(--color-branch-louveteaux);border-color:var(--color-branch-louveteaux)}.calendar__chip.badge--louvettes,.calendar__list-item.badge--louvettes{background:var(--color-branch-louvettes-bg);color:var(--color-branch-louvettes);border-color:var(--color-branch-louvettes)}.calendar__chip.badge--famille,.calendar__list-item.badge--famille{background:var(--color-branch-famille-bg);color:var(--color-branch-famille);border-color:var(--color-branch-famille)}.calendar__legend{display:flex;flex-wrap:wrap;gap:var(--spacing-3) var(--spacing-5);margin-top:var(--spacing-5);padding:var(--spacing-3) var(--spacing-4);border-top:1px solid var(--color-border);font-size:var(--font-size-xs);color:var(--color-text-muted)}.calendar__legend-item{display:inline-flex;align-items:center;gap:var(--spacing-2)}.calendar__legend-swatch{width:14px;height:14px;border-radius:var(--radius-sm);border:1px solid transparent;flex-shrink:0}.calendar__legend-swatch.badge--scouts{background:var(--color-branch-scouts)}.calendar__legend-swatch.badge--guides{background:var(--color-branch-guides)}.calendar__legend-swatch.badge--louveteaux{background:var(--color-branch-louveteaux)}.calendar__legend-swatch.badge--louvettes{background:var(--color-branch-louvettes)}.calendar__legend-swatch.badge--famille{background:var(--color-branch-famille)}.calendar__list-wrapper{display:none;flex-direction:column;gap:var(--spacing-2);margin-top:var(--spacing-4)}.calendar__list-item{display:flex;align-items:center;gap:var(--spacing-4);padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:filter var(--duration-fast) var(--ease-out)}.calendar__list-item:hover{filter:brightness(.93)}.calendar__list-dates{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap;min-width:90px}.calendar__list-info{flex:1;display:flex;flex-direction:column;gap:2px;overflow:hidden}.calendar__list-group{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar__list-zone{font-size:var(--font-size-xs);opacity:.75}.calendar__list-meta{font-size:var(--font-size-xs);white-space:nowrap;opacity:.75}.calendar__list-empty{text-align:center;padding:var(--spacing-8);color:var(--color-text-subtle);font-size:var(--font-size-sm);background:var(--color-surface-muted);border-radius:var(--radius-lg);border:1px dashed var(--color-border-strong)}@media(max-width:767px){.calendar{padding:var(--spacing-4)}.calendar__grid-wrapper{display:none}.calendar__list-wrapper{display:flex}.calendar__controls{flex-direction:column;align-items:stretch}.calendar__nav,.calendar__filter{justify-content:center}.calendar__zone-select{min-width:0;width:100%}.calendar__title{min-width:0}}@media(min-width:768px){.calendar__cell{min-height:110px}}.calendar__error{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-3);padding:var(--spacing-4);margin:var(--spacing-3) 0;background:var(--color-error-bg, rgba(185, 28, 28, .08));border:1px solid var(--color-error, #b91c1c);border-radius:var(--radius-md, .5rem);color:var(--color-error, #b91c1c);text-align:center}.calendar__error-message{margin:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}
