*{box-sizing:border-box;margin:0;padding:0}body{font-family:sans-serif;background:#f5f5f0;color:#333}.app{display:flex;flex-direction:column;height:100vh;position:relative;overflow:hidden}.mobile-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:white;border-bottom:1px solid #e5e5e0;padding:10px 16px;flex-shrink:0;flex-wrap:wrap}.mobile-topbar-left{display:flex;align-items:center;gap:12px}.mobile-topbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mobile-topbar button.menu-btn{background:none;border:1px solid #ddd;border-radius:8px;font-size:18px;padding:4px 10px;cursor:pointer;color:#1a1a1a}.mobile-topbar img{height:28px}.sidebar-overlay{display:none}.sidebar-overlay.visible{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.4);z-index:150}.sidebar{position:fixed;top:0;left:0;height:100vh;width:260px;max-width:80vw;background:white;border-right:1px solid #e5e5e0;display:flex;flex-direction:column;overflow-y:auto;z-index:200;transform:translate(-100%);transition:transform .25s ease;box-shadow:2px 0 16px #00000026}.sidebar.ouverte{transform:translate(0)}.sidebar-logo{padding:20px 16px;border-bottom:1px solid #e5e5e0}.sidebar-logo h2{font-size:15px;font-weight:600;color:#1a1a1a}.sidebar-logo p{font-size:12px;color:#888;margin-top:2px}.nav-section{font-size:10px;font-weight:600;color:#aaa;letter-spacing:.08em;text-transform:uppercase;padding:16px 16px 4px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 16px;font-size:13px;color:#555;cursor:pointer}.nav-item:hover{background:#f5f5f0;color:#333}.nav-item.active{background:#e8f0fe;color:#1a56db;font-weight:500}.main{flex:1;display:flex;flex-direction:column;overflow:auto;min-width:0;width:100%}.topbar{background:white;border-bottom:1px solid #e5e5e0;padding:6px 24px;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.topbar h1{display:none}.topbar-actions{display:flex;gap:8px}.btn{padding:7px 16px;border-radius:8px;font-size:13px;cursor:pointer;border:1px solid #ddd;background:white;color:#555}.btn:hover{background:#f5f5f0}.btn-primary{background:#1a56db;color:#fff;border-color:#1a56db}.btn-primary:hover{background:#1648c0}.content{flex:1;overflow:auto;padding:20px 24px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.stat-card{background:white;border-radius:10px;border:1px solid #e5e5e0;padding:14px 18px}.stat-card label{font-size:12px;color:#888;display:block}.stat-card span{font-size:24px;font-weight:600;color:#1a1a1a}.filters{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}.filters input,.filters select{padding:7px 12px;border-radius:8px;border:1px solid #ddd;font-size:13px;background:white;color:#333}.filters input{width:220px}.table-wrap{background:white;border-radius:10px;border:1px solid #e5e5e0;overflow:auto;max-height:calc(100vh - 180px)}table{width:100%;border-collapse:collapse;font-size:13px}thead tr{background:#f9f9f7}th{padding:7px 12px;text-align:left;font-size:11px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.04em;border:1px solid #ddd6c8}td{padding:4px 12px;color:#333;border:1px solid #ddd6c8;white-space:nowrap}tbody tr:nth-child(2n) td{background:#f6f6f1}tbody tr:nth-child(odd) td{background:#ffffff}tr:hover td{background:#eaf1ff}.badge{display:inline-block;padding:2px 8px;border-radius:99px;font-size:11px;font-weight:500}.badge-actif{background:#d1fae5;color:#065f46}.badge-inactif{background:#f3f4f6;color:#6b7280}.badge-joueur{background:#e0e7ff;color:#3730a3}.badge-coach{background:#fef3c7;color:#92400e}.badge-activite{background:#fce7f3;color:#9d174d}.saison-badge{margin:auto 12px 16px;background:#f0f4ff;border-radius:8px;padding:10px 14px}.saison-badge label{font-size:10px;color:#888;text-transform:uppercase;letter-spacing:.06em;display:block}.saison-badge span{font-size:14px;font-weight:600;color:#1a56db}@media print{.sidebar,.mobile-topbar,.topbar,.filters,.btn{display:none!important}.table-wrap{max-height:none!important;overflow:visible!important}body{background:white!important}}@media (max-width: 768px){.content{padding:14px}.stats{display:none}.filters input{width:100%}}
