:root{--color-primary: #1E3A7B;--color-primary-hover: #3A5FA0;--color-accent: #FFC857;--color-accent-hover: #FFE299;--color-text: #1A1A1A;--color-text-secondary: #6B7280;--color-bg: #F3F4F6;--color-surface: #FFFFFF;--color-border: #E5E7EB;--color-success: #16A34A;--color-error: #DC2626;--color-warning: #D97706;--color-info: #2563EB;--font-heading: "Oswald", sans-serif;--font-body: "Inter", sans-serif;--radius-pill: 9999px;--space-12: 48px;--space-16: 64px}:root{--bg: #0a0f1c;--bg-surface: #111827;--bg-card: #141d2b;--bg-input: #0f151f;--accent: #e2b13c;--accent-hover: #efd07a;--text: #e8ecf4;--text-muted: #96a2b8;--border: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .16);--shadow: rgba(0, 0, 0, .35);--radius: 12px;--radius-sm: 8px}body{background:var(--bg);color:var(--text)}.nav{position:fixed;top:0;left:0;right:0;z-index:1000;background:var(--bg);border-bottom:1px solid var(--border)}.nav__inner{max-width:1200px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px}.nav__brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text);flex-shrink:0}.nav__logo{width:36px;height:36px;object-fit:contain;border-radius:8px}.nav__title{display:flex;flex-direction:column;line-height:1.2}.nav__club{font-weight:700;font-size:.95rem;font-family:inherit}.nav__sub{font-size:.75rem;color:var(--text-muted)}.nav__links{display:flex;align-items:center;gap:2px}.nav__link{padding:8px 16px;font-size:.875rem;font-weight:500;color:var(--text-muted);border-radius:8px;transition:color .2s,background .2s;text-decoration:none}.nav__link:hover{color:var(--text);background:#ffffff0a}.nav__link--active{color:var(--accent)}.nav__cta{margin-left:12px;color:var(--bg);background:var(--accent);border-radius:8px;font-weight:600;letter-spacing:.02em}.nav__cta:hover{background:var(--accent-hover);color:var(--bg)}.notification{background:var(--bg-card);border:1px solid var(--border);color:var(--text)}.app-header{background:var(--bg)!important;border-bottom:1px solid var(--border)}.header-title h1{color:var(--text)}.header-subtitle{color:var(--text-muted)}.header-logo{filter:drop-shadow(0 0 0 transparent)}.env-banner{background:var(--accent);color:var(--bg);border-bottom:1px solid var(--border-strong, rgba(255,255,255,.18))}input,select,textarea{background:var(--bg-input)!important;color:var(--text)!important;border-color:var(--border)!important}input::placeholder{color:var(--text-muted)}.btn-primary{background:var(--accent);color:#111827;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:#ffffff0f;color:var(--text);border-color:var(--border)}.btn-secondary:hover{border-color:var(--border-strong)}.btn-danger{background:#dc2626;color:#fff;border-color:#dc2626}.btn-danger:hover{background:#ef4444;border-color:#ef4444}.btn-logout{color:var(--text)}.card{background:var(--bg-surface);border:1px solid var(--border);color:var(--text)}.summary-card{background:var(--bg-card)}.legend-item{color:var(--text-muted)}.btn-hamburger{color:var(--text)}.app-sidebar{background:var(--bg-surface);border-right:1px solid var(--border)}.sidebar-nav-btn{color:var(--text)}.sidebar-nav-btn.btn-primary{color:var(--bg)}.sidebar-section{background:transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:10px}::-webkit-scrollbar-track{background:transparent}*{margin:0;padding:0;box-sizing:border-box}:root{--judo-navy: #1E3A7B;--judo-navy-dark: #162D60;--judo-gold: #e2b13c;--judo-gold-light: #f0cc78;--judo-black: #0d0d0d;--judo-red: #C0392B;--judo-red-dark: #922B21;--bg-app: #0a0f1c;--bg-app-surface: #111827;--text-app: #e8ecf4;--text-app-muted: #8892a8;--border-app: rgba(255, 255, 255, .12);--radius-app: 10px;--radius-app-lg: 16px;--font-app: "Plus Jakarta Sans", system-ui, sans-serif;--bg-primary: #111827;--bg-secondary: #0a0f1c;--bg-tertiary: #141d2b;--text-primary: #e8ecf4;--text-secondary: #8892a8;--text-tertiary: #6b7280;--border-subtle: rgba(255, 255, 255, .1);--border-focus: #e2b13c;--bg-body: transparent;--bg-card: #1a2744;--border-color: #2a3f6b;--gray-50: #0f151f;--gray-100: #141d2b;--gray-200: #1e293b;--gray-300: #334155;--gray-400: #6b7280;--gray-500: #8892a8;--gray-600: #96a2b8;--gray-700: #cbd5e1;--gray-800: #e2e8f0;--gray-900: #f1f5f9;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-8: 48px;--radius: 8px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .25), 0 4px 6px -4px rgb(0 0 0 / .15)}body{font-family:Inter,system-ui,-apple-system,sans-serif;background-color:var(--bg-secondary);color:var(--text-primary);min-height:100vh;width:100%;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{width:100%;max-width:100%;overflow-x:hidden}#appContainer{width:100%;max-width:100%;min-height:100vh}.env-banner{position:sticky;top:0;z-index:200;width:100%;text-align:center;padding:8px 12px;background:var(--judo-gold);color:var(--judo-black);font-size:.82rem;font-weight:700;letter-spacing:.3px;border-bottom:1px solid var(--judo-gold-light)}.app-version{position:fixed;bottom:8px;right:12px;font-size:.7rem;color:var(--gray-400, #aab4be);pointer-events:none;z-index:9999;-webkit-user-select:none;user-select:none}body.sidebar-open{overflow:hidden;padding-right:var(--scrollbar-width, 0px)}.app-body{max-width:1200px;margin:0 auto;padding:20px;display:flex;flex-direction:column;gap:16px;width:100%}.app-body>*{min-width:0}.app-header{background:var(--bg-primary);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:100;width:100%}.app-header.jcc-header{background:#0a0f1c;border-bottom:1px solid rgba(226,177,60,.25);color:#e8ecf4}.app-header.jcc-header .header-title h1{color:#e8ecf4;letter-spacing:-.01em}.app-header.jcc-header .header-subtitle{color:#8892a8;font-weight:400}.app-header-inner{max-width:1200px;margin:0 auto;padding:var(--space-3) var(--space-4);display:flex;align-items:center;flex-wrap:nowrap;gap:var(--space-3);width:100%}.header-logo{width:32px;height:32px;object-fit:contain;flex-shrink:0}.header-title{flex:1;min-width:0;overflow:hidden}.header-title h1{color:var(--judo-navy)!important;font-size:1.1rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2;overflow-wrap:anywhere}.header-subtitle{color:var(--judo-gold-light);font-size:.78rem;font-weight:500;text-transform:uppercase;letter-spacing:1px}.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:200;opacity:0;transition:opacity .2s ease-out}.sidebar-overlay.is-open{display:block;opacity:1}.app-sidebar{position:fixed;top:0;left:0;height:100%;width:280px;max-width:85vw;background:#0d1424;border-right:1px solid rgba(226,177,60,.15);z-index:300;transform:translate(-100%);transition:transform .25s cubic-bezier(.16,1,.3,1);box-shadow:4px 0 24px #0006;overflow-y:auto;-webkit-overflow-scrolling:touch}.app-sidebar.is-open{transform:translate(0)}.sidebar-inner{padding:var(--space-4) 0 var(--space-6);display:flex;flex-direction:column;gap:0}.sidebar-section{padding:var(--space-3) 0}.sidebar-section:first-child{padding-top:0}.sidebar-brand{display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-4) var(--space-4);border-bottom:1px solid rgba(226,177,60,.15);margin-bottom:var(--space-3)}.sidebar-logo{width:36px;height:36px;border-radius:var(--radius-md);background:#e2b13c1a;padding:4px;flex-shrink:0}.sidebar-club-name{color:#e8ecf4;font-weight:600;font-size:.85rem;line-height:1.3;letter-spacing:-.01em}.sidebar-nav-btn{display:flex;align-items:center;width:calc(100% - 24px);min-height:44px;padding:var(--space-3) var(--space-4);text-align:left;background:transparent;border:none;border-radius:var(--radius-md);color:#8892a8;font-size:.85rem;font-weight:500;cursor:pointer;transition:background-color .15s ease-out,color .15s ease-out,padding-left .2s;margin:2px var(--space-3);gap:8px}.sidebar-nav-btn svg{color:#e2b13c}.sidebar-admin-title svg{color:#e2b13c;vertical-align:middle;margin-right:6px}.sidebar-nav-btn:hover{background:#ffffff0f;color:#e8ecf4;padding-left:calc(var(--space-4) + 4px)}.sidebar-nav-btn.btn-primary{background:#e2b13c1f;color:#e2b13c;font-weight:600;border-left:3px solid #e2b13c}.sidebar-nav-btn.btn-primary:hover{background:#e2b13c33;color:#efd07a}.sidebar-nav-btn.btn-secondary{background:#ffffff0d;color:#8892a8;border:1px solid rgba(255,255,255,.1)}.sidebar-nav-btn.btn-secondary:hover{background:#ffffff14;color:#e8ecf4;border-color:#fff3}.sidebar-divider{height:1px;background:#ffffff14;margin:var(--space-3) var(--space-4)}.sidebar-label{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:.8rem;font-weight:500;color:#8892a8;text-transform:uppercase;letter-spacing:.04em}.sidebar-label select,.sidebar-label input[type=month]{padding:var(--space-3) var(--space-4);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-md);background:#ffffff0d;color:#e8ecf4;font-size:.9rem;width:100%;min-height:44px;-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;transition:border-color .15s ease-out,box-shadow .15s ease-out}.sidebar-label select:focus,.sidebar-label input[type=month]:focus{outline:none;border-color:#e2b13c;box-shadow:0 0 0 3px #e2b13c26}.sidebar-label select option{background:#0d1424;color:#e8ecf4}.sidebar-admin-title{padding:var(--space-2) var(--space-4);color:#e2b13c;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-1)}@media (min-width: 768px){.app-sidebar{transform:translate(0)!important;box-shadow:none;border-right:1px solid rgba(226,177,60,.15)}.sidebar-overlay{display:none!important}.btn-hamburger{display:none}#appContainer,.app-header,.app-header-inner{margin-left:280px;width:calc(100% - 280px);max-width:calc(100% - 280px)}.app-header-inner{max-width:920px}.app-body{margin-left:0}}button,.btn-primary,.btn-secondary,.btn-danger{padding:var(--space-3) var(--space-5);border:1px solid transparent;border-radius:var(--radius-md);font-size:.85rem;font-weight:500;cursor:pointer;transition:background-color .15s ease-out,border-color .15s ease-out,box-shadow .15s ease-out;min-height:44px;display:inline-flex;align-items:center;justify-content:center}button:focus-visible,.btn-primary:focus-visible,.btn-secondary:focus-visible{outline:2px solid var(--judo-gold);outline-offset:2px}.btn-primary{background:var(--judo-navy);color:#fff;border-color:var(--judo-navy)}.btn-primary:hover{background:var(--judo-navy-dark);border-color:var(--judo-navy-dark)}.btn-secondary{background:var(--bg-primary);color:var(--text-primary);border-color:var(--border-subtle)}.btn-secondary:hover{background:var(--bg-tertiary);border-color:var(--text-tertiary)}.btn-danger{background:#fee2e2;color:#991b1b;border-color:#fecaca}.btn-danger:hover{background:#fecaca}.btn-logout,.btn-help{padding:var(--space-2) var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:transparent;color:var(--text-app);font-size:.85rem;font-weight:500;white-space:nowrap}.btn-logout:hover,.btn-help:hover{background:#ffffff1a;color:#fff;border-color:var(--border-strong, rgba(255,255,255,.25))}.btn-home{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;background:#e2b13c;color:#0a0f1c!important;text-decoration:none;border-radius:6px;font-size:.85rem;font-weight:600;white-space:nowrap;transition:opacity .2s}.btn-home:hover{opacity:.85}.btn-hamburger{background:transparent;border:none;color:#fff;font-size:1.4rem;cursor:pointer;padding:6px 10px;border-radius:var(--radius-sm);line-height:1;flex-shrink:0;order:-1;transition:background .2s;position:relative;z-index:101}.btn-hamburger:hover{background:#ffffff26}#freezeBtn{background:#ffffff0d;color:#8892a8;border:1px solid rgba(255,255,255,.1)}#freezeBtn:hover{background:#ffffff14;color:#e8ecf4;border-color:#fff3}#freezeBtn.frozen{background:var(--judo-red)}#freezeBtn.frozen:hover{background:var(--judo-red-dark)}.modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;z-index:1000;justify-content:center;align-items:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal.active{display:flex}.modal-content{background:#fff;padding:28px;border-radius:var(--radius);min-width:400px;max-width:92vw;max-height:90vh;overflow-y:auto;-webkit-overflow-scrolling:touch;box-shadow:var(--shadow-lg);border-top:4px solid var(--judo-red)}.modal-content h2{margin-bottom:20px;color:var(--judo-navy);font-size:1.3rem;font-weight:700}.modal-content label{display:block;font-weight:600;font-size:.85rem;color:var(--gray-700);margin-top:12px;margin-bottom:4px;text-transform:uppercase;letter-spacing:.3px}.modal-content input[type=text],.modal-content input[type=number],.modal-content input[type=email],.modal-content input[type=password]{width:100%;padding:10px 12px;border:2px solid var(--gray-300);border-radius:var(--radius-sm);font-size:.85rem;transition:border-color .2s;color:var(--gray-900)}.modal-content input:focus{outline:none;border-color:var(--judo-red)}.modal-content input[type=checkbox]{width:18px;height:18px;margin-right:8px;accent-color:var(--judo-red);vertical-align:middle}.field-group{display:flex;flex-direction:column;margin-bottom:4px}.field-group label{font-size:.85rem;color:var(--gray-600);margin-bottom:2px}.field-hint{font-size:.78rem;color:var(--gray-500);margin:4px 0 0;line-height:1.4}.required-marker{color:var(--judo-red);font-weight:800;margin-right:2px}.required-note{margin-top:10px}.modal-actions{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap}.modal-actions button{flex:1;min-width:100px;padding:11px 16px}.modal-actions button:disabled{opacity:.55;cursor:not-allowed;transform:none}.modal-actions .btn-primary{background:var(--judo-red);color:#fff}.modal-actions .btn-primary:hover{background:var(--judo-red-dark)}.modal-actions .btn-secondary{background:var(--gray-200);color:var(--gray-900);border:none}.modal-actions .btn-secondary:hover{background:var(--gray-300)}.modal-actions .btn-danger{background:#6c1e1e;color:#fff}.modal-actions .btn-danger:hover{background:#8b2020}.modal-content-help{max-width:680px;width:92vw}.modal-content-audit{width:min(96vw,1200px);max-width:min(96vw,1200px);min-width:min(96vw,320px);display:flex;flex-direction:column;gap:14px}.modal-content-monthly-summary{width:min(96vw,1180px)}#travelGroup{margin-top:8px;padding:14px;background:var(--gray-100);border-radius:var(--radius-sm);border:1px solid var(--gray-200)}#existingJustification{margin-top:8px}#existingJustification a{color:var(--judo-red);font-size:.9rem;text-decoration:none}#existingJustification a:hover{text-decoration:underline}.card{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);width:100%;min-width:0;transition:box-shadow .15s ease-out,border-color .15s ease-out}.card:hover{box-shadow:var(--shadow-md);border-color:var(--text-tertiary)}.toolbar{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:flex-end}.toolbar-label{display:flex;flex-direction:column;flex:1 1 220px;gap:var(--space-2);font-weight:500;font-size:.875rem;color:var(--text-secondary);letter-spacing:.01em}.toolbar-label select,.toolbar-label input[type=month]{padding:var(--space-3) var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:.85rem;background:var(--bg-primary);color:var(--text-primary);transition:border-color .15s ease-out,box-shadow .15s ease-out;display:block;width:100%;min-width:0;min-height:44px;-moz-appearance:none;appearance:none;-webkit-appearance:none}.toolbar-label select:focus,.toolbar-label input[type=month]:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px #1e3a7b26}.legend{display:flex;flex-wrap:wrap;gap:16px;padding:12px 20px}.legend-item{display:flex;align-items:center;gap:6px;font-size:.82rem;font-weight:600;color:var(--gray-700)}.legend-dot{width:14px;height:14px;border-radius:4px;border:2px solid transparent;flex-shrink:0}.legend-dot.weekend{background:#e8e8e8;border-color:#999}.legend-dot.holiday{background:#ffcdd2;border-color:#e57373}.legend-dot.school-holiday{background:#ffe0b2;border-color:#ffb74d}.legend-dot.has-data{background:#c8e6c9;border-color:#66bb6a}.legend-dot.has-competition{background:#bbdefb;border-color:#42a5f5}.legend-dot.has-purchase{background:#d9b8ff;border-color:#8e44ad}.summary-title{font-size:1.1rem;font-weight:700;color:var(--judo-navy);margin-bottom:16px;padding-bottom:10px;border-bottom:2px solid var(--gray-200)}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.summary-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--gray-100);border-radius:var(--radius-sm);border-left:4px solid var(--judo-navy)}.summary-item.total{grid-column:1 / -1;background:linear-gradient(135deg,var(--judo-navy),var(--judo-red));color:#fff;border-left:none;border-radius:var(--radius-sm);padding:16px 20px;font-size:1.1rem}.summary-item .label{font-weight:600;font-size:.85rem;color:var(--gray-700)}.summary-item .value{font-weight:700;color:var(--judo-navy);font-size:1rem}.summary-item.total .label,.summary-item.total .value{color:#fff;font-size:1.05rem}.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.actions button{padding:11px 20px}.import-group{display:block}.import-group input[type=file]{font-size:.85rem;color:var(--gray-700)}.frozen-banner{background:#c0392b14;border:1px solid var(--judo-red);border-radius:var(--radius-sm);padding:10px 16px;color:var(--judo-red);font-weight:600;font-size:.9rem;text-align:center}#adminActionsPanel:empty,#adminActionsPanel>:last-child:first-child:empty,#adminActionsPanel{display:none!important}.sidebar-label>span{display:inline-flex;align-items:center;gap:6px}.sidebar-label span svg{color:#e2b13c}.auth-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-5);background-color:var(--bg-secondary)}.auth-logo{text-align:center;margin-bottom:var(--space-8)}.auth-logo .logo{width:80px;height:80px;object-fit:contain;margin-bottom:var(--space-4)}.auth-logo h1{color:var(--text-primary);font-size:clamp(1.5rem,1.25rem + 1vw,1.75rem);font-weight:600;letter-spacing:-.02em;line-height:1.2}.auth-subtitle{color:var(--text-secondary);font-size:.85rem;margin-top:var(--space-2);font-weight:400}.auth-row{display:flex;flex-direction:column;gap:var(--space-3);width:100%;max-width:360px;margin-bottom:var(--space-4)}.auth-row input{padding:var(--space-3) var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-size:.85rem;transition:border-color .15s ease-out,box-shadow .15s ease-out;min-height:44px}.auth-row input::placeholder{color:var(--text-tertiary)}.auth-row input:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px #1e3a7b26}.auth-buttons{display:flex;flex-direction:column;gap:var(--space-3);max-width:360px;width:100%}.auth-status{margin-top:var(--space-4);color:var(--text-secondary);font-size:.875rem;text-align:center}.coach-greeting{color:var(--white);font-size:1.1rem;font-weight:700;letter-spacing:.3px;padding:4px 2px}.admin-top-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;background:#fffffff7;border-radius:var(--radius);border-top:4px solid var(--judo-gold);box-shadow:var(--shadow-md);padding:14px 18px;width:100%;min-width:0}.admin-top-bar-label{display:flex;flex-direction:column;flex:1 1 200px;gap:5px;font-weight:600;font-size:.85rem;color:var(--gray-700);text-transform:uppercase;letter-spacing:.4px}.admin-top-bar-label>span{display:inline-flex;align-items:center;gap:6px}.admin-top-bar-label span svg{color:#e2b13c}.admin-top-bar-label select,.admin-top-bar-label input[type=month]{padding:10px 12px;border:2px solid var(--gray-300);border-radius:var(--radius-sm);font-size:.85rem;background:#fff;transition:border-color .2s;width:100%;min-width:0;height:44px;color:var(--gray-900);-moz-appearance:none;appearance:none;-webkit-appearance:none}.admin-top-bar-label select:focus,.admin-top-bar-label input[type=month]:focus{outline:none;border-color:var(--judo-red)}.admin-panel{border-top:4px solid var(--judo-gold);background:linear-gradient(180deg,#fffffffa,#f5f8fffa)}.admin-panel-header{display:grid;gap:4px;margin-bottom:16px}.admin-panel-title{color:var(--judo-navy);font-size:1.15rem;font-weight:800}.admin-panel-subtitle{color:var(--gray-600);font-size:.9rem;line-height:1.4}.admin-actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.admin-actions-grid button{width:100%;min-height:58px;white-space:normal;text-align:center}.admin-import-group{grid-column:1 / -1;padding:0;margin:0;display:block;width:100%}.app-sidebar .import-group{display:block;padding:0;margin:0}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;width:100%;min-width:0;overflow:hidden}.calendar-header{background:var(--judo-navy);color:#fff;font-weight:700;text-align:center;padding:10px 6px;border-radius:var(--radius-sm);font-size:.82rem;letter-spacing:.5px;text-transform:uppercase}.calendar-day{aspect-ratio:1;border:2px solid var(--border-subtle);border-radius:var(--radius-sm);padding:6px;cursor:pointer;transition:transform .15s,box-shadow .15s;display:flex;flex-direction:column;justify-content:space-between;position:relative;background:var(--bg-primary);color:var(--text-primary);min-height:60px}.calendar-day:hover:not(.disabled){transform:scale(1.06);box-shadow:0 6px 20px #00000026;z-index:1;border-color:var(--judo-red)}.calendar-day.weekend{background:#f0f0f0;border-color:#bbb}.calendar-day.holiday{background:#ffcdd2;border-color:#e57373}.calendar-day.school-holiday{background:#fff3e0;border-color:#ffb74d}.calendar-day.weekend.holiday{background:#ef9a9a;border-color:#e57373}.calendar-day.weekend.school-holiday{background:#ffcc80;border-color:#ffa726}.calendar-day.disabled{opacity:.2;cursor:not-allowed}.calendar-day.has-data{background:#e8f5e9;border-color:#66bb6a;font-weight:600}.calendar-day.has-competition{background:#e3f2fd;border-color:#42a5f5;font-weight:600}.calendar-day.has-purchase{background:#e4c7ff;border-color:#8e44ad;font-weight:700}.calendar-day.weekend.school-holiday.has-data,.calendar-day.weekend.holiday.has-data{background:#e8f5e9;border-color:#66bb6a}.calendar-day.weekend.school-holiday.has-competition,.calendar-day.weekend.holiday.has-competition{background:#e3f2fd;border-color:#42a5f5}.calendar-day.weekend.school-holiday.has-purchase,.calendar-day.weekend.holiday.has-purchase{background:#e4c7ff;border-color:#8e44ad}.day-number{font-weight:700;font-size:1rem;color:var(--gray-900);line-height:1}.day-info{font-size:.65rem;color:#c0392b;font-weight:600;line-height:1.2;margin-top:2px}.day-hours{font-size:.72rem;color:#1b5e20;font-weight:700;margin-top:4px}.competitions-section{margin-top:16px;display:flex;flex-direction:column;gap:12px}.comp-header{margin-bottom:4px}.comp-header h2{font-size:1.15rem;font-weight:700;color:#fff;margin-bottom:4px}.comp-subtitle{font-size:.85rem;color:#ffffffbf}.comp-subtitle a{color:#ffffffe6;text-decoration:underline}.comp-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;background:#fffffff7;border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow-sm)}.comp-toolbar-actions{display:flex;align-items:flex-end;gap:8px;padding-bottom:2px}.comp-toolbar .btn-secondary{background:var(--judo-navy);color:#fff;border:1px solid var(--judo-navy);-webkit-backdrop-filter:none;backdrop-filter:none}.comp-toolbar .btn-secondary:hover{background:var(--judo-red-dark);border-color:var(--judo-red-dark)}.comp-list{display:flex;flex-direction:column;gap:10px}.comp-status{background:#fffffff7;border-radius:var(--radius);padding:20px;text-align:center;color:var(--gray-600);font-size:.92rem}.comp-empty{font-style:italic}.comp-card{position:relative;display:flex;flex-direction:column;gap:6px;padding:14px 16px;transition:box-shadow .15s}.comp-card--selected{border-left:4px solid var(--judo-gold)}.comp-card-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.comp-card-date{font-weight:700;font-size:.9rem;color:var(--judo-navy);flex:1 1 160px}.comp-card-badges{display:flex;gap:6px;flex-wrap:wrap}.comp-badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:.75rem;font-weight:700;white-space:nowrap}.comp-club-badge{font-size:.78rem;color:var(--judo-gold);font-weight:700}.comp-select-btn{margin-left:auto;padding:4px 10px;font-size:1rem;line-height:1;border-radius:var(--radius-sm);cursor:pointer}.comp-select-btn--on{background:var(--judo-gold-light)!important;border-color:var(--judo-gold)!important;color:var(--judo-navy)!important}.comp-card-title{font-size:1rem;font-weight:700;color:var(--gray-900)}.comp-card-lieu,.comp-card-categories,.comp-card-type,.comp-card-commentaire{font-size:.86rem;color:var(--gray-700)}.comp-card-commentaire{font-style:italic;white-space:pre-wrap;border-top:1px solid var(--gray-200);padding-top:6px;margin-top:2px}.comp-card-link a{font-size:.82rem;color:var(--judo-navy);text-decoration:underline}.comp-calendar{background:#fffffff7;border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow-sm);margin-bottom:12px}.comp-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:8px}.comp-cal-month-label{font-weight:700;font-size:1rem;color:var(--judo-navy)}.comp-cal-nav .btn-secondary{padding:5px 12px;font-size:.82rem;background:var(--judo-navy);color:#fff;border:1px solid var(--judo-navy)}.comp-cal-nav .btn-secondary:hover{background:var(--judo-red-dark);border-color:var(--judo-red-dark)}.comp-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.comp-cal-header-day{text-align:center;font-size:.72rem;font-weight:700;color:var(--judo-navy);padding:4px 0;text-transform:uppercase}.comp-cal-day{min-height:40px;border-radius:var(--radius-sm);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;font-size:.82rem;color:var(--gray-700);-webkit-user-select:none;user-select:none;padding:2px}.comp-cal-day--empty{pointer-events:none}.comp-cal-day--has-events{background:#1e3a7b1f;cursor:pointer;font-weight:700;color:var(--judo-navy);transition:background .15s}.comp-cal-day--has-events:hover{background:#1e3a7b38}.comp-cal-day--selected{border:2px solid var(--judo-red);background:#1e3a7b2e!important}.comp-cal-day-num{line-height:1}.comp-cal-day-badge{display:inline-flex;align-items:center;justify-content:center;background:var(--judo-gold);color:var(--judo-navy);font-size:.65rem;font-weight:900;border-radius:999px;min-width:16px;height:16px;padding:0 3px;margin-top:2px}.comp-day-detail{background:#fffffff7;border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow-sm);margin-bottom:12px;border-left:4px solid var(--judo-gold)}.comp-day-detail-title{font-size:.85rem;font-weight:700;color:var(--judo-navy);margin-bottom:10px}.comp-day-detail-list{display:flex;flex-direction:column;gap:10px}.audit-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.audit-toolbar label{margin:0;min-width:180px;flex:1 1 220px}.audit-toolbar select{width:100%;padding:10px 12px;border:2px solid var(--gray-300);border-radius:var(--radius-sm);font-size:.85rem;color:var(--gray-900);background:#fff}.audit-checkbox{display:flex!important;align-items:center;gap:8px;min-height:42px;text-transform:none!important;letter-spacing:0!important}.audit-checkbox input{width:auto!important}.audit-status{font-size:.9rem;color:var(--gray-700)}.audit-table-wrap{width:100%;max-height:60vh;overflow:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--gray-300);border-radius:var(--radius-sm);background:#fff}.audit-table{width:100%;border-collapse:collapse}.audit-table th,.audit-table td{padding:10px 12px;border-bottom:1px solid var(--gray-200);text-align:left;vertical-align:top;font-size:.88rem}.audit-table th{position:-webkit-sticky;position:sticky;top:0;background:var(--judo-navy);color:#fff;z-index:1}.audit-table tbody tr:nth-child(2n){background:var(--gray-100)}.audit-meta{display:grid;gap:4px}.audit-meta-row{display:grid;gap:2px}.audit-meta-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--gray-600)}.audit-meta-item{color:var(--gray-700);line-height:1.35}.audit-action-cell{display:grid;gap:4px}.audit-action-summary{color:var(--gray-800);font-weight:600;line-height:1.35}.audit-action-code{color:var(--gray-600);font-size:.74rem;font-family:Consolas,Courier New,monospace;overflow-wrap:anywhere}.audit-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:.76rem;font-weight:700;background:#eaf2ff;color:var(--judo-navy)}.audit-empty{color:var(--gray-500);text-align:center!important}.monthly-summary-header{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;justify-content:space-between}.monthly-summary-subtitle{margin:-8px 0 0;color:var(--gray-600);font-size:.92rem}.monthly-summary-toolbar{display:flex;flex-wrap:wrap;gap:10px}.monthly-summary-toolbar button{min-width:110px}.monthly-summary-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px}.monthly-summary-card{padding:14px;border:1px solid var(--gray-200);border-radius:var(--radius-sm);background:linear-gradient(180deg,#fbfdff,#f1f6fc);display:grid;gap:6px}.monthly-summary-card-total{background:linear-gradient(135deg,#0f3460,#145da0);border-color:transparent}.monthly-summary-card-label{color:var(--gray-600);font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.monthly-summary-card-total .monthly-summary-card-label,.monthly-summary-card-total .monthly-summary-card-value{color:#fff}.monthly-summary-card-value{color:var(--judo-navy);font-size:1.05rem;font-weight:800}.monthly-summary-name{font-weight:700;color:var(--gray-900)}.monthly-summary-secondary{color:var(--gray-600);font-size:.78rem}.help-section{margin-top:20px;padding-bottom:16px;border-bottom:1px solid var(--gray-200)}.help-section:last-of-type{border-bottom:none}.help-section h3{font-size:1rem;font-weight:700;color:var(--judo-navy);margin-bottom:10px}.help-section p{font-size:.9rem;color:var(--gray-700);line-height:1.6}.help-section ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px}.help-section ul li{font-size:.9rem;color:var(--gray-700);line-height:1.5;padding-left:16px;position:relative}.help-section ul li:before{content:"•";position:absolute;left:0;color:var(--judo-red);font-weight:700}.help-color-dot{display:inline-block;width:14px;height:14px;border-radius:4px;border:2px solid transparent;vertical-align:middle;margin-right:4px}.weekend-dot{background:#e8e8e8;border-color:#999}.holiday-dot{background:#ffcdd2;border-color:#e57373}.school-holiday-dot{background:#fff3e0;border-color:#ffb74d}.has-data-dot{background:#e8f5e9;border-color:#66bb6a}.has-competition-dot{background:#e3f2fd;border-color:#42a5f5}.has-purchase-dot{background:#d9b8ff;border-color:#8e44ad}.admin-help{background:var(--gray-100);border-radius:var(--radius-sm);padding:14px 16px}.help-version-card{margin-top:20px;padding:14px 16px;border-radius:var(--radius-sm);background:linear-gradient(135deg,#0f346014,#e6394614);border:1px solid var(--gray-200)}.help-version-title{font-size:.82rem;font-weight:700;color:var(--gray-700);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.help-version-value{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.help-version-label{font-size:.9rem;font-weight:700;color:var(--judo-navy)}.help-version-date,.help-version-build{display:inline-flex;align-items:center;min-height:32px;padding:6px 10px;border-radius:999px;font-weight:800;letter-spacing:.02em}.help-version-date{background:#0f34601f;color:var(--judo-navy)}.help-version-build{background:#e6394624;color:var(--judo-red)}.export-preview-content{width:min(96vw,1100px);max-width:min(96vw,1100px);min-width:min(96vw,320px);display:flex;flex-direction:column;gap:12px}.export-preview-toolbar{display:flex;gap:8px;flex-wrap:wrap}.export-preview-toolbar button{flex:1 1 180px}.export-preview-toolbar .btn-secondary{background:var(--gray-200);color:var(--gray-900);border:1px solid var(--gray-300)}.export-preview-frame{width:100%;min-height:70vh;border:1px solid var(--gray-300);border-radius:var(--radius-sm);background:#fff}.members-section{margin-top:16px;display:flex;flex-direction:column;gap:12px}.members-header{margin-bottom:4px}.members-header h2{font-size:1.15rem;font-weight:700;color:#fff;margin-bottom:4px}.members-subtitle{font-size:.82rem;color:#ffffffb3}.members-toolbar{display:flex;flex-direction:column;gap:8px;background:#1a2744;border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow-sm)}.members-toolbar-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.members-toolbar .btn-secondary,.members-toolbar label.btn-secondary{font-size:.82rem;padding:6px 14px;min-height:36px;white-space:nowrap}.members-toolbar label.btn-secondary{border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:opacity .15s}.members-toolbar label.btn-secondary:hover{opacity:.85}.members-counter{font-size:.9rem;font-weight:700;padding:3px 10px;border-radius:4px;background:#ffffff14;margin-left:auto}.members-sync-info{font-size:.78rem;color:#fff9;white-space:nowrap}.members-tabs{display:flex;gap:2px;background:#1a2744;border-radius:var(--radius) var(--radius) 0 0;padding:10px 16px 0;overflow-x:auto;-webkit-overflow-scrolling:touch}.members-tab{padding:8px 18px;font-size:.85rem;font-weight:600;border:none;background:transparent;color:#fff9;cursor:pointer;border-radius:6px 6px 0 0;transition:all .15s;white-space:nowrap;min-height:auto}.members-tab:hover{color:#ffffffe6;background:#ffffff0f}.members-tab.is-active{color:#0a0f1c;background:#e2b13c;font-weight:700}.members-tab-panel{display:none;background:#1a2744;border-radius:0 var(--radius) var(--radius) var(--radius);padding:16px;box-shadow:var(--shadow-sm)}.members-tab-panel.is-active{display:block}.members-table-wrap{overflow-x:auto;max-height:60vh;overflow-y:auto}.members-table{width:100%;border-collapse:collapse;font-size:.82rem}.members-table th{text-align:left;padding:8px 10px;font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.3px;color:#fff9;border-bottom:1px solid rgba(255,255,255,.1);position:sticky;top:0;background:#1a2744;z-index:1}.members-table td{padding:6px 10px;border-bottom:1px solid rgba(255,255,255,.06);vertical-align:middle}.members-table tr:hover td{background:#ffffff08}.members-table .ha-edit-btn{opacity:0!important;transition:opacity .15s}.members-table tr:hover .ha-edit-btn{opacity:.6!important}.members-table .ha-edit-btn:hover{opacity:1!important}.members-category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.members-category-card{background:#ffffff0d;border-radius:var(--radius);padding:14px;border:1px solid rgba(255,255,255,.08)}.members-category-card h3{font-size:.95rem;font-weight:700;color:#e2b13c;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between}.members-category-count{font-size:.8rem;color:#ffffff80;font-weight:400}.members-category-list{list-style:none;padding:0;margin:0;max-height:200px;overflow-y:auto}.members-category-list li{padding:3px 0;font-size:.82rem;color:#ffffffd9;display:flex;align-items:center;gap:6px}.members-category-list li .member-status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.member-status-dot.saisi{background:#4caf50}.member-status-dot.unsaisi{background:#f44336}.members-group-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.members-group-card{background:#ffffff0d;border-radius:var(--radius);padding:16px;border:1px solid rgba(255,255,255,.08);transition:border-color .15s}.members-group-card:hover{border-color:#e2b13c66}.members-group-card h3{font-size:.95rem;font-weight:700;color:#e2b13c;margin-bottom:6px}.members-list-controls{margin-bottom:12px;background:#ffffff0a;border-radius:8px;padding:10px 12px}.members-filter-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:8px}.members-filter-select{background:#ffffff14;color:#e0e0e0;border:1px solid rgba(255,255,255,.12);border-radius:4px;padding:3px 8px;font-size:.8rem;font-weight:600;cursor:pointer}.members-filter-select:focus{outline:none;border-color:#e2b13c}.members-columns-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding-top:6px;border-top:1px solid rgba(255,255,255,.06)}.members-col-toggle{display:inline-flex;align-items:center;gap:3px;font-size:.72rem;font-weight:600;color:#fff6;cursor:pointer;padding:2px 6px;border-radius:4px;background:#ffffff0a;transition:all .15s ease}.members-col-toggle.active{color:#e0e0e0;background:#e2b13c1f}.members-col-toggle input[type=checkbox]{display:none}.members-col-toggle:before{content:"☐";font-size:.8rem;margin-right:1px}.members-col-toggle.active:before{content:"☑";color:#e2b13c}.members-disc-toggle{display:inline-flex;align-items:center;gap:3px;font-size:.78rem;font-weight:600;color:#fff6;cursor:pointer;padding:2px 8px;border-radius:4px;background:#ffffff0a;transition:all .15s ease}.members-disc-toggle.active{color:#e0e0e0;background:#4caf5026;border:1px solid rgba(76,175,80,.3)}.members-disc-toggle input[type=checkbox]{display:none}.members-group-card .group-count{font-size:.8rem;color:#ffffff80;margin-bottom:10px}.members-group-card .group-contacts{list-style:none;padding:0;margin:0 0 12px;max-height:180px;overflow-y:auto}.members-group-card .group-contacts li{padding:3px 0;font-size:.82rem;color:#ffffffd9;display:flex;align-items:center;gap:6px}.members-group-card .group-actions{display:flex;gap:8px;flex-wrap:wrap}.members-group-card .group-actions button{font-size:.78rem;padding:5px 12px;min-height:32px}.group-action-copy{background:#1565c0;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;transition:background .15s}.group-action-copy:hover{background:#0d47a1}.group-action-copy.copied{background:#2e7d32}.group-action-whatsapp{background:#25d366;color:#0a0f1c;border:none;border-radius:4px;cursor:pointer;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:4px;transition:opacity .15s}.group-action-whatsapp:hover{opacity:.85}.group-action-mailto{background:#e2b13c;color:#0a0f1c;border:none;border-radius:4px;cursor:pointer;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:4px;transition:opacity .15s}.group-action-mailto:hover{opacity:.85}.members-config-details{background:#1a2744;border-radius:var(--radius);padding:0}.members-config-summary{cursor:pointer;font-size:.82rem;font-weight:600;color:#fff9;padding:8px 14px;-webkit-user-select:none;user-select:none}.members-config-summary:hover{color:#ffffffe6}.members-token-input{width:100%;padding:8px 12px;font-size:.82rem;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:4px;color:#fff;font-family:monospace}.members-token-input:focus{border-color:#e2b13c;outline:none}.members-stats-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px;font-size:.82rem}.members-stat{padding:4px 10px;border-radius:4px;font-weight:600}.members-stat.matched{background:#4caf5033;color:#81c784}.members-stat.mismatch{background:#ff980033;color:#ffb74d}.members-stat.corrected{background:#4caf5026;color:#a5d6a7}.members-stat.unmatched{background:#f4433633;color:#e57373}.members-stat.ffjda-only{background:#9c27b033;color:#ce93d8}.members-empty{text-align:center;padding:30px 20px;color:#ffffff80;font-size:.9rem}.members-age-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:700;background:#e2b13c33;color:#e2b13c}@media (max-width: 768px){.members-toolbar-row{flex-direction:column;align-items:stretch}.members-toolbar .btn-secondary,.members-toolbar label.btn-secondary{width:100%;justify-content:center}.members-counter{margin-left:0;text-align:center}.members-sync-info{text-align:center}.members-tabs{overflow-x:auto;gap:0}.members-tab{padding:8px 12px;font-size:.8rem}.members-category-grid,.members-group-grid{grid-template-columns:1fr}}:root{--bg-body: transparent;--bg-card: rgba(255,255,255,.97);--text-primary: var(--gray-900);--text-secondary: var(--gray-700);--border-color: var(--gray-300)}:root[data-theme=dark]{--gray-100: #1e293b;--gray-200: #334155;--gray-700: #cbd5e1;--bg-body: #0d1b2a;--bg-card: #1a2744;--text-primary: #f0f4ff;--text-secondary: #a8b8d0;--border-color: #2a3f6b}[data-theme=dark] body{background:#0f172a;color:var(--text-primary)}[data-theme=dark] .card{background:#1e293b;border-color:#334155}[data-theme=dark] .card:hover{border-color:#475569}[data-theme=dark] .toolbar-label select,[data-theme=dark] .toolbar-label input[type=month],[data-theme=dark] .sidebar-label select,[data-theme=dark] .sidebar-label input[type=month]{background:#1e293b;border-color:#334155;color:var(--text-primary)}[data-theme=dark] .toolbar-label select:focus,[data-theme=dark] .toolbar-label input[type=month]:focus,[data-theme=dark] .sidebar-label select:focus,[data-theme=dark] .sidebar-label input[type=month]:focus{border-color:var(--judo-gold);box-shadow:0 0 0 3px #e6b24026}[data-theme=dark] .app-sidebar{background:#1e293b;border-right-color:#334155}[data-theme=dark] .sidebar-brand{border-bottom-color:#334155}[data-theme=dark] .sidebar-divider{background:#334155}[data-theme=dark] .summary-item{background:#152035;border-left-color:var(--judo-gold)}[data-theme=dark] .summary-item .label{color:var(--text-secondary)}[data-theme=dark] .summary-item .value{color:#90b8f8}[data-theme=dark] .toolbar-label{color:var(--text-secondary)}[data-theme=dark] .toolbar-label select,[data-theme=dark] .toolbar-label input[type=month]{background:#152035;border-color:var(--border-color);color:var(--text-primary)}[data-theme=dark] .calendar-day{background:#152035;border-color:#2a3f6b;color:var(--text-primary)}[data-theme=dark] .calendar-day.weekend{background:#111e2e;border-color:#2a3f6b}[data-theme=dark] .calendar-day.holiday{background:#2d1a1a;border-color:#7d3535}[data-theme=dark] .calendar-day.school-holiday{background:#28200d;border-color:#7d6020}[data-theme=dark] .calendar-day.has-data{background:#0f2a14;border-color:#3d8b41}[data-theme=dark] .calendar-day.has-competition{background:#0d1e38;border-color:#2a6db5}[data-theme=dark] .calendar-day.has-purchase{background:#1e0d33;border-color:#7a3da8}[data-theme=dark] .day-number{color:var(--text-primary)}[data-theme=dark] .legend,[data-theme=dark] .legend-item{color:var(--text-secondary)}[data-theme=dark] .summary-title{color:#90b8f8;border-bottom-color:var(--border-color)}[data-theme=dark] .modal-content{background:#1a2744;color:var(--text-primary)}[data-theme=dark] .modal-content h2{color:#90b8f8}[data-theme=dark] .modal-content label{color:var(--text-secondary)}[data-theme=dark] .modal-content input[type=text],[data-theme=dark] .modal-content input[type=number],[data-theme=dark] .modal-content input[type=email],[data-theme=dark] .modal-content input[type=password]{background:#0d1b2a;border-color:var(--border-color);color:var(--text-primary)}[data-theme=dark] #travelGroup{background:#0d1b2a;border-color:var(--border-color)}[data-theme=dark] .modal-actions .btn-secondary{background:#2a3f6b;color:var(--text-primary);border-color:#3a5490}[data-theme=dark] .modal-actions .btn-secondary:hover{background:#3a5490}[data-theme=dark] .frozen-banner{background:#c0392b26}[data-theme=dark] .calendar-header{background:#152a55}[data-theme=dark] .comp-toolbar,[data-theme=dark] .comp-calendar,[data-theme=dark] .comp-day-detail,[data-theme=dark] .comp-status,[data-theme=dark] .comp-card{background:#1a2744;color:var(--text-primary)}[data-theme=dark] .audit-table-wrap{background:#1a2744;border-color:var(--border-color)}[data-theme=dark] .audit-table th{background:#0d1b2a}[data-theme=dark] .audit-table tbody tr:nth-child(2n){background:#152035}[data-theme=dark] .audit-table td{color:var(--text-secondary);border-bottom-color:var(--border-color)}[data-theme=dark] .admin-top-bar{background:#1e2230f7}[data-theme=dark] .admin-top-bar-label select,[data-theme=dark] .admin-top-bar-label input[type=month]{background:var(--gray-800);color:var(--gray-100);border-color:var(--gray-600)}@media (max-width: 768px){.header-actions .btn-help,.header-actions .btn-logout,.header-actions .btn-home{display:inline-flex;align-items:center;justify-content:center;min-height:36px}.app-header-inner{padding:calc(10px + env(safe-area-inset-top,0px)) calc(12px + env(safe-area-inset-right,0px)) 10px calc(12px + env(safe-area-inset-left,0px));gap:10px}.header-logo{width:44px;height:44px}.header-title{flex:1 1 calc(100% - 56px)}.header-title h1{font-size:1rem}.header-subtitle{font-size:.7rem;letter-spacing:.7px}.app-header-inner>button:not(.btn-hamburger){flex:1 1 140px;min-width:0;text-align:center}.btn-hamburger{display:flex!important;flex:0 0 auto;color:#e8ecf4}.app-body{padding:12px calc(12px + env(safe-area-inset-right,0px)) calc(12px + env(safe-area-inset-bottom,0px)) calc(12px + env(safe-area-inset-left,0px));gap:12px}.card{padding:16px}.calendar{gap:4px}.calendar-header,.calendar-day{min-width:0}.calendar-day{padding:4px;min-height:44px}.day-number{font-size:.85rem}.day-info,.day-hours{font-size:.65rem}.modal-content{min-width:unset;width:95vw;padding:20px}.toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:12px}.toolbar-label{flex:initial;min-width:0}.toolbar-label select,.toolbar-label input[type=month]{min-width:0;width:100%;max-width:none;font-size:.9rem}.summary-grid{grid-template-columns:1fr}.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.actions button{width:100%;min-width:0}.import-group{width:100%;grid-column:1 / -1}.admin-actions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar.card{padding:10px;overflow:hidden}.calendar{width:100%;max-width:100%;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-header{font-size:.72rem;padding:8px 2px}.calendar-day{min-height:0;height:clamp(42px,11vw,58px)}.header-logo,.header-subtitle{display:none}.header-title h1{font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-title .header-subtitle{display:none}.header-actions{gap:4px}.header-actions .btn-help,.header-actions .btn-logout,.header-actions .btn-home{font-size:.75rem;padding:6px 10px}.modal-content{width:95vw;max-height:90vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-content-audit{width:95vw;min-width:unset}.audit-toolbar{flex-direction:column;align-items:stretch}.audit-toolbar label,.audit-toolbar button{width:100%}.audit-table th,.audit-table td{font-size:.8rem;padding:8px 10px}.monthly-summary-header,.monthly-summary-toolbar{flex-direction:column;align-items:stretch}}@media (max-width: 640px){.header-logo,.header-subtitle{display:none}}@media (max-width: 600px){.comp-toolbar{flex-direction:column}.comp-card-header{flex-direction:column;align-items:flex-start}.comp-select-btn{margin-left:0}.comp-cal-day{min-height:32px;font-size:.75rem}.comp-cal-header-day{font-size:.65rem}.comp-cal-day-badge{font-size:.6rem;min-width:14px;height:14px}}@media (max-width: 480px){.header-actions .btn-help span,.header-actions .btn-logout,.header-actions .btn-home{font-size:.7rem;padding:5px 6px;min-height:32px;line-height:1}.header-actions .btn-help{padding:5px 8px;min-height:32px;line-height:1}.header-title h1{font-size:.78rem}}@media (max-width: 380px){.header-title h1{font-size:.7rem}.header-actions .btn-help span,.header-actions .btn-logout,.header-actions .btn-home{font-size:.65rem;padding:4px 5px;min-height:28px}}.auth-container{background:var(--bg)!important;padding-top:96px!important}.auth-logo h1{color:var(--text)}.auth-subtitle,.auth-status{color:var(--text-muted)}.auth-buttons{max-width:360px;width:100%;display:flex;flex-direction:column;gap:12px}.auth-row input{background:#0f1623!important;color:#e8ecf4!important;border-color:#ffffff1a!important;padding:12px 14px}.auth-row input::placeholder{color:#7a889c}.auth-row input:focus{border-color:var(--accent)}
