:root{--color-primary: #c41e2a;--color-primary-dark: #8b1520;--color-primary-hover: #a5192c;--color-primary-light: #fde8ea;--color-primary-lighter: #fff5f5;--color-success: #2e7d32;--color-success-light: #e8f5e9;--color-warning: #e65100;--color-warning-light: #fff3e0;--color-info: #1565c0;--color-info-light: #e3f2fd;--color-pink: #c2185b;--color-pink-light: #fce4ec;--color-text: #222;--color-text-secondary: #555;--color-text-muted: #888;--color-bg: #ffffff;--color-bg-page: #f4f5f7;--color-bg-subtle: #f8f9fa;--color-border: #e0e0e0;--color-border-light: #f0f0f0;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--space-3xl: 48px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 2px 4px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .04);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .1), 0 2px 4px rgba(0, 0, 0, .06);--shadow-xl: 0 8px 24px rgba(0, 0, 0, .12), 0 4px 8px rgba(0, 0, 0, .06);--shadow-2xl: 0 16px 40px rgba(0, 0, 0, .15), 0 8px 16px rgba(0, 0, 0, .08);--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-xs: .75rem;--font-sm: .8125rem;--font-base: .9375rem;--font-lg: 1.125rem;--font-xl: 1.25rem;--font-2xl: 1.5rem;--focus-ring: 0 0 0 3px rgba(196, 30, 42, .15);--transition-fast: .15s ease;--transition-normal: .2s ease}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--color-bg-page);color:var(--color-text);line-height:1.5;font-size:var(--font-base);-webkit-font-smoothing:antialiased}:focus-visible{outline:none;box-shadow:var(--focus-ring)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-subtle)}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:#a1a1a1}.tp-page-center{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg-page);padding:var(--space-xl) var(--space-lg)}.tp-page{min-height:100vh;background:var(--color-bg-page);display:flex;flex-direction:column}.tp-main{max-width:1100px;margin:0 auto;padding:var(--space-xl) 20px;width:100%}.tp-narrow{max-width:560px}.tp-loading{text-align:center;padding:80px 20px;color:var(--color-text-muted);font-size:1.1rem}.tp-error-page{text-align:center;padding:80px 20px;color:var(--color-primary)}.tp-header{background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:0 20px;height:56px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);position:sticky;top:0;z-index:100}.tp-header-logo{font-weight:700;font-size:1.05rem;color:var(--color-primary)}.tp-header-right,.tp-header-left{display:flex;align-items:center;gap:var(--space-md)}.tp-back-btn{font-size:1.2rem;padding:var(--space-xs) var(--space-sm)}.tp-user-label{font-size:var(--font-sm);color:var(--color-text-secondary)}.tp-auth-card{background:var(--color-bg);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:36px var(--space-2xl);width:100%;max-width:420px}.tp-logo{text-align:center;color:var(--color-primary);font-size:1.4rem;font-weight:800;margin:0 0 var(--space-xl);letter-spacing:-.5px}.tp-tabs{display:flex;border-bottom:2px solid var(--color-border);margin-bottom:20px}.tp-tab{flex:1;padding:var(--space-md);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;font-size:var(--font-base);color:var(--color-text-secondary);transition:color var(--transition-fast),border-color var(--transition-fast)}.tp-tab:focus-visible{box-shadow:var(--focus-ring);outline:none}.tp-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.tp-form{display:flex;flex-direction:column;gap:14px}.tp-field{display:flex;flex-direction:column;gap:5px}.tp-field label{font-size:var(--font-sm);font-weight:500;color:#444}.tp-field input,.tp-field select,.tp-textarea,.tp-select,.tp-invite-link-input{padding:9px var(--space-md);border:1px solid #d0d0d0;border-radius:var(--radius-md);font-size:var(--font-base);outline:none;transition:border-color var(--transition-fast);width:100%;box-sizing:border-box}.tp-field input:focus,.tp-field select:focus,.tp-textarea:focus{border-color:var(--color-primary)}.tp-field-hint{font-size:var(--font-sm);color:var(--color-text-muted);margin:2px 0 0}.tp-form-actions{display:flex;gap:var(--space-md);justify-content:flex-end;margin-top:var(--space-sm)}.tp-day-row{display:flex;gap:var(--space-sm);align-items:center;margin-bottom:var(--space-md)}.tp-day-row input[type=date]{flex:1;padding:var(--space-sm) var(--space-md);border:1px solid #d0d0d0;border-radius:var(--radius-md);font-size:var(--font-base);outline:none}.tp-btn-primary{padding:var(--space-md) var(--space-lg);background:var(--color-primary);color:var(--color-bg);border:none;border-radius:var(--radius-md);font-size:var(--font-base);font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.tp-btn-primary:hover{background:var(--color-primary-hover)}.tp-btn-primary:disabled{background:#e0a0a5;cursor:not-allowed}.tp-btn-primary:focus-visible{box-shadow:var(--focus-ring);outline:none}.tp-btn-secondary{padding:var(--space-md) var(--space-lg);background:var(--color-border-light);color:var(--color-text);border:1px solid #ddd;border-radius:var(--radius-md);font-size:var(--font-base);cursor:pointer;transition:background var(--transition-fast)}.tp-btn-secondary:hover{background:var(--color-border)}.tp-btn-secondary:focus-visible{box-shadow:var(--focus-ring);outline:none}.tp-btn-ghost{padding:var(--space-md) var(--space-md);background:none;color:var(--color-text-secondary);border:none;cursor:pointer;font-size:var(--font-base);border-radius:var(--radius-md);transition:background var(--transition-fast)}.tp-btn-ghost:hover{background:var(--color-border-light)}.tp-btn-ghost:focus-visible{box-shadow:var(--focus-ring);outline:none}.tp-btn-icon{width:36px;height:36px;background:none;border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);font-size:1rem;transition:background var(--transition-fast)}.tp-btn-icon:hover{background:var(--color-border-light)}.tp-btn-icon:focus-visible{box-shadow:var(--focus-ring);outline:none}.tp-btn-icon-danger{width:36px;height:36px;background:none;border:none;border-radius:50%;cursor:pointer;color:var(--color-primary);font-size:var(--font-sm);display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast);flex-shrink:0}.tp-btn-icon-danger:hover{background:var(--color-primary-light)}.tp-btn-icon-danger:disabled{opacity:.4;cursor:not-allowed}.tp-btn-icon-danger:focus-visible{box-shadow:var(--focus-ring);outline:none}.tp-error{color:var(--color-primary);font-size:var(--font-sm);margin:var(--space-xs) 0}.tp-muted{color:var(--color-text-muted);font-size:var(--font-sm)}.tp-login-support{margin:-4px 0 2px;font-size:var(--font-sm);color:var(--color-text-secondary)}.tp-login-support a{color:var(--color-primary);font-weight:500;white-space:nowrap}.tp-dashboard-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.tp-dashboard-top h2{margin:0;font-size:1.3rem;color:var(--color-text)}.tp-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-lg)}.tp-tournament-card-wrap{position:relative}.tp-tournament-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:20px;text-align:left;cursor:pointer;transition:box-shadow var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);width:100%}.tp-card-delete-btn{position:absolute;bottom:var(--space-md);right:var(--space-md);display:grid;place-items:center;width:30px;height:30px;background:none;border:none;cursor:pointer;color:var(--color-text-muted);opacity:0;transition:opacity var(--transition-fast),background var(--transition-fast),color var(--transition-fast);border-radius:var(--radius-full, 999px);line-height:1}@media(hover:hover){.tp-tournament-card:hover{box-shadow:var(--shadow-lg);border-color:var(--color-primary)}.tp-tournament-card-wrap:hover .tp-card-delete-btn{opacity:.5}.tp-card-delete-btn:hover{opacity:1!important;background:var(--color-primary-light);color:var(--color-primary)}}@media(hover:none){.tp-card-delete-btn{opacity:1;color:var(--color-text-muted);background:var(--color-bg-subtle, #f1f2f5)}}.tp-btn-danger{padding:var(--space-md) var(--space-lg);background:var(--color-primary);color:var(--color-bg);border:none;border-radius:var(--radius-lg);font-size:var(--font-base);font-weight:600;cursor:pointer;transition:background var(--transition-normal)}.tp-btn-danger:hover{background:var(--color-primary-hover)}.tp-btn-danger:disabled{opacity:.6;cursor:not-allowed}.tp-btn-danger:focus-visible{box-shadow:var(--focus-ring);outline:none}.tp-modal-overlay{position:fixed;inset:0;background:#00000073;z-index:1000;display:flex;align-items:center;justify-content:center}.tp-modal{background:var(--color-bg);border-radius:var(--radius-xl);padding:28px var(--space-2xl);max-width:420px;width:calc(100% - var(--space-3xl));box-shadow:var(--shadow-2xl)}.tp-modal h3{margin:0 0 var(--space-md);font-size:1.1rem;font-weight:700}.tp-modal p{margin:0 0 20px;color:var(--color-text-secondary);line-height:1.5;font-size:var(--font-base)}.tp-panel-danger{border:1px solid var(--color-primary-light)}.tp-panel-danger .tp-panel-header h3{color:var(--color-primary)}.tp-delete-list{margin:0 0 20px;padding-left:20px;color:var(--color-text-secondary);font-size:.9rem;line-height:1.5}.tp-delete-list li{margin-bottom:6px}.tp-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-md)}.tp-card-name{font-weight:700;font-size:1rem;color:var(--color-text)}.tp-card-slug{font-size:var(--font-sm);color:var(--color-text-muted)}.tp-empty{text-align:center;padding:60px 20px;color:var(--color-text-muted)}.tp-empty p{margin-bottom:var(--space-lg)}.tp-role-badge{display:inline-block;padding:2px var(--space-sm);border-radius:var(--radius-sm);font-size:var(--font-xs);font-weight:600;white-space:nowrap}.tp-role-owner{background:var(--color-warning-light);color:var(--color-warning)}.tp-role-admin{background:var(--color-primary-light);color:var(--color-primary)}.tp-role-staff{background:var(--color-success-light);color:var(--color-success)}.tp-card{background:var(--color-bg);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:var(--space-xl)}.tp-panel{background:var(--color-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:var(--space-lg);overflow:hidden}.tp-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #eee}.tp-panel-header h3{margin:0;font-size:1rem;font-weight:700;color:var(--color-text)}.tp-panel-body{padding:var(--space-lg) 20px 20px}.tp-panel-section{margin-bottom:20px}.tp-panel-section:last-child{margin-bottom:0}.tp-panel-section h4{margin:0 0 var(--space-md);font-size:var(--font-base);font-weight:600;color:#444;text-transform:uppercase;letter-spacing:.04em}.tp-switch{--switch-w: 46px;--switch-h: 28px;--knob: 22px;position:relative;width:var(--switch-w);height:var(--switch-h);flex:0 0 auto;padding:0;border:none;border-radius:999px;background:var(--color-border, #ccc);cursor:pointer;transition:background .18s ease}.tp-switch.on{background:#2f9e44}.tp-switch:disabled{opacity:.5;cursor:default}.tp-switch-knob{position:absolute;top:3px;left:3px;width:var(--knob);height:var(--knob);border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000059;transition:transform .18s ease}.tp-switch.on .tp-switch-knob{transform:translate(calc(var(--switch-w) - var(--knob) - 6px))}.tp-switch:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.tp-panel-header-actions{display:flex;align-items:center;gap:var(--space-sm, 8px)}.tp-panel-error{margin:0;padding:var(--space-sm, 8px) 20px;border-bottom:1px solid var(--color-border)}.tp-day-config-row{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-sm)}.tp-day-label{font-size:var(--font-base);font-weight:500;width:110px;flex-shrink:0;color:var(--color-text)}.tp-day-categories-input{flex:1;padding:7px var(--space-md);border:1px solid #d0d0d0;border-radius:var(--radius-md);font-size:var(--font-sm);outline:none;transition:border-color var(--transition-fast)}.tp-day-categories-input:focus{border-color:var(--color-primary)}.tp-day-add-row{display:flex;gap:var(--space-sm);align-items:center;margin-top:var(--space-sm)}.tp-day-add-row input[type=date]{padding:7px var(--space-md);border:1px solid #d0d0d0;border-radius:var(--radius-md);font-size:var(--font-base);outline:none}.tp-price-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.tp-price-field{display:flex;flex-direction:column;gap:var(--space-xs);font-size:var(--font-sm);color:#444}.tp-price-field input{padding:7px var(--space-md);border:1px solid #d0d0d0;border-radius:var(--radius-md);font-size:var(--font-base);outline:none;width:100%;box-sizing:border-box;transition:border-color var(--transition-fast)}.tp-price-field input:focus{border-color:var(--color-primary)}.tp-members-table{width:100%;border-collapse:collapse;font-size:var(--font-base)}.tp-members-table th{text-align:left;padding:var(--space-md) var(--space-sm);color:var(--color-text-muted);font-weight:500;border-bottom:1px solid #eee}.tp-members-table td{padding:var(--space-sm) var(--space-sm);border-bottom:1px solid var(--color-bg-subtle);vertical-align:middle}.tp-you{color:var(--color-text-muted);font-size:.8em}.tp-invite-row{display:flex;gap:var(--space-md);align-items:center;flex-wrap:wrap;margin-bottom:var(--space-md)}.tp-invite-result{margin-top:var(--space-md)}.tp-invite-link-row{display:flex;gap:var(--space-sm);align-items:center;margin-top:var(--space-md)}.tp-invite-link-input{flex:1;font-size:var(--font-sm);color:var(--color-text-secondary);background:var(--color-bg-subtle)}.tp-invite-info{text-align:center;margin-bottom:20px;padding:14px;background:var(--color-bg-subtle);border-radius:var(--radius-lg)}.tp-invite-info p{margin:var(--space-xs) 0;font-size:var(--font-base);color:var(--color-text-secondary)}.tp-invite-info strong{font-size:1.05rem;color:var(--color-text)}.xlsx-dropzone{border:2px dashed #d0d0d0;border-radius:var(--radius-xl);padding:36px 20px;text-align:center;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast);background:#fafafa}.xlsx-dropzone:hover{border-color:var(--color-primary);background:var(--color-primary-lighter)}.xlsx-dropzone.parsing{border-color:var(--color-primary);cursor:default}.xlsx-icon{font-size:2.5rem;margin-bottom:var(--space-sm)}.xlsx-preview h4{margin:0 0 var(--space-sm);font-size:1rem;color:var(--color-text)}.xlsx-preview{min-width:0}.xlsx-preview-scroll{overflow-x:auto;margin:var(--space-md) 0;border:1px solid var(--color-border);border-radius:var(--radius-md)}.xlsx-preview-table{width:100%;border-collapse:collapse;font-size:var(--font-sm);min-width:34rem}.xlsx-preview-table td{max-width:16rem;overflow-wrap:anywhere}.xlsx-preview-table th,.xlsx-preview-table td{padding:var(--space-md) var(--space-sm);border-bottom:1px solid #eee;text-align:left}.xlsx-preview-table th{background:var(--color-bg-subtle);font-weight:600;color:var(--color-text-secondary)}.xlsx-done{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) 0;font-size:var(--font-base);color:var(--color-success)}.xlsx-done-icon{font-size:1.3rem}.tp-steps{display:flex;align-items:center;margin-bottom:20px}.tp-step{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-base);color:#aaa;font-weight:500}.tp-step.active{color:var(--color-primary)}.tp-step.done{color:var(--color-success)}.tp-step-num{width:26px;height:26px;border-radius:50%;border:2px solid currentColor;display:flex;align-items:center;justify-content:center;font-size:var(--font-sm);font-weight:700;flex-shrink:0}.tp-step-connector{flex:1;height:2px;background:var(--color-border);margin:0 var(--space-md)}.tp-textarea{resize:vertical;min-height:80px;font-family:monospace;font-size:var(--font-sm)}.tp-header-left h1{font-size:1.1rem;font-weight:700;margin:0;color:var(--color-bg)}body.tp-mobile .tp-auth-card{padding:var(--space-xl) var(--space-lg)}body.tp-mobile .tp-card-grid,body.tp-mobile .tp-price-grid{grid-template-columns:1fr}body.tp-mobile .tp-invite-row{flex-direction:column;align-items:stretch}body.tp-mobile .tp-day-config-row{flex-wrap:wrap}body.tp-mobile .tp-day-label{width:100%}body.tp-mobile .tp-main{padding:var(--space-lg) var(--space-md)}body.tp-mobile .tp-narrow{max-width:100%}body.tp-mobile .tp-btn-primary,body.tp-mobile .tp-btn-secondary,body.tp-mobile .tp-btn-danger{min-height:44px;font-size:var(--font-base)}body.tp-mobile .tp-btn-ghost{min-height:44px;padding:var(--space-md) 14px}body.tp-mobile .tp-btn-icon{width:44px;height:44px;font-size:1.1rem}body.tp-mobile .tp-btn-icon-danger{width:44px;height:44px;font-size:1rem}body.tp-mobile .tp-tab{min-height:44px;padding:var(--space-md) 14px;display:flex;align-items:center}body.tp-mobile .tp-toggle{min-height:44px;padding:var(--space-md) var(--space-lg)}body.tp-mobile .tp-header{padding:0 var(--space-md);height:auto;min-height:52px;flex-wrap:wrap}body.tp-mobile .tp-header-right{gap:var(--space-sm)}body.tp-mobile .tp-user-label{display:none}body.tp-mobile .tp-back-btn{min-width:44px;min-height:44px;font-size:1.3rem}body.tp-mobile .tp-dashboard-top{flex-direction:column;gap:var(--space-md);align-items:stretch}body.tp-mobile .tp-dashboard-top h2{font-size:1.1rem}body.tp-mobile .tp-modal{max-width:calc(100vw - var(--space-2xl))}body.tp-mobile .tp-form-actions{flex-direction:column;gap:var(--space-sm)}body.tp-mobile .tp-form-actions button{width:100%;min-height:44px}.popup-overlay{position:fixed;inset:0;background:#00000073;z-index:900;display:flex;align-items:flex-start;justify-content:center;padding:40px var(--space-lg);overflow-y:auto}.popup-content{background:var(--color-bg);border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);width:100%;max-width:560px;max-height:calc(100vh - 80px);overflow-y:auto;animation:popup-in .15s ease-out}.popup-content.popup-narrow{max-width:480px}.popup-content.popup-wide{max-width:800px}.popup-content.popup-xwide{max-width:1080px}.tp-stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-md);margin-bottom:20px}.tp-stat{display:flex;flex-direction:column;gap:2px;padding:var(--space-md) var(--space-lg);background:var(--color-bg-subtle);border:1px solid var(--color-border-light);border-radius:var(--radius-lg)}.tp-stat-value{font-size:1.6rem;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--color-text)}.tp-stat-label{font-size:.8rem;font-weight:600;color:var(--color-text-secondary)}.tp-stat-sub{font-size:.72rem;color:var(--color-text-muted)}body.tp-mobile .popup-content.popup-xwide{max-width:none}.popup-page-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg) 20px;border-bottom:1px solid #eee;position:sticky;top:0;background:var(--color-bg);border-radius:var(--radius-xl) var(--radius-xl) 0 0;z-index:1}.popup-page-header h2{margin:0;font-size:1.1rem;font-weight:700;color:var(--color-text)}.popup-page-body{padding:20px}.popup-page-body .tp-panel{box-shadow:none;border:1px solid #eee}@keyframes popup-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}body.tp-mobile .popup-overlay{padding:var(--space-lg) var(--space-sm)}body.tp-mobile .popup-content{max-height:calc(100vh - var(--space-2xl))}.language-switcher{display:flex;gap:2px;background:#00000014;border-radius:var(--radius-md);padding:2px}.lang-btn{padding:var(--space-xs) var(--space-sm);background:none;border:none;border-radius:var(--radius-sm);font-size:.7rem;font-weight:600;cursor:pointer;color:var(--color-text-muted);transition:all var(--transition-fast);min-width:var(--space-2xl);min-height:28px;display:flex;align-items:center;justify-content:center}.lang-btn:hover{color:var(--color-text);background:#0000000d}.lang-btn.active{background:var(--color-bg);color:var(--color-primary);box-shadow:var(--shadow-sm)}.app-header .language-switcher{background:#ffffff26}.app-header .lang-btn{color:#fff9}.app-header .lang-btn:hover{color:#fff;background:#ffffff1a}.app-header .lang-btn.active{background:#ffffff40;color:#fff}.contacts-available-badge{display:inline-flex;align-items:center;gap:5px;padding:var(--space-xs) var(--space-md);background:#4caf5040;color:var(--color-success-light);border:1px solid rgba(76,175,80,.5);border-radius:20px;font-size:.78rem;font-weight:500;cursor:default;white-space:nowrap}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:var(--color-bg);padding:var(--space-md) 20px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;box-shadow:0 2px 8px #00000026;position:relative}.app-header h1{font-size:1.3rem;font-weight:800;letter-spacing:-.5px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-brand{font-size:1rem;font-weight:700;color:#ffffffd9;background:none;border:none;cursor:pointer;padding:0;white-space:nowrap;transition:color var(--transition-fast)}.header-brand:hover{color:#fff}.header-separator{color:#ffffff59;font-size:1.1rem;font-weight:300;margin:0 var(--space-sm);flex-shrink:0}.header-user-email{font-size:var(--font-sm);color:#ffffffb3;padding:var(--space-xs) var(--space-md);white-space:nowrap}.header-actions{display:flex;align-items:center;gap:var(--space-md);flex-shrink:0}.header-desktop-only{display:none}.pending-indicator{font-size:var(--font-sm);padding:var(--space-xs) var(--space-md);background:#ffc107e6;color:var(--color-text);border-radius:20px;font-weight:500}.error-indicator{font-size:var(--font-sm);padding:var(--space-xs) var(--space-md);background:#f44336e6;color:var(--color-bg);border-radius:20px;font-weight:500;cursor:help}.admin-btn{padding:var(--space-md) 14px;background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-md);font-size:var(--font-sm);font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.admin-btn:hover{background:#ffffff4d}.admin-btn.active{background:var(--color-bg);color:var(--color-primary)}.logout-btn{padding:var(--space-md) var(--space-md);background:transparent;color:#fffc;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-md);font-size:var(--font-sm);cursor:pointer;transition:all var(--transition-normal)}.logout-btn:hover{background:#ffffff1a;color:#fff}.connection-status{display:flex;align-items:center;gap:var(--space-md);font-size:var(--font-sm);padding:var(--space-xs) var(--space-md);background:#ffffff26;border-radius:20px}.status-dot{width:var(--space-sm);height:var(--space-sm);border-radius:50%;background:#ccc}.connection-status.connected .status-dot{background:#4caf50;box-shadow:0 0 8px #4caf50}.connection-status.connecting .status-dot{background:#ff9800;animation:pulse 1s infinite}.connection-status.error .status-dot{background:#f44336}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.app-content{flex:1;padding:var(--space-lg);max-width:1400px;margin:0 auto;width:100%}.app-tournament{height:100vh;overflow:hidden}.app-tournament .app-content{min-height:0;display:flex;flex-direction:column;overflow:hidden}.app-tournament .participant-list{flex:1;min-height:0;overflow:auto}body.tp-mobile .app-tournament{height:auto;overflow:visible}body.tp-mobile .app-tournament .app-content{display:block;overflow:visible}body.tp-mobile .app-tournament .participant-list{flex:none;overflow:visible}.controls{display:flex;gap:var(--space-md);margin-bottom:14px}.refresh-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:var(--space-md) 18px;background:var(--color-primary);color:var(--color-bg);border:none;border-radius:var(--radius-lg);font-size:var(--font-base);font-weight:500;cursor:pointer;transition:background var(--transition-normal);white-space:nowrap;min-height:44px}.refresh-icon{font-size:1.15rem;line-height:1}.refresh-btn.loading .refresh-icon{animation:refresh-spin .8s linear infinite}@keyframes refresh-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.refresh-btn.loading .refresh-icon{animation:none}}.refresh-btn:hover{background:#a51923}.result-count{align-self:center;white-space:nowrap;font-size:var(--font-sm);color:var(--color-text-secondary)}.result-count strong{color:var(--color-text);font-weight:600}.loading,.error,.no-data{text-align:center;padding:40px;font-size:1.1rem}.error{color:#d32f2f;background:#ffebee;border-radius:var(--radius-lg)}.no-data{color:var(--color-text-secondary);background:var(--color-bg-subtle);border-radius:var(--radius-lg);margin:20px}.mobile-menu-btn{display:flex;width:44px;height:44px;background:#fff3;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-md);color:#fff;font-size:1.3rem;cursor:pointer;align-items:center;justify-content:center;flex-shrink:0}.mobile-menu-btn:hover{background:#ffffff4d}.mobile-menu-dropdown{position:absolute;top:100%;right:var(--space-md);margin-top:var(--space-md);display:flex;flex-direction:column;min-width:200px;background:var(--color-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);overflow:hidden;z-index:500}.mobile-menu-dropdown>button{width:100%;padding:var(--space-md) var(--space-lg);background:none;border:none;border-bottom:1px solid var(--color-border-light);color:var(--color-text);font-size:var(--font-base);text-align:left;cursor:pointer;min-height:44px}.mobile-menu-dropdown>button:last-child{border-bottom:none}.mobile-menu-dropdown>button:hover{background:var(--color-bg-subtle)}.mobile-menu-switch{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);width:100%;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border-light);color:var(--color-text);font-size:var(--font-base);min-height:44px}.mobile-menu-leave{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.menu-leave-icon{color:var(--color-text-muted, #9aa0ab);font-size:1.1em;line-height:1}.mobile-menu-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-top:1px solid var(--color-border-light);background:#fafafa}.menu-help-btn{flex-shrink:0;width:26px;height:26px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-bg, #fff);color:var(--color-text-secondary, #5a5f6a);font:700 .85rem/1 inherit;cursor:pointer;display:grid;place-items:center}.menu-help-btn:hover{background:var(--color-bg-subtle, #f0f1f3);color:var(--color-text)}.menu-help-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.mobile-menu-dropdown .lang-btn{color:var(--color-text-secondary)}.mobile-menu-dropdown .lang-btn.active{color:var(--color-primary);background:var(--color-bg);box-shadow:var(--shadow-sm)}.mobile-menu-dropdown .lang-btn:hover{color:var(--color-text)}body.tp-mobile .app-header{padding:var(--space-md) var(--space-md);flex-wrap:nowrap;gap:var(--space-sm)}body.tp-mobile .hide-mobile{display:none}body.tp-mobile .tp-header-left{min-width:0;flex:1}body.tp-mobile .app-header h1{font-size:1.05rem;max-width:none}body.tp-mobile .header-actions{gap:var(--space-sm)}body.tp-mobile .conn-label{display:none}body.tp-mobile .connection-status{padding:7px;gap:0}body.tp-mobile .app-content{padding:var(--space-md)}body.tp-mobile .controls{flex-flow:row wrap;align-items:center;gap:var(--space-sm)}body.tp-mobile .search-bar{flex:1 1 60%;order:0}body.tp-mobile .refresh-btn{order:1;width:44px;height:44px;padding:0;flex:0 0 auto}body.tp-mobile .refresh-label{display:none}body.tp-mobile .refresh-icon{font-size:1.3rem}body.tp-mobile .result-count{order:2;flex-basis:100%;align-self:flex-start}.tp-cat-table{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow-x:auto;margin-bottom:var(--space-sm)}.tp-cat-head,.tp-cat-line{display:grid;grid-template-columns:3rem minmax(9rem,1.4fr) minmax(11rem,1.6fr) minmax(9rem,1.2fr) 4rem 2.5rem;align-items:center;gap:var(--space-sm);padding:6px var(--space-md);min-width:44rem}.tp-cat-head{background:var(--color-bg);border-bottom:1px solid var(--color-border);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted, #666)}.tp-cat-line{border-bottom:1px solid var(--color-border);font-size:var(--font-sm)}.tp-cat-line:last-child{border-bottom:none}.tp-cat-line.unmapped{background:var(--color-warning-light, #fdf6e3)}.tp-cat-c-file{font-weight:600;overflow-wrap:anywhere}.tp-cat-c-cat{overflow-wrap:anywhere}.tp-cat-c-num{text-align:right;font-variant-numeric:tabular-nums}.tp-cat-c-move{display:flex;gap:2px}.tp-cat-c-act{text-align:right}.tp-btn-move{border:1px solid var(--color-border);background:var(--color-surface, #fff);border-radius:var(--radius-sm, 4px);cursor:pointer;line-height:1;padding:2px 4px;font-size:.8rem}.tp-btn-move:disabled{opacity:.3;cursor:default}.tp-cat-custom{display:flex;gap:4px;margin-top:4px}.tp-cat-custom .tp-input{flex:1 1 6rem;min-width:0}.tp-cat-c-disc .tp-input,.tp-cat-c-file .tp-input{width:100%}.tp-cat-badge{font-size:.75em;font-style:normal;text-transform:uppercase;letter-spacing:.04em;color:var(--color-warning, #8a6116);white-space:nowrap}.tp-day-disciplines{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-md);flex:1 1 auto}.tp-day-discipline{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-sm);cursor:pointer;white-space:nowrap}.tp-day-discipline input{cursor:pointer}.tp-create-day{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-sm) var(--space-md);padding:var(--space-sm) 0;border-bottom:1px solid var(--color-border)}.tp-create-day:last-of-type{border-bottom:none}.tp-create-day .tp-day-label{min-width:6rem;font-weight:600}.popup-content.popup-config{max-width:980px}.tp-section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.tp-section-head h4{margin-bottom:0}.popup-config .tp-panel-section{margin-bottom:var(--space-xl, 28px);padding-bottom:var(--space-lg);border-bottom:1px solid var(--color-border)}.popup-config .tp-panel-section:last-child{border-bottom:none;padding-bottom:0}.popup-config .tp-day-config-row{align-items:flex-start;padding:var(--space-xs) 0}.popup-config .tp-day-label{padding-top:2px}.popup-config .tp-price-grid{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,auto);grid-auto-flow:column}@media(max-width:780px){.popup-config .tp-price-grid{grid-template-columns:repeat(2,1fr);grid-auto-flow:row}}@media(max-width:520px){.popup-config .tp-price-grid{grid-template-columns:1fr}}@media(max-width:600px){.tp-field input,.tp-field select,.tp-textarea,.tp-select,.tp-input,.tp-invite-link-input,input[type=date]{font-size:16px}}.tp-nodays{position:relative;text-align:center;padding:64px 20px 40px}.tp-nodays-arrow{position:absolute;top:-4px;right:10px;font-size:2.2rem;line-height:1;color:var(--color-primary);animation:tp-nodays-point 1.4s ease-in-out infinite}@keyframes tp-nodays-point{0%,to{transform:translate(0)}50%{transform:translate(5px,-5px)}}@media(prefers-reduced-motion:reduce){.tp-nodays-arrow{animation:none}}.tp-nodays h2{margin:0 0 8px;font-size:1.2rem;color:var(--color-text)}.tp-nodays p{margin:0 auto 20px;max-width:420px;color:var(--color-text-secondary);line-height:1.5}.participant-list{background:var(--color-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:auto}.desktop-table thead th{position:sticky;top:0;z-index:2;background:var(--color-bg-subtle)}table{width:100%;border-collapse:collapse;font-size:.9rem}thead{background:var(--color-bg-subtle)}th{text-align:left;padding:var(--space-md) var(--space-md);font-weight:600;color:var(--color-text-secondary);border-bottom:2px solid var(--color-border);white-space:nowrap}td{padding:var(--space-md);border-bottom:1px solid var(--color-border-light);vertical-align:middle;white-space:nowrap}td.col-remarks{white-space:normal;max-width:220px}.participant-row:hover{background:var(--color-bg-subtle)}.col-attendance{width:70px;text-align:center}.col-payment{width:60px;text-align:center}.col-price{width:80px;text-align:right}.col-price.late-fee{color:var(--color-warning);font-weight:600;background:var(--color-warning-light)}.late-indicator{color:var(--color-warning);font-weight:700;margin-left:2px}.col-birthdate{white-space:nowrap;font-size:var(--font-sm);color:var(--color-text-secondary)}.col-name{min-width:120px}.col-name.name{font-weight:600}.junior-tag{color:#7b1fa2;font-weight:500;font-size:var(--font-sm)}.remark-dot{color:#d9a441;font-size:.55em;vertical-align:middle;margin-left:6px;opacity:.85;cursor:default}.col-club{min-width:140px;color:#666}.col-groups{min-width:100px}.col-remarks{min-width:200px;font-size:var(--font-sm);color:var(--color-text-secondary)}.remarques-display{padding:var(--space-sm) var(--space-sm);border-radius:var(--radius-sm);cursor:pointer;min-height:28px;transition:background var(--transition-fast)}.remarques-display:hover{background:var(--color-border-light)}.remarques-placeholder{color:#bbb;font-style:italic}.remarques-input{width:100%;padding:var(--space-sm) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-sm);outline:none;box-sizing:border-box;transition:border-color var(--transition-fast)}.remarques-input:focus{border-color:var(--color-primary)}.check-btn{width:40px;height:40px;border:2px solid #ddd;border-radius:var(--radius-md);background:var(--color-bg);cursor:pointer;font-size:1.1rem;font-weight:700;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.check-btn:hover{transform:scale(1.05);box-shadow:var(--shadow-md)}.check-btn:active{transform:scale(.95)}.check-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.check-btn.samedi{border-color:#90caf9}.check-btn.samedi.checked{background:var(--color-info);border-color:var(--color-info);color:var(--color-bg)}.check-btn.dimanche{border-color:#f48fb1}.check-btn.dimanche.checked{background:var(--color-pink);border-color:var(--color-pink);color:var(--color-bg)}.check-btn.payment{border-color:#a5d6a7}.check-btn.payment.checked{background:var(--color-success);border-color:var(--color-success);color:var(--color-bg)}.participant-row.paid{background:var(--color-success-light)}.participant-row.paid:hover{background:#c8e6c9}.participant-row.day-samedi{background:#e3f0ff}.participant-row.day-samedi:hover{background:#cce0ff}.participant-row.day-dimanche{background:var(--color-pink-light)}.participant-row.day-dimanche:hover{background:#f8bbd0}.participant-row.day-jour3{background:var(--color-warning-light)}.participant-row.day-jour3:hover{background:#ffe0b2}.participant-row.day-jour4{background:#ede7f6}.participant-row.day-jour4:hover{background:#d1c4e9}.day-header.today-header{border-bottom:3px solid var(--color-primary);color:var(--color-primary)}.check-btn.jour3{border-color:#ffcc80}.check-btn.jour3.checked{background:var(--color-warning);border-color:var(--color-warning);color:var(--color-bg)}.check-btn.jour4{border-color:#ce93d8}.check-btn.jour4.checked{background:#6a1b9a;border-color:#6a1b9a;color:var(--color-bg)}.participant-row.free-participant{font-style:italic}.col-price.free-price{color:var(--color-info)}.free-tag{color:var(--color-info);font-weight:600;font-style:normal;font-size:var(--font-sm)}.check-btn.disabled,.check-btn:disabled{background:#f5f5f5;border-color:var(--color-border);cursor:not-allowed;opacity:.5}.check-btn.disabled:hover,.check-btn:disabled:hover{transform:none;box-shadow:none}.groups-tags{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.group-tag{display:inline-block;padding:2px var(--space-sm);background:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-full);font-size:var(--font-sm);font-weight:500}.uncheck-anchor{position:relative}.uncheck-popup{position:absolute;top:50%;left:calc(100% + var(--space-sm));transform:translateY(-50%);z-index:200;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-md);box-shadow:var(--shadow-xl);min-width:190px;white-space:normal;text-align:left}.uncheck-popup p{margin:0 0 var(--space-sm) 0;font-size:var(--font-sm);line-height:1.4;color:var(--color-text)}.uncheck-popup-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.btn-confirm-remove{padding:var(--space-xs) var(--space-md);background:var(--color-primary);color:var(--color-bg);border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-sm);font-weight:600;transition:background var(--transition-fast)}.btn-confirm-remove:hover{background:var(--color-primary-hover)}.btn-confirm-remove:focus-visible{box-shadow:var(--focus-ring);outline:none}.btn-cancel{padding:var(--space-xs) var(--space-md);background:var(--color-border-light);color:var(--color-text);border:1px solid #ddd;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-sm);transition:background var(--transition-fast)}.btn-cancel:hover{background:var(--color-border)}.btn-cancel:focus-visible{box-shadow:var(--focus-ring);outline:none}.participant-row.admin-row{cursor:default}.contact-modal-overlay{position:fixed;inset:0;background:#00000073;z-index:1000;display:flex;align-items:center;justify-content:center}.contact-modal{background:var(--color-bg);border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);min-width:280px;max-width:420px;width:100%}.contact-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg) 20px var(--space-md);border-bottom:1px solid var(--color-border-light)}.contact-modal-header h3{margin:0;font-size:1rem;font-weight:700;color:var(--color-text)}.contact-modal-close{background:none;border:none;font-size:1.4rem;cursor:pointer;color:var(--color-text-muted);line-height:1;padding:0 2px;transition:color var(--transition-fast)}.contact-modal-close:hover{color:var(--color-text)}.contact-modal-close:focus-visible{box-shadow:var(--focus-ring);outline:none}.contact-modal-body{padding:var(--space-lg) 20px 20px}.contact-loading,.contact-error,.contact-empty{margin:0;font-size:.9rem;color:var(--color-text-muted)}.contact-error{color:var(--color-primary)}.contact-details{margin:0;display:grid;grid-template-columns:auto 1fr;gap:var(--space-sm) var(--space-lg);align-items:baseline}.contact-details dt{font-size:var(--font-sm);color:var(--color-text-muted);font-weight:500;white-space:nowrap}.contact-details dd{margin:0;font-size:.9rem;color:var(--color-text)}.contact-details dd a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}.contact-details dd a:hover{text-decoration:underline}.no-participants{text-align:center;padding:60px 20px;color:var(--color-text-muted);font-size:1.1rem;background:var(--color-bg);border-radius:var(--radius-lg)}.mobile-cards{display:none}.desktop-table{display:block}@media(max-width:1024px){table{font-size:var(--font-sm)}th,td{padding:var(--space-sm) var(--space-sm)}.check-btn{width:32px;height:32px;font-size:1rem}}@media(max-width:640px){.col-club,.col-price{display:none}.col-name{min-width:80px}}body.tp-mobile .desktop-table{display:none}body.tp-mobile .participant-list{background:none;box-shadow:none;border-radius:0;overflow:visible}body.tp-mobile .mobile-cards{display:flex;flex-direction:column;gap:6px;position:relative;padding-right:24px}body.tp-mobile .rail{position:fixed;right:2px;bottom:16px;height:min(74vh,560px);width:26px;z-index:40;display:flex;flex-direction:column;align-items:center;padding:6px 0}body.tp-mobile .rail-menu{flex-shrink:0;width:24px;height:24px;border-radius:7px;border:none;margin-bottom:4px;background:#fff;color:var(--color-primary, #c41e2a);cursor:pointer;display:grid;place-items:center;box-shadow:0 1px 4px #14171c38}body.tp-mobile .rail-letters{flex:1;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;touch-action:none;-webkit-user-select:none;user-select:none}body.tp-mobile .rail-letter{flex:1;display:flex;align-items:center;justify-content:center;width:100%;font-size:.56rem;font-weight:700;color:var(--color-primary, #c41e2a);transition:transform .08s ease,color .08s ease}body.tp-mobile .rail-letter.dim{color:var(--color-text-muted, #9aa0ab);opacity:.5}body.tp-mobile .rail-letter.hot{color:var(--color-primary-dark, #8f0f1a)}body.tp-mobile .rail-bubble{position:fixed;right:40px;transform:translateY(-50%);width:56px;height:56px;border-radius:50%;z-index:41;pointer-events:none;display:flex;align-items:center;justify-content:center;font-size:1.7rem;font-weight:700;color:#fff;background:var(--color-primary, #c41e2a);box-shadow:0 8px 24px -6px #c41e2a99}body.tp-mobile .mobile-sort-pop{position:absolute;top:0;right:30px;z-index:42;background:#fff;border-radius:12px;box-shadow:0 10px 30px -8px #14171c59;padding:6px;min-width:160px}body.tp-mobile .mobile-sort-head{font-size:.66rem;font-weight:700;color:var(--color-text-muted, #9aa0ab);text-transform:uppercase;letter-spacing:.05em;padding:6px 10px 4px}body.tp-mobile .mobile-sort-opt{display:flex;align-items:center;gap:8px;width:100%;border:none;background:none;font:inherit;font-size:.9rem;color:var(--color-text, #1b1d21);padding:9px 10px;border-radius:8px;cursor:pointer;text-align:left}body.tp-mobile .mobile-sort-opt.active{color:var(--color-primary, #c41e2a);font-weight:600}body.tp-mobile .mobile-sort-opt .check{width:14px;color:var(--color-primary, #c41e2a);font-weight:700}body.tp-mobile .mobile-letter-head{position:sticky;top:0;z-index:5;font-size:.72rem;font-weight:700;letter-spacing:.06em;color:var(--color-primary, #c41e2a);text-transform:uppercase;padding:8px 4px 3px;background:linear-gradient(var(--color-bg, #f4f5f7),var(--color-bg, #f4f5f7) 72%,transparent)}body.tp-mobile .mc{background:#fff;border:1px solid var(--color-border, #e4e6ea);border-radius:12px;overflow:hidden;box-shadow:0 1px 2px #14171c0a}body.tp-mobile .mc.open{box-shadow:0 6px 22px -8px #14171c47}body.tp-mobile .mc-main{display:flex;align-items:stretch;cursor:pointer;min-height:92px}body.tp-mobile .mc-ticks{display:flex;flex-direction:column;width:52px;flex-shrink:0;background:#eef0f4;border-right:1px solid var(--color-border, #e4e6ea)}body.tp-mobile .mc-tick{flex:1;min-height:38px;border:none;cursor:pointer;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:5px 4px;color:var(--color-text-muted, #7a8090);border-bottom:1px solid rgba(0,0,0,.05)}body.tp-mobile .mc-tick:last-child{border-bottom:none}body.tp-mobile .mc-box{width:18px;height:18px;flex-shrink:0;border:1.5px solid #c1c6cf;border-radius:5px;display:grid;place-items:center;font-size:.72rem;color:#fff;background:#fff;line-height:1}body.tp-mobile .mc-lbl{font-size:.62rem;font-weight:700;white-space:nowrap;letter-spacing:-.01em}body.tp-mobile .mc-tick.samedi .mc-box{border-color:#90caf9}body.tp-mobile .mc-tick.dimanche .mc-box{border-color:#f48fb1}body.tp-mobile .mc-tick.jour4 .mc-box{border-color:#ce93d8}body.tp-mobile .mc-tick.samedi.on{background:#e6f1fc;color:#1565c0}body.tp-mobile .mc-tick.dimanche.on{background:#fde8ef;color:#c2185b}body.tp-mobile .mc-tick.jour3.on{background:#fdf3e0;color:#b26a00}body.tp-mobile .mc-tick.jour4.on{background:#f4e9f8;color:#6a1b9a}body.tp-mobile .mc-tick.samedi.on .mc-box{background:var(--color-info, #1976d2);border-color:var(--color-info, #1976d2)}body.tp-mobile .mc-tick.dimanche.on .mc-box{background:var(--color-pink, #e91e63);border-color:var(--color-pink, #e91e63)}body.tp-mobile .mc-tick.jour3.on .mc-box{background:var(--color-warning, #ef8c00);border-color:var(--color-warning, #ef8c00)}body.tp-mobile .mc-tick.jour4.on .mc-box{background:#6a1b9a;border-color:#6a1b9a}body.tp-mobile .mc-tick.today .mc-lbl{text-decoration:underline;text-underline-offset:2px}body.tp-mobile .mc-tick.empty{opacity:.55;cursor:default}body.tp-mobile .mc-tick.empty .mc-box{border:1px solid #e2e5ea;background:#fbfbfc}body.tp-mobile .mc-body{flex:1;min-width:0;padding:9px 12px;display:flex;flex-direction:column;justify-content:center;gap:5px}body.tp-mobile .mc-namerow{display:flex;align-items:center;gap:10px}body.tp-mobile .mc-name{flex:1;min-width:0;font-weight:600;font-size:.98rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.tp-mobile .mc-name .mc-sec{color:var(--color-text-secondary, #5a5f6a);font-weight:500}body.tp-mobile .mc-pill{position:relative;flex-shrink:0;width:82px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:4px;border:1.5px solid var(--color-border, #e4e6ea);border-radius:999px;padding:4px 6px;background:#fff;font:inherit;font-weight:700;font-size:.82rem;color:var(--color-text, #1b1d21);cursor:pointer;font-variant-numeric:tabular-nums}body.tp-mobile .mc-pbox{width:15px;height:15px;flex-shrink:0;border:2px solid #c1c6cf;border-radius:4px;display:grid;place-items:center;font-size:.6rem;color:#fff;background:#fff;line-height:1}body.tp-mobile .mc-amt{line-height:1}body.tp-mobile .mc-cur{font-size:.62rem;font-weight:600;color:var(--color-text-muted, #9aa0ab)}body.tp-mobile .mc-pill.on{background:#e7f4e8;border-color:#bfe3c2;color:#2e7d32}body.tp-mobile .mc-pill.on .mc-pbox{background:#2e7d32;border-color:#2e7d32}body.tp-mobile .mc-pill.on .mc-cur{color:#2e7d32}body.tp-mobile .mc-pill.free{background:#e7f4e8;border-color:#bfe3c2;color:#2e7d32;cursor:default}body.tp-mobile .mc-pill.late:not(.on){background:var(--color-warning-light, #fff4e5);border-color:#f3d19a;color:var(--color-warning, #ef8c00)}body.tp-mobile .mc-pill.late:not(.on) .mc-cur{color:var(--color-warning, #ef8c00)}body.tp-mobile .mc-ovr-badge{position:absolute;top:-6px;right:-5px;width:16px;height:16px;border-radius:50%;background:var(--color-primary, #c41e2a);color:#fff;font-size:.6rem;display:grid;place-items:center;line-height:1;box-shadow:0 0 0 2px #fff}body.tp-mobile .mc-meta{display:flex;align-items:center;flex-wrap:wrap;row-gap:2px;font-size:.77rem;color:var(--color-text-secondary, #5a5f6a)}body.tp-mobile .mc-meta>span:not(:first-child):before{content:"·";margin:0 7px;color:var(--color-text-muted, #9aa0ab);opacity:.6}body.tp-mobile .mc-lic{color:var(--color-text-secondary, #5a5f6a);font-weight:500;font-variant-numeric:tabular-nums}body.tp-mobile .mc-dob{color:var(--color-text-muted, #9aa0ab);font-variant-numeric:tabular-nums}body.tp-mobile .mc-club{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:14ch}body.tp-mobile .mc-cats{display:flex;gap:5px;flex-wrap:wrap;margin-top:1px}body.tp-mobile .mc-cats .group-tag{font-size:.67rem;padding:2px 8px}body.tp-mobile .mc-note{align-self:flex-end;max-width:100%;font-size:.76rem;font-style:italic;color:#a9791a;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.tp-mobile .mc-editor{max-height:0;overflow:hidden;transition:max-height .22s ease}body.tp-mobile .mc.open .mc-editor{max-height:240px;border-top:1px solid var(--color-border, #e4e6ea)}body.tp-mobile .mc-editor-inner{padding:10px 11px;display:grid;gap:10px}body.tp-mobile .mc-ed-row{display:flex;align-items:center;gap:8px}body.tp-mobile .mc-ed-label{font-size:.7rem;font-weight:600;color:var(--color-text-muted, #9aa0ab);text-transform:uppercase;letter-spacing:.04em;width:62px;flex-shrink:0}body.tp-mobile .mc-ed-price{width:92px;flex:0 0 92px;border:1px solid var(--color-border, #e4e6ea);border-radius:8px;padding:8px 10px;font:inherit;font-size:.9rem;font-variant-numeric:tabular-nums}body.tp-mobile .mc-ed-suffix{font-size:.74rem;color:var(--color-text-muted, #9aa0ab)}body.tp-mobile .mc-ed-row .remarques-container,body.tp-mobile .mc-ed-row .remarques-display,body.tp-mobile .mc-ed-row textarea{flex:1;min-width:0}body.tp-mobile .mobile-uncheck-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 11px;background:#fff6f6;border-top:1px solid #f3d6d8;font-size:.8rem}body.tp-mobile .mobile-uncheck-btns{display:flex;gap:8px}body.tp-mobile .mobile-uncheck-bar .btn-cancel,body.tp-mobile .mobile-uncheck-bar .btn-confirm-remove{border:none;border-radius:7px;padding:6px 14px;font:inherit;font-weight:600;font-size:.8rem;cursor:pointer}body.tp-mobile .mobile-uncheck-bar .btn-cancel{background:var(--color-border, #e4e6ea);color:var(--color-text, #1b1d21)}body.tp-mobile .mobile-uncheck-bar .btn-confirm-remove{background:var(--color-primary, #c41e2a);color:#fff}.group-tag.duplicate{background:var(--color-warning-light, #fdf6e3);color:var(--color-warning, #8a6116)}.group-tag-flag{margin-left:3px;font-weight:700}.group-tag{max-width:18ch;overflow-wrap:anywhere}.price-editable{cursor:pointer;position:relative}.price-editable:hover{text-decoration:underline dotted;text-underline-offset:3px}.price-override-mark{margin-left:4px;color:var(--color-primary, #c41e2a);vertical-align:-1px}.price-override-popup{position:absolute;z-index:40;top:100%;left:0;margin-top:4px;background:var(--color-surface, #fff);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md, 8px);box-shadow:var(--shadow-lg, 0 8px 24px rgba(0,0,0,.15));padding:12px;min-width:180px;text-align:left;cursor:default;font-weight:400}.price-override-popup label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted, #666);margin-bottom:6px}.price-override-row{display:flex;align-items:center;gap:6px}.price-override-row input{width:5rem;padding:6px 8px;border:1px solid var(--color-border, #ddd);border-radius:var(--radius-sm, 4px);font-size:.95rem}.price-override-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.price-override-actions button{padding:5px 12px;border-radius:var(--radius-sm, 4px);border:1px solid transparent;cursor:pointer;font-size:.85rem}.price-override-actions .btn-save{background:var(--color-primary, #c41e2a);color:#fff}.price-override-actions .btn-clear{background:transparent;border-color:var(--color-border, #ddd);color:var(--color-text-muted, #666)}th.sortable{padding:0}.sort-header{width:100%;display:inline-flex;align-items:center;gap:3px;background:none;border:none;font:inherit;color:inherit;text-align:left;cursor:pointer;padding:var(--space-md, 12px) var(--space-sm, 8px);-webkit-user-select:none;user-select:none}.sort-header:hover{color:var(--color-primary, #c41e2a)}th.sorted .sort-header{color:var(--color-primary, #c41e2a);font-weight:600}.sort-arrow{font-size:.85em}.col-licence{white-space:nowrap}.licence-id{font-variant-numeric:tabular-nums;color:var(--color-text-muted, #555)}.mobile-card-licence{font-variant-numeric:tabular-nums;color:var(--color-text-muted, #777)}@media(max-width:1024px){.col-licence{display:none}}.category-tabs{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-bottom:var(--space-lg);padding:var(--space-lg);background:var(--color-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);align-items:flex-start}.tab{padding:var(--space-sm) var(--space-lg);border:2px solid var(--color-border);background:var(--color-bg);border-radius:var(--radius-md);font-size:var(--font-sm);font-weight:500;cursor:pointer;transition:var(--transition-fast);color:var(--color-text-secondary)}.tab:hover{border-color:var(--color-primary);color:var(--color-primary)}.tab:focus-visible{outline:var(--focus-ring);outline-offset:2px}.tab.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.tab.all{font-weight:600}.category-group{display:flex;flex-direction:column;gap:6px}.group-label{font-size:var(--font-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;padding-left:var(--space-xs)}.group-tabs{display:flex;gap:6px;flex-wrap:wrap}.tab.full{border-color:var(--color-success);color:var(--color-success)}.tab.full:hover{border-color:#1b5e20;color:#1b5e20;background:#f1f8f1}.tab.full.active{background:var(--color-success);border-color:var(--color-success);color:#fff}.full-indicator{font-weight:700}.tab-count{display:inline-block;margin-left:6px;padding:1px 6px;font-size:var(--font-xs);font-weight:600;border-radius:var(--radius-full);background:var(--color-border);color:var(--color-text-secondary)}.tab.active .tab-count{background:#ffffff4d;color:#fff}.tab-count-full{background:#c8e6c9;color:var(--color-success)}.tab.full.active .tab-count-full{background:#ffffff4d;color:#fff}@media(max-width:768px){.category-tabs{gap:var(--space-sm)}.tab{padding:6px var(--space-md);font-size:.8rem}.group-label{font-size:.7rem}}body.tp-mobile .category-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:10px var(--space-md);gap:6px}body.tp-mobile .category-tabs::-webkit-scrollbar{display:none}body.tp-mobile .tab{padding:var(--space-sm) 14px;font-size:.8rem;flex-shrink:0;min-height:44px;display:flex;align-items:center}body.tp-mobile .category-group{flex-shrink:0}body.tp-mobile .group-tabs{flex-wrap:nowrap}body.tp-mobile .group-label{display:none}.cat-select-bar{display:inline-flex;align-items:center;gap:var(--space-sm);align-self:center;margin-left:auto}.cat-select-btn{padding:3px 11px;border:1px solid var(--color-border-light);background:transparent;border-radius:999px;font-size:var(--font-xs);font-weight:500;color:var(--color-text-muted);cursor:pointer;transition:var(--transition-fast)}.cat-select-btn:hover{border-color:var(--color-text-muted);color:var(--color-text-secondary)}.cat-select-btn:focus-visible{outline:var(--focus-ring);outline-offset:2px}.cat-select-btn.on{background:var(--color-bg-subtle);border-color:var(--color-primary-light);color:var(--color-primary)}.cat-select-status,.cat-select-hint{font-size:var(--font-sm);color:var(--color-text-muted)}.cat-clear-btn{margin-left:8px;padding:0;border:none;background:none;color:var(--color-primary);font-size:var(--font-sm);font-weight:600;cursor:pointer}.cat-clear-btn:hover{text-decoration:underline}.group-toggle{border:none;background:none;cursor:pointer;text-align:left;font:inherit;font-size:var(--font-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;padding-left:var(--space-xs);transition:var(--transition-fast)}.group-toggle:hover,.group-toggle.some{color:var(--color-primary)}.group-toggle.all{color:var(--color-primary);font-weight:700}body.tp-mobile .cat-select-bar{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-sm);padding:2px 2px 0;margin-left:0}.cat-chip.some{border-color:var(--color-primary, #c41e2a);color:var(--color-primary, #c41e2a)}.tab-merged{margin-left:2px;opacity:.55;font-size:.85em}.tab{max-width:22ch;overflow-wrap:anywhere;text-align:left}.cat-mobile{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--space-sm)}.cat-disc-row,.cat-sub-row{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px}.cat-disc-row::-webkit-scrollbar,.cat-sub-row::-webkit-scrollbar{display:none}.cat-sub-row{padding-left:4px}.cat-chip{flex-shrink:0;display:inline-flex;align-items:center;gap:5px;min-height:40px;border:1px solid var(--color-border, #e4e6ea);background:#fff;border-radius:999px;padding:6px 14px;font:inherit;font-size:.82rem;font-weight:600;color:var(--color-text, #1b1d21);cursor:pointer;white-space:nowrap}.cat-chip.active{background:var(--color-primary, #c41e2a);border-color:var(--color-primary, #c41e2a);color:#fff}.cat-chip.disc.active{background:var(--color-primary, #c41e2a)}.cat-caret{font-size:.8em;opacity:.75}.cat-sub-row .cat-chip.sub{min-height:36px;padding:5px 12px;font-size:.8rem;background:var(--color-bg-subtle, #eef0f4);border-color:transparent}.cat-sub-row .cat-chip.sub.active{background:var(--color-primary, #c41e2a);border-color:var(--color-primary, #c41e2a);color:#fff}.cat-chip.full{box-shadow:inset 0 0 0 1.5px var(--color-success, #2e7d32)}.cat-chip .tab-count{margin-left:5px;font-size:.72em;opacity:.85;font-variant-numeric:tabular-nums}.search-bar{flex:1;position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:14px;font-size:1rem;opacity:.5}.search-input{width:100%;padding:var(--space-md) 40px;font-size:var(--font-base);border:2px solid var(--color-border);border-radius:var(--radius-lg);outline:none;transition:var(--transition-fast)}.search-input:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.search-input::placeholder{color:var(--color-text-muted)}.clear-btn{position:absolute;right:6px;width:36px;height:36px;border:none;background:var(--color-border);border-radius:var(--radius-full);cursor:pointer;font-size:.85rem;color:#666;display:flex;align-items:center;justify-content:center;transition:var(--transition-fast)}.clear-btn:hover{background:#ccc}.clear-btn:focus-visible{outline:var(--focus-ring);outline-offset:2px}@media(max-width:600px){.search-input{padding:10px 44px 10px 36px;font-size:.9rem;min-height:44px}.clear-btn{width:44px;height:44px;right:0;font-size:1rem}}@media(max-width:600px){.search-input{font-size:16px}}.financial-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.financial-section{background:var(--color-bg-subtle);border-radius:var(--radius-lg);padding:var(--space-lg)}.financial-section h3{margin:0 0 var(--space-md) 0;font-size:.9rem;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.5px}.financial-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0;border-bottom:1px solid var(--color-border)}.financial-row:last-child{border-bottom:none}.financial-row.total{font-weight:600;font-size:1.1rem}.amount{font-weight:600;color:var(--color-text)}.financial-row.paid .amount{color:var(--color-success)}.financial-row.unpaid .amount{color:#c62828}.financial-row.late{background:#fff3e0;margin-top:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);border-bottom:none}.financial-row.late .amount{color:#e65100}.count{font-weight:600;color:var(--color-primary)}.count.unpaid{color:#c62828}.progress-bar{height:10px;background:var(--color-border);border-radius:var(--radius-sm);margin-top:var(--space-md);overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--color-success),#4caf50);border-radius:var(--radius-sm);transition:width .3s ease}.financial-section.categories{grid-column:1 / -1}.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-md)}.category-stat{background:var(--color-bg);border-radius:var(--radius-lg);padding:var(--space-md);text-align:center;box-shadow:var(--shadow-sm)}.cat-name{display:block;font-weight:600;color:var(--color-primary);font-size:1rem;margin-bottom:var(--space-xs)}.cat-count{display:block;font-size:.85rem;color:#666}.cat-paid{display:block;font-size:var(--font-sm);color:var(--color-success);margin-top:2px}@media(max-width:768px){.financial-grid{grid-template-columns:1fr}.category-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}.financial-note{margin:0 0 var(--space-md);font-size:var(--font-sm);color:var(--color-text-muted, #666)}.financial-error{margin:0 0 var(--space-md);font-size:var(--font-sm);color:var(--color-danger, #c62828)}.driver-popover{all:unset;font-family:var(--driver-popover-font-family,"Helvetica Neue", Inter, ui-sans-serif, "Apple Color Emoji", Helvetica, Arial, sans-serif);box-sizing:border-box;color:#2d2d2d;z-index:1000000000;background-color:#fff;border-radius:5px;min-width:250px;max-width:300px;margin:0;padding:15px;position:fixed;top:0;right:0;box-shadow:0 1px 10px #0006}.driver-popover-title{zoom:1;margin:0;font-size:19px;font-weight:700;line-height:1.5;display:block;position:relative}.driver-popover-close-btn{all:unset;cursor:pointer;color:#d2d2d2;z-index:1;text-align:center;width:32px;height:28px;font-size:18px;font-weight:500;transition:color .2s;position:absolute;top:0;right:0}.driver-popover-close-btn:hover,.driver-popover-close-btn:focus{color:#2d2d2d}.driver-popover-title[style*=block]+.driver-popover-description{margin-top:5px}.driver-popover-description{zoom:1;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.5}.driver-popover-footer{text-align:right;zoom:1;justify-content:space-between;align-items:center;margin-top:15px;display:flex}.driver-popover-progress-text{color:#727272;zoom:1;font-size:13px;font-weight:400}.driver-popover-footer-btn{all:unset;box-sizing:border-box;color:#2d2d2d;cursor:pointer;zoom:1;background-color:#fff;border:1px solid #ccc;border-radius:3px;outline:0;padding:3px 7px;font-size:12px;line-height:1.3;text-decoration:none;display:inline-block}.driver-popover-footer .driver-popover-btn-disabled{opacity:.5;pointer-events:none}.driver-popover-footer-btn:hover,.driver-popover-footer-btn:focus{background-color:#f7f7f7}.driver-popover-navigation-btns{flex-grow:1;justify-content:flex-end;display:flex}.driver-popover-navigation-btns button+button{margin-left:4px}.driver-popover-arrow{content:"";border:5px solid #fff;position:absolute}.driver-popover-arrow-side-over{display:none}.driver-popover-arrow-side-left{border-top-color:#0000;border-bottom-color:#0000;border-right-color:#0000;left:100%}.driver-popover-arrow-side-right{border-top-color:#0000;border-bottom-color:#0000;border-left-color:#0000;right:100%}.driver-popover-arrow-side-top{border-bottom-color:#0000;border-left-color:#0000;border-right-color:#0000;top:100%}.driver-popover-arrow-side-bottom{border-top-color:#0000;border-left-color:#0000;border-right-color:#0000;bottom:100%}.driver-popover-arrow-side-center,.driver-popover-arrow-none{display:none}.driver-active .driver-overlay{pointer-events:none}.driver-active.driver-no-scroll{overflow:hidden}.driver-active *{pointer-events:none}.driver-active .driver-active-element,.driver-active .driver-active-element *,.driver-popover,.driver-popover *{pointer-events:auto}@keyframes animate-fade-in{0%{opacity:0}to{opacity:1}}.driver-fade .driver-overlay{animation:animate-fade-in var(--driver-animation-duration,.4s) ease-in-out}.driver-fade .driver-popover{animation:animate-fade-in var(--driver-animation-duration,.4s)}.driver-active-element-parent-no-scroll{overflow:hidden!important}.driver-no-interaction,.driver-no-interaction *{pointer-events:none!important}.tp-crash{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-lg, 20px);background:var(--color-bg-page, #f4f5f7)}.tp-crash-card{max-width:420px;text-align:center;background:var(--color-bg, #fff);border-radius:var(--radius-xl, 16px);box-shadow:var(--shadow-xl, 0 12px 40px -12px rgba(20,23,28,.35));padding:36px 28px}.tp-crash-icon{font-size:2.4rem;margin-bottom:8px}.tp-crash-card h1{margin:0 0 8px;font-size:1.25rem;color:var(--color-text, #1b1d21)}.tp-crash-card p{margin:0 0 20px;color:var(--color-text-secondary, #5a5f6a);line-height:1.5}
