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